2019년 9월 29일 일요일

cocoapods 아이폰 라이브러리관리 프로그램

 gradle 처럼 라이브러리 관리툴이 있었네.
1.sudo gem install cocoapods
2.pod setup 해서 초기설정한후에
3.일단 해당 프로젝트 폴더에서 pod init 하면 pod file 이 생성됨
4.pod 파일을 열고

  # Pods for withpods2
  pod 'Alamofire', '5.0.0-rc.2'

식으로 입력
5.pod install 하면 라이브러리 설치됨
6.하얀 프로젝트 파일을 열어서 작업하면됨

참고 : https://blog.yagom.net/534?category=412990

2019년 9월 28일 토요일

모놀로식 아키텍쳐 vs 마이크로 아키텍쳐

최근 Docker , React 등의 새로운 것들을 보면 컨퍼넌트 라는 개념으로 구성하도록 강제하고 있다.
예전에는 하나의 시스템은 하나의 아키텍쳐 라는 개념이었는데, 최근에는 하나의 시스템은 여러 서비스로 나뉘고 곧 여러 아키텍쳐가 모여서 구성한다는 개념이 유행이다.

아래는 아키텍쳐의 비교이다.

참조 :

https://jins-dev.tistory.com/entry/MicroService%EB%9E%80-%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C-%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC?category=760149


https://jins-dev.tistory.com/entry/%EC%A0%84%ED%86%B5%EC%9D%98-%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-%EB%AA%A8%EB%8D%B8-%EB%AA%A8%EB%86%80%EB%A6%AC%EC%8B%9DMonolithic-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98?category=760149


2019년 9월 27일 금요일

Smoke Test 란

새로 추가된 기능으로 인해 기존의 핵심기능에 영향을 미치는지 개발팀내부에서 한번 쭉 돌려보는 테스트를 말함.
개발자가 각자 단위 테스트를 끝낸후에  개발팀내에서 QA 팀에 넘기기 전에 미리 간단하게 테스트해봐서 문제가 없는지 검증하는 단계이다.
QA 가 결합테스트를 통해 문제점을 발견하기 전에 개발팀에서 미리 문제점을 인지하고 빠르게 고쳐내서 QA 의 인력과 자원 낭비를 줄일수 있도록 한다.

테스팅이 프로젝트의 90%가 아닐까 생각해본다.

참조 :
https://angel927.tistory.com/77?category=222018


https://translate.google.com/translate?hl=ja&sl=ko&tl=ja&u=https%3A%2F%2Fjins-dev.tistory.com%2Fentry%2F%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%8F%84-%EC%95%8C%EC%95%84%EC%95%BC%ED%95%A0-%EB%AA%87%EA%B0%80%EC%A7%80-SW-%ED%85%8C%EC%8A%A4%ED%8C%85%EC%9D%98-%EC%A2%85%EB%A5%98&anno=2


 http://blog.naver.com/PostView.nhn?blogId=wisestone2007&logNo=220868861867&parentCategoryNo=&categoryNo=39&viewDate=&isShowPopularPosts=true&from=search

2019년 9월 3일 화요일

Android Enterprise Experience 안드로이드 엔터프라이즈 모드를 간단하게 경험해보게 해준다

일단 자세한 설명은 https://qiita.com/garupon/items/844770b1eb48ac004ced 여기서 참고.

최근 안드로이드에 기업용 솔류션이 따로 있었다는것을 알게되었다.
지금까지는 안드로이드는 그냥 사용자들이 사용하는거고, 원격제어 솔류션들은 자체적으로 뭔가 해서 모바일 기기를 원격제어(?)를 한다고 막연하게만 생각하고 있었는데, 구글에서는 예전부터 안드로이드를 제한된 리소스를 통해 특정 기업,단체 등이 보안에 신경쓰면서 사용할수 있도록 기능을 제공해주고있었다.

모바일 장치 제어 솔류션은 MDM (https://www.otsuka-shokai.co.jp/words/mdm.html)이라는 것으로  주로 원격에서 사용자 모바일 장비를 제어하기 위해서 제공하는 솔류션을 말한다.

구글에서는 MDM기능을  AE(Android Enterprice) 라는 이름으로 제공하는데 정식명칭은 EMM(Enterprise Mobility Management)라고 한다. EMM 의 기능자체는 누구나 이용할수있지만,  EMM솔류션을 이용하여 좀더 큰 서비스를 제공하는 추천업체들을 심사하여 AER(Android Enterprise Recommended)이라고 해서 구글 엔터프라이즈 홈페이지에 대빵 만하게 홍보해주고 있다.


AE를 이용 했을때 기업에서 뭐가 좋냐고 하면

  • 기기의 초기화, 설치시에 업무용 앱 자동설치 등을 한방에 할수있다.
  • 기기의 분실, 외부침입자의 조작에 대해 원격에서 초기화,리셋 할 수 있다.
  • 안드로이드의 모든 기능을 원격으로 제어할수 있다. (화면 녹화등은 불가)
그렇다. 영업사원, 단기사원등에게 업무용 폰을 지급할때 사용하는 거다.

관리자 로서의 가장 좋은점은 다수의 기기를 초기화 할때, 관리자가 일일이 안해줘도(또는 일일이 한다고 해도) 빠르고 간편하게 초기화하고 업무앱을 자동으로 설치해서 새로운 직원에게 건네줄수 있다는 점이 되겠다.

AE에서는 사용자의 모바일장비를 어떻게 제어할건지에 대해 4가지 방식을 제공한다.
  • Work Profile(BYOD) : 모바일장비는 개인것을 쓰되, 업무용앱과 개인용앱을 별도로 구분지어 이용할수있게한다. 예를 들어 같은 메일앱도 업무용아이콘이 붙은 것은 회사용도로, 그렇지 않은 것은 개인용도로 쓰인다. 이 모드에서는 관리자가 원격으로 개인의 모바일 장비에 대한 제어(원격 초기화, 화면락등) 이 불가능하다.  소프트웨어 적인 제어만 가능하다고 생각하면된다.
  • Fully managed Device : 모바일 장비의 하드웨어,소프트웨어 모든 기능을 관리할수 있도록 한다. Device Owner Mode 라고 하는데,  일반앱에서 할수없는 장비제어,관리등의  API등을 이용할수 있다.  주로 기업에서 장비를 원격으로 제어하기 위해서 직원에게 이 모드로 지정된 모바일장비와 관리자가 제어가능한 기업의 앱을 장비에 설치해서 언제든지 원격에서도 장비를 제어 할수 있도록 하는 용도로 쓰인다. (예를 들어 분실시에 장비초기화, 계정삭제, 화면 락 등 제어를 원격으로 가능하다.)
    물론 안드로이드는 Device Owner Mode와  관련 API만 제공할뿐 서버측 원격제어프로그램과 장비에 들어갈 클라이언트용 앱은 기업에서 만들어야 한다. 
  • Fully managed device with work profile
    COPE 라고도 하며 장비자체는 기업의 관리하에 두지만, 개인적으로 사용하고 싶은 영억을 구분해서 사용할수도 있도록 하는 모드이다. 영업사원이 회사의 폰을 장기적으로 사용하고 할때, 본인만이 필요한 업무용 앱또는 사용을 하고자 할때 이 모드를 적용하면 좋다.
  • Dedicate device
    POS 등과 같은 COSU(하나의 앱만 실행가능한 모드) 라고 생각하면된다.  Device Owrner Mode 의 API를 사용해서, 사용자가 장비의 이것저것 조작하다가 다른 앱이 뜨거나, 안드로이드 바탕화면으로 돌아거거나 하는 것을 막을 수 있다.
잘은 모르겠지만 이렇단다. 즉 3개는 장비까지 제어할수있고,  1개는 그냥 업무용과 개인용분리만 한거란다.

AE 솔류션은 Android 5 이상이면서 구글 개발자 서비스라는 앱이 설치되어있어야한다.

AE 사용방법

모바일 장비를 AE 하기위한 방법에는  G-suite 계정,  NFC, QR코드, Zero-Touch, DPC-indentifier , AER 업체를 통한 방법 등이 있다.
Work Profile만 할때는  주로 G-suite 계정방법만 사용하고, Device Owner Mode로서 장비 전체를 제어 하고자 할때는 G-suite 계정(초기화시에 계정입력),NFC, QR코드,Zero-Touch, DPC-identifier 방법을 사용한다.

 각각의 방법은 안드로이드 OS 지원에 따라 가능한것과 불가능한것이있따.
  • G Suite 계정
    G suite 를 이용하고 있는 기업에서 사용자의 Gsuite 계정을 설정해서 로그인하면 Work Profile이 된다. 만일  단말의 초기화 시에 Gsuite 계정을 기기의 계정으로 입력하면 Device Owner Mode로 된다.
  • NFC
    NFC가 지원되는 단말에서 NFC접촉을 통해 단말을 초기화 하고 전용앱을 설정한다. Device Owner Mode가 된다.
  • QR코드
    안드로이드 7 부터는 장비초기화 화면의 웰컴이미지 를 6번 연속터치하면 QR코드를 읽는 카메라화면이 나오며 이때 초기화 내용이 들어간  QR코드를 읽으면 초기화가 ㄷ진행되면서 Device Owner Mode가 된다.
  • Zero-Touch
    구글과 계약되어 있는 AER에 한해서 제공되는 것으로 구글서버에서 장비의 정보를 넣어두면 자동으로 단말이 초기화 설정이 되는 것이다. Android 8 부터 제공한다.
  • DPC-identifier
    AER 업체마다 각업체의 솔류션을 이용하기 위해서 장비의 초기화시에 구글 계정입력화면에서 각 업체의 전용태그 ( afw#demo, afe#samsung 등) 과 같이 입력하면 해당기업의 관리하에 있는 장비로 초기화가 진행된다. 특정기업이나 단체를 위해 구글에서 승인받은 업체만 사용가능하다.
  • AER 업체의 agent
    EMM 솔류션을 제공하는 업체의 앱을 구글에서 검색해서 설치하면 Work Profile에 적용된다.
읽어도 뭔소리인지 모르는 나 같은 사람들을 위해 구글에서는 간단하게 놀아볼수 있는 사이트를 제공한다.

Android Enterprise Experience 


이 사이트에서는 Enterprise 가 최소한 뭐를 할수 있는지 알게해준다.  구글이 만든 심플한 관리도구화면에서 업무용앱을 지정하거나 화면캡춰제한, 스크린락제한 등을 걸어볼수 있고,  같은 설정을 여러개의 장비에서 똑같이 초기화 되는 상황을 재현해볼수있다.
또한 비공개 앱, 웹앱을 추가 지정할수 있어서 회사내부에서만 사용하는 앱을 사용자장비에 설치해볼수도있다.

단 DPC-identifier(  afw#demo ) 로만 가능하다. 

순서대로 나열해 보면
일단 AEE 화면

이렇게 새로운 계정(또는 기존계정에 연결) 해서 초기화 안내화면 까지 간다.

그리고 모바일장비에서 








 AEE화면에서 slack등을 추가해서 초기화가 끝난 모바일장비에서 slack을 설치할수 있도록 한다.





모바일 장비에서 이제 슬랙을 다운로드 하고 설치할수 있다. AE 모드에서는 구글스토어에 들어가도 관리자가 지정한 앱에서만 다운로드가 가능하다. 또한 사용자 프로필도 전혀 다른 모양이다.



사실, 본격EMM모드에서는 Device Owner 로서 모바일장비의 전체적인 부분을 관리할수 있다.
또한 DPC 라이브러리를 직접 앱에 포함시켜서 별도의 Google Device Policy 앱을 다운로드 하는 절차를 생략할수도 있다.