Blog
Posts
작성한 모든 글.
자료구조
해시 테이블이 O(1)인 이유와 깨지는 순간, 그리고 Kotlin HashMap 내부
해시 함수와 버킷, 체이닝과 선형 탐사의 충돌 처리, 로드 팩터와 리사이즈를 애니메이션으로 보고, JVM HashMap 의 기본 용량과 트리화 조건, equals/hashCode 계약까지 Kotlin 코드로 확인합니다.
서버
모놀리스, 모듈러 모놀리스, 마이크로서비스: 데이터 소유권과 사가, 분리 시점, 스트랭글러 피그 이전
한 덩어리로 배포하는 모놀리스와 모듈 경계를 세운 모듈러 모놀리스, 서비스마다 DB 를 갖는 마이크로서비스의 구조 차이와 비용을 비교합니다. 서비스별 DB, 사가의 코레오그래피와 오케스트레이션, 네트워크 실패와 관측, 콘웨이 법칙, 분리 시점, 스트랭글러 피그 이전까지 다룹니다.
CS
프로세스와 스레드: 공유하는 자원, 따로 갖는 자원, 그리고 동기화
프로그램과 프로세스의 차이, PCB와 상태 전이, 스레드가 공유하는 자원과 개별로 갖는 자원, 컨텍스트 스위칭 비용, 경쟁 조건과 교착 상태의 조건을 그림과 애니메이션으로 보고 Android 앱 프로세스와 메인 스레드까지 연결합니다.
Kotlin
Kotlin 은 왜 클래스 다중 상속을 막고 인터페이스로 풀었을까
다이아몬드 문제가 생기는 구조와 Kotlin 이 클래스는 하나만 상속하고 인터페이스는 여러 개 구현하게 한 방식, 기본 메서드가 충돌할 때 super<A>.foo() 로 해결하는 법, 위임(by)으로 기능을 조합하는 방법을 코드로 확인합니다.