본문 바로가기
[Docker] Docker 설치와 튜토리얼 [Docker] Docker 설치와 튜토리얼 -Docker 를 개발 머신에서 이용할 때는 Docker for Mac 또는 Docker for Windows 를 설치한다.Docker 를 Linux 환경에서 사용하는 경우는 배포판에 따라 설치 절차가 다르다. 3.1. Docker 설치와 작동 확인 * Docker 의 클라이언트 툴 -macOS 용 Docker 는 macOS 1.10 Yosemite 에서 이용 가능하게 된 Hypervisor 프레임워크인 xhyve 를 사용한다. -windows 용 Docker 는 Windows 10 이후에 이용가능하며, MS 가 제공하는 하이퍼바이저인 x64용 가상화 시스템인 Hyper-V 를 사용하고 있다.OS 설정에서 Hyper-V 를 유효화하면 VirtualBox 등과 .. 2020. 3. 21.
[Docker] 컨테이너 기술과 Docker 의 개요 [Docker] 컨테이너 기술과 Docker 의 개요 -Docker 는 컨테이너 기술을 사용하여 앱의 실행 환경을 구축 및 운용하기 위한 플랫폼이다.앱 실행에 필요한 것을 하나로 모아, docker 이미지를 관리함으로써 앱의 이식성을 높일 수 있다. 2.1. 컨테이너 기술의 개요 * 컨테이너 -컨테이너란 호스트 OS 상에 논리적인 구획(컨테이너)를 만들고, 앱을 작동시키기 위해 필요한 라이브러리나 앱 등을 하나로 모아, 마치 별도의 서버인 것처럼 사용할 수 있게 만든 것이다.호스트 OS 의 리소스를 논리적으로 분산시키고, 여러 개의 컨테이너가 공유하여 사용한다.컨테이너는 오버헤드가 적기 때문에 가볍고 고속으로 작동한다는 것이 특징이다. -보통 물리 서버 상에 설치한 호스트 OS 의 경우 하나의 OS 상에.. 2020. 3. 20.
[Docker] 시스템과 인프라 기초 지식 [Docker] 시스템과 인프라 기초 지식 -Docker 는 앱 실행 환경을 작성 및 관리하기 위한 플랫폼이다. 1.1. 시스템 기반의 기초 지식 -클라우드의 등장으로 시스템 개발의 흐름이 크게 바뀌었다.클라우드를 구성하는 대부분의 기술은 한 대의 물리 호스트 상에서 움직이는 시스템과는 달리 분산 환경에서 가동시키는 것이 기본이다.인프라 엔지니어에게는 인프라 기술에 더해 앱 엔지니어와 똑같이 코드를 작성하는 스킬이 요구된다.앱 엔지니어도 지금까지 인프라 엔지니어의 업무였던 제품 환경에 대한 베포나 테스트 등도 직접 할 수 있게 되었기 때문에 OS(커널)나 네트워크 등과 같은 인프라 기술의 기초 지식을 알아두어야 한다. * 시스템 기반의 구성 요소 -시스템 기반이란 앱을 가동시키기 위해 필요한 하드웨어나 .. 2020. 3. 19.
[android 10] 개발자를 위한 Android Q 가이드 (Highlights) [android 10] 개발자를 위한 Android Q 가이드 (Highlights) https://developer.android.com/about/versions/10/highlights -안드로이드 10 은 세가지 중요한 주제로 개발.첫번째는 모바일 분야의 혁신적인 최신 기술을 적용한 것 (ML (Machine-learning), foldable 지원, 5G 가능 폰)두번째로는 보안에 중요 포인트를 두었다는 것.마지막은 사용자의 digital wellbeing 확장. Innovation and new experiences * Foldables -multi-resume 에 대한 지원이 강화됨.resizeableActivity manifest attribute 의 작동방식이 수정되었다. * 5G net.. 2020. 3. 17.
[android 10] android Q 기능과 API 들 [android 10] android Q 기능과 API 들 https://developer.android.com/about/versions/10/features 보안 강화 * 생체 인증 dialog 의 개선 -Android 10 에서는 통합 생체 인증 dialog 가 강화되었다.... * 내장된 DEX code 를 APK 에서 직접 수행한다. -platform 에 앱의 APK file 안에 embedded 된 DEX code 를 실행하도록 할 수 있다.이 option 은 공격자가 단말에서 locally compile 한 것으로 대체하는 공격을 막을 수 있다. -이 feature 를 enable 하면 앱 성능에 영향이 있을 수 있다. 왜냐하면 이 옵션이 on 되면 ART 는 앱이 시작할 때 AOT 로 co.. 2020. 3. 16.
[android 10] Q target 하는 앱의 동작 변화 [android Q] Q target 하는 앱의 동작 변화 https://developer.android.com/about/versions/10/behavior-changes-10 non-SDK interface 제한 업데이트 -앱의 안정성과 호환성 문제 해결을 위해 non-SDK interface 제약이 Pie 에서 도입되었다.Q 에서는 관련 list 가 업데이트 되었다. 앱이 Q 를 target 하지 않으면, 이 변화는 바로 영향을 미치지 않겠지만 결국 high risk 로 다가올 것이다. 공유 메모리 -ashmem 이 dalvik map (/proc//maps) 형태로 변화되었다. 앱이 dalvik map format 에 의존하고 있었다면, 앱 개발자는 새로운 /proc/maps 포맷을 단말에서 테.. 2020. 3. 15.
[android 10] 모든 앱에 해당하는 동작 변화 [android Q] 모든 앱에 해당하는 동작 변화 https://developer.android.com/about/versions/10/behavior-changes-all Non-SDK interface 제한 -Pie 부터 Non-SDK interface 제한이 시작되었다.Q 에서는 해당 list 를 업데이트하였다.목표는 모든 private api 를 제거하는 것이다. -Android Q 를 target 하지 않는다면, 몇몇 변화는 즉각적으로 영향을 미치지 않을 것이다.하지만 현재 greylist 에 있는 non-SDK interface 를 사용한다면, 이것은 미래에 어떻게든 high risk 로 돌아올 것이다. -만약 앱이 non-SDK interface 를 사용하는지 확실치 않다면 테스트 해서 찾.. 2020. 3. 14.
[coroutine] Shared mutable state and concurrency [coroutine] Shared mutable state and concurrency https://github.com/Kotlin/kotlinx.coroutines/blob/master/docs/shared-mutable-state-and-concurrency.md#shared-mutable-state-and-concurrency -Dispatchers.Default 와 같은 dispatcher 를 사용하여 coroutine 은 multi thread 에서 병렬적으로 수행될 수 있다.이는 일반적인 병렬 관련 문제를 보여준다.주요 문제는 공유된 변경가능한 상태에 대한 동기화이다. The problem -suspend fun massiveRun(action : suspend () -> Unit){ val.. 2020. 3. 13.
[coroutine] Channels [coroutine] Channels https://github.com/Kotlin/kotlinx.coroutines/blob/master/docs/channels.md#channels Channel basics - Channel 은 BlockingQueue 와 매우 비슷한 개념이다. 한가지 큰 차이는 blocking 하는 put 대신 suspending function 인 send 가, blocking 하는 take 대신 suspending function 인 receive 가 있다는 것이다. fun main() = runBlocking{ val channel = Channel() launch{ for( x in 1..5) channel.send( x * x ) } repeat(5) { println(.. 2020. 3. 12.
반응형