firststep.kr
1주차 마일스톤약 8시간 소요난이도: 초급

코틀린(Kotlin) 핵심 언어 체계 & 안드로이드 런타임 이해

JVM/ART 런타임 아키텍처, 코틀린 모던 문법, Coroutines과 Flow를 활용한 고성능 비동기 파이프라인 구축

#Kotlin#ART#Coroutines#Flow

이번 주 핵심 학습 목표

  • 1
    JVM 바이트코드와 Android ART(Android Runtime)의 AOT/JIT 하이브리드 컴파일 구조를 이해한다.
  • 2
    Null Safety, 확장 함수, Sealed Interface 등 코틀린 모던 문법의 핵심을 체득한다.
  • 3
    Coroutine Scope, Dispatchers, 그리고 비동기 데이터 스트림 Flow를 설계할 수 있다.

실전 학습 가이드 & 코드 워크스루

1. 안드로이드 런타임(ART)과 코틀린의 본질

안드로이드는 과거 Dalvik VM 시절의 JIT(Just-In-Time) 컴파일러의 한계를 극복하기 위해 ART(Android Runtime)를 도입했습니다. ART는 앱 설치 시점에 AOT(Ahead-Of-Time) 사전 컴파일을 수행하며, 프로파일 가이드 컴파일(PGO)을 통해 자주 실행되는 핫코드(Hot Code)를 최적화합니다.

온디바이스 AI 앱에서는 모델 인퍼런스 시 수많은 텐서 연산과 메모리 할당/해제가 발생합니다. 가비지 컬렉터(GC)의 Pause 시간을 최소화하고, CPU 파이프라인을 효율적으로 타기 위해서는 코틀린 언어의 힙(Heap) 할당 메커니즘을 정확히 파악해야 합니다.


2. 고성능 코틀린 핵심 문법

(1) Value Class를 통한 제로 오버헤드 래핑

텐서의 차원(Shape)이나 레이턴시(ms) 단위를 래핑할 때 @JvmInline value class를 사용하면 런타임에 기본형(primitive)으로 인라인되어 객체 생성 오버헤드가 0이 됩니다.

kotlin
@JvmInline
value class TensorDimension(val size: Int) {
    init {
        require(size > 0) { "텐서 크기는 0보다 커야 합니다." }
    }
}

(2) Coroutines 기반 비동기 인퍼런스 제어

인공지능 모델 실행은 결코 Main Thread(UI 스레드)에서 실행되어서는 안 됩니다. 16ms(60fps) 또는 8ms(120fps) 이내에 프레임이 렌더링되지 못하면 ANR(Application Not Responding)이 발생합니다.

kotlin
class ModelPipeline(
    private val defaultDispatcher: CoroutineDispatcher = Dispatchers.Default
) {
    suspend fun executeInference(inputData: FloatArray): FloatArray = withContext(defaultDispatcher) {
        // 무거운 텐서 연산 및 추론 수행
        val result = FloatArray(10)
        // ... 모델 인퍼런스 로직
        result
    }
}

3. 1주차 핵심 과제 & 미션

  1. Coroutine과 Flow를 결합하여 1초마다 가상의 온디바이스 센서 데이터를 수집하고, 이를 10개씩 버퍼링하여 배치 처리하는 샘플 프로젝트를 작성해보세요.
  2. Android Profiler를 열어 Coroutine 실행 시 스레드 점유율과 힙 메모리 할당 추이를 캡처하세요.

📂 이번 주차 학습 자료 & 실습 파일 다운로드

2개 파일 제공

강의 교안 PDF, 실습 스타터 코드, 치트시트 등 학습에 필요한 자료를 별도로 열람하거나 다운로드하여 학습하세요.

1주차_핵심요약_치트시트.pdf

PDF•1.8 MB

1주차 핵심 이론 및 아키텍처 다이어그램 치트시트

1주차_실전_스타터코드.zip

ZIP•3.4 MB

Android Studio 프로젝트 템플릿 및 실습 코드 예제

실전 체크리스트 & 셀프 점검

0 / 4 완료

직접 코드를 구현하고 테스트를 완료할 때마다 체크해 보세요. 브라우저에 자동 보관됩니다.

Android Studio Koala/Ladybug 최신 버전 설치 및 JDK 17+ 환경 점검
Kotlin Null Safety 연산자(?., ?:, !!)와 스마트 캐스팅 예제 작성
Dispatchers.IO와 Dispatchers.Default의 스레드 풀 분리 실습
StateFlow를 이용한 데이터 발행-구독 파이프라인 구축
ADVERTISEMENTfirststep.kr ad
1st

firststep.kr 12주 완성 실전 커리어 로드맵

파이썬, 소프트웨어설계, DB, 데이터과학, 딥러닝, LLM 9종 코스 100% 무료

로드맵 둘러보기