람다는 어떻게 바이트코드가 되는가
invokedynamic 명령어의 생성부터 LambdaMetafactory의 런타임 합성, 박싱 회피 함수형 인터페이스의 설계 철학까지, 자바 람다의 내부를 추적한다.
총 41개의 글
invokedynamic 명령어의 생성부터 LambdaMetafactory의 런타임 합성, 박싱 회피 함수형 인터페이스의 설계 철학까지, 자바 람다의 내부를 추적한다.
Lazy evaluation의 본질부터 Sink 체인, Spliterator 분할, Collector의 가변 reduction까지 — Stream API 설계 철학을 관통하는 하나의 원리를 추적한다.
ForkJoinPool의 work-stealing 메커니즘부터 NQ 모델 기반 의사결정까지, 자바 병렬 스트림이 빠른 경우와 느린 경우를 가르는 원리를 추적한다.
Optional의 final class 설계부터 직렬화 금지, Functor/Monad 패턴, 안티패턴, ORM·Jackson 통합까지 — 하나의 설계 철학을 추적한다.
블로킹 get()의 한계부터 Treiber 스택 콜백 체인, thenApply/thenCompose/thenCombine 선택 기준, Executor 설계, 예외 처리 3가지, allOf/anyOf 패턴까지 비동기 파이프라인 설계의 핵심을 추적한다.
Default Method의 바이트코드 원리부터 Sealed Interface의 ADT 표현까지, Java 인터페이스 설계 철학의 변곡점들을 추적한다.
LocalDate·ZonedDateTime·Instant의 타입 선택 기준부터 불변성 보장 메커니즘, TemporalAdjuster 패턴, 레거시 마이그레이션 전략까지, java.time 패키지의 설계 철학을 추적한다.
Record의 불변 데이터 구조부터 Sealed의 닫힌 계층, Pattern Matching의 구조 분해까지 — Java 16-21의 세 기능이 하나의 철학으로 수렴하는 과정을 추적한다.
고차 함수부터 Either 패턴까지, 자바 함수형 설계의 핵심 원칙과 각 기법이 공유하는 단 하나의 철학을 추적한다.
Platform Thread의 1:1 OS 매핑 비용부터 Continuation 기반 M:N 스케줄링, Pinning 진단, Structured Concurrency 도입까지, Virtual Thread의 설계 철학을 추적한다.
단일 동작 검증 원칙부터 경계값 분석, 파라미터화, 픽스처 관리, 의미 있는 단언까지 — 테스트를 설계하는 다섯 가지 핵심 원칙을 추적한다.
배열의 메모리 구조부터 정렬·검색·복사·변환·다차원 배열까지, Arrays 클래스의 설계 철학과 실전 함정을 추적한다.
if-else 지옥부터 복잡한 객체 간 통신까지, Strategy·Observer·Command·State 등 11가지 행위 패턴이 공유하는 하나의 설계 철학을 추적한다.
List의 순서 보장부터 Map의 해시·정렬 설계, Queue와 Stack의 단방향·양방향 구조까지, 16개 챕터를 관통하는 컬렉션 설계 철학을 추적한다.
스레드 풀부터 Future/Promise까지, Java 동시성 패턴 6가지의 공통 철학과 각 설계 결정의 이유를 추적한다.
Thread 생명주기부터 Virtual Thread까지, Java 동시성 API 7개 챕터를 관통하는 설계 철학과 핵심 트레이드오프를 추적한다.
ConcurrentHashMap의 CAS 전환부터 CopyOnWriteArrayList의 스냅샷 보장, BlockingQueue의 분리 락, ConcurrentSkipListMap의 Lock-Free 삭제까지, Java 동시성 컬렉션의 설계 철학을 추적한다.
Singleton의 Thread-safety부터 Object Pool의 재사용 철학까지, Java 생성 패턴 6개를 관통하는 하나의 질문을 추적한다.
가변 객체와 스레드 불안전이라는 레거시 API의 근본 결함부터 불변성·타입 안정성·시간대 분리라는 java.time의 설계 철학까지, 날짜/시간 처리의 전환점을 추적한다.
DTO의 보안 경계부터 Specification의 규칙 조합까지, 레이어드 아키텍처를 구성하는 5개 패턴의 설계 철학과 트레이드오프를 추적한다.
타입 안전성의 출발점부터 전략 패턴·상태 머신·싱글톤까지, Enum이 하나의 설계 언어로 기능하는 방식을 추적한다.
예외 계층 구조의 출발점부터 커스텀 예외 설계, Exception 체인, 그리고 실무 안티패턴까지, Java 예외 처리의 전체 그림을 추적한다.
컴파일 타임 타입 안전성의 근본 원리부터 Type Erasure의 설계 결정, PECS 원칙까지 — Java Generics의 통일된 철학을 추적한다.
File 클래스의 경로 표현부터 바이트/문자 스트림 분리, 객체 직렬화까지 — Java IO 계층의 설계 결정을 추적한다.
CPU 캐시 가시성 문제부터 JMM 추상화, happens-before 전이성, volatile 메모리 펜스, 명령어 재정렬, DCL 함정까지 — Java 동시성 설계의 단일 원리를 추적한다.
CPU 캐시 불일치와 명령어 재정렬이 만드는 가시성 문제부터, Happens-Before·volatile·final·Memory Barrier가 이를 해결하는 방식까지, JMM 전체 철학을 추적한다.
Supplier부터 커스텀 함수형 인터페이스까지, Java 람다 생태계의 공통 철학인 '타입으로 표현된 함수'를 추적한다.
CPU 레벨 LOCK CMPXCHG부터 LongAdder의 Cell 분산, ConcurrentLinkedQueue의 Lock-Free 설계, VarHandle 메모리 오더링까지 Java CAS 생태계의 통일된 원리를 추적한다.
Object Header의 Mark Word 비트 레이아웃부터 AQS 대기 큐, StampedLock 낙관적 읽기, JIT Lock Elision까지 — Java 동시성 락 계층의 설계 철학을 추적한다.
int와 double의 한계부터 Wrapper 클래스의 박싱 함정, BigDecimal의 정확성 보장까지, Java 수 타입 계층이 만들어진 이유를 추적한다.
50줄 보일러플레이트를 1줄로 줄이는 Record부터, 완전성을 컴파일 타임에 강제하는 Sealed Class까지, Modern Java가 공유하는 하나의 철학을 추적한다.
Functional Interface, Stream Pipeline, Optional, Sealed Classes까지 — Java 현대 패턴들이 공유하는 '선언적 제어'의 원리와 트레이드오프를 추적한다.
1:1 커널 스레드 매핑의 비용부터 컨텍스트 스위칭, ThreadPoolExecutor 내부, 상태 머신, Graceful Shutdown까지 — Java 동시성의 물리적 기반을 추적한다.
데드락 4가지 조건부터 Lock Contention 진단, Virtual Thread와 Spring 어노테이션의 스레드 모델 오해까지, Java 동시성 버그의 구조적 원인을 추적한다.
은행 계좌 도메인의 완전 구현부터 안티패턴 진단, 점진적 도입 로드맵, 실제 비용과 편익까지 — CQRS/ES 도입 결정을 위한 실전 분석.
런타임 클래스 조작의 원리부터 Dynamic Proxy, Annotation 처리, 성능 최적화까지 — Spring·JPA가 Reflection 위에서 동작하는 방식을 추적한다.
String 불변성의 설계 근거부터 String Pool의 메모리 구조, StringBuilder의 성능 원리, 그리고 실전 패턴의 공통 철학까지, Java 문자열의 모든 결정을 추적한다.
Adapter부터 Flyweight까지, Java 구조 패턴 7개가 공유하는 하나의 철학 — 상속 계층을 포기하고 객체 간 관계로 복잡성을 제어하는 방법을 추적한다.
if (isTest) 분기부터 Assertion Roulette까지, 테스트 안티패턴의 근본 원인과 설계 교정을 추적한다.
Comparator의 체이닝부터 Stream 파이프라인, Optional의 null 추방, 정규표현식의 패턴 추상화까지 — Java util 패키지가 반복하는 하나의 설계 언어를 추적한다.
Thread-per-Request 모델의 처리량 상한선부터 Pinning·ThreadLocal 함정까지, Java 21 Virtual Thread의 설계 원리와 실전 함의를 추적한다.