Blog
Posts
작성한 모든 글.
서버
CQRS 와 이벤트 소싱: 읽기 모델과 프로젝션, 최종적 일관성, 아웃박스 패턴, 쓰지 말아야 할 때
명령과 조회의 모델을 나누는 CQRS, 상태 대신 이벤트를 저장하는 이벤트 소싱, 읽기 모델과 프로젝션 재구축, 최종적 일관성, 이벤트 발행을 신뢰할 수 있게 만드는 트랜잭셔널 아웃박스를 Kotlin 코드와 애니메이션으로 확인하고 Fowler 의 경고까지 짚습니다.
CS
가상 메모리와 페이징: 주소 변환, 페이지 폴트, 교체 알고리즘, 그리고 Android 의 메모리 회수
가상 주소가 MMU 와 TLB, 페이지 테이블을 거쳐 물리 주소로 바뀌는 과정, 요구 페이징과 페이지 폴트 처리, FIFO·LRU·OPT 교체와 스래싱, 세그멘테이션과의 차이, Android 의 low memory killer(lmkd)까지 정리합니다.
Kotlin
Kotlin Flow 정리: cold 와 hot, 연산자, StateFlow 와 SharedFlow, Android 에서의 수집
cold Flow 의 실행 시점과 빌더, 중간·종단 연산자, 컨텍스트 보존과 flowOn, buffer·conflate·collectLatest, catch·onCompletion, hot 인 StateFlow·SharedFlow 와 stateIn·shareIn, repeatOnLifecycle 과 collectAsStateWithLifecycle 을 실행 결과와 애니메이션으로 확인합니다.
Dart
freezed 3.0 이 생성하는 코드와 build_runner 흐름
freezed 가 불변 클래스에 만들어 주는 ==, hashCode, toString, copyWith(깊은 copyWith 포함), sealed union 과 json_serializable 연동을 코드 생성 흐름과 함께 설명하고 3.0 에서 바뀐 선언 형식과 when/map 제거를 다룹니다.