/
https://42jerrykim.github.io/ _index.md
컴파일러는 실행 전에 소스 코드 전체를 기계어로 번역하고, 인터프리터는 코드를 한 줄씩 즉시 해석해 실행합니다. 두 방식의 차이와 이를 절충한 JIT 컴파일, 그리고 상황별로 어떤 실행 방식을 택해야 하는지 판단 기준을 다룹니다. 타입 시스템은 정적/동적(검사 시점)과 강/약(암묵적 변환 허용 여부)이라는 서로 독립된 두 축으로 분류됩니다. TypeScript·Python·JavaScript·C 네 언어의 실제 코드로 네 조합의 차이와 언제 어떤 타입 시스템을 택할지 판단 기준까지 비교합니다. 트리는 노드 사이에 계층 관계를 갖는 자료구조로, 이진 탐색 트리와 균형 트리를 중심으로 순회 방식·탐색 성능·불균형 문제를 다룹니다. 정렬된 값을 순서대로 삽입하면 O(n)으로 퇴화하는 이유와, AVL·레드-블랙 트리가 회전으로 이를 막는 원리를 컴파일 가능한 C 코드와 함께 설명합니다. 파일 시스템은 디스크의 저장 블록을 사람이 다루는 파일·디렉터리 구조로 바꾸는 계층입니다. inode 기반 구조와 저널링을 통해 파일 접근과 장애 복구 원리를 다루고, 저널링 모드별 성능·안전성 트레이드오프까지 함께 설명합니다. 프로세스는 독립된 메모리 공간을 가진 실행 단위이고, 스레드는 그 메모리를 공유하는 더 가벼운 실행 단위입니다. 두 단위의 자원 격리 차이를 fork와 스레드 생성 코드로 비교하고, 격리가 중요한 상황과 가벼운 동시성이 중요한 상황을 구분하는 판단 기준까지 다룹니다. 해시테이블은 해시 함수로 키를 배열 인덱스로 변환해 평균 O(1) 탐색을 제공하는 자료구조입니다. 해시 충돌 처리 방식과 균형 트리 대비 트레이드오프를 C 코드와 함께 다룹니다. RPC 텔레메트리·CPU 프로파일링·분산 트레이싱만으로는 지연시간 병목을 찾기 어렵다. Google Search가 도입한 Critical Path Tracing(CPT)의 원리, critical path 계산법, 프레임워크 계측·집계, 실측 운영 오버헤드를 CACM 원문 기반으로 정리한다. 안드로이드 하드웨어 개발자가 필요한 이유와 앱 개발자와의 차이, AOSP 5계층 구조와 Treble 아키텍처, Phase 1–4 구성 근거, 00–18장 전체 목차, 선수 지식과 완주 후 갖추는 구체적 실무 역량을 정리한 과정 개요 챕터. SoC와 Cortex-A big.LITTLE 구조, GPU·NPU, LPDDR·UFS 메모리 계층, 무선 연결성, 센서·디스플레이, DVFS·열 관리까지 안드로이드 단말 하드웨어의 핵심 구성 요소를 이론 중심으로 정리한다. 안드로이드의 5-레이어 소프트웨어 스택과 Zygote 프로세스 모델, Binder IPC 메커니즘, ART의 AOT/JIT 하이브리드 컴파일 구조를 이론 중심으로 분석하고 AIDL 기반 시스템 서비스 구현으로 실전 감각을 잡는다.