CONTENTS
목차
읽음 표시는 직접 선택하며 자동 완료되지 않습니다.
- 01자바 제네릭 - 타입 소거 와일드카드 extends super 제네릭 배열이 안 되는 이유
타입 소거 하나로 제네릭의 제약 대부분을 설명하고, PECS 원칙으로 와일드카드를 고르는 법을 익힌다.
- 02자바 열거형 enum과 어노테이션 - 상수보다 enum 이 나은 이유
int 상수의 다섯 가지 문제를 enum 이 어떻게 없애는지 보고, 어노테이션을 직접 정의해 리플렉션으로 읽어본다.
- 03자바 람다와 스트림 - 함수형 인터페이스 파이프라인 그리고 쓰지 말아야 할 때
대출 이력 집계를 선언형으로 쓰는 법과 함께, 박싱·checked 예외·병렬 스트림처럼 스트림이 손해인 경우를 짚는다.
- 04자바 스레드와 동시성 기초 - 경쟁 조건 synchronized volatile 차이
재고 차감이 깨지는 경쟁 조건을 직접 재현하고, synchronized 가 보장하는 상호 배제와 가시성, volatile 이 못 하는 원자성, 락 객체와 데드락 순서까지 나눠 본다.
- 05자바 동시성 패키지 - ExecutorService 스레드 풀 CompletableFuture
Executors 편의 메서드가 만드는 장애부터 ThreadPoolExecutor 큐와 거부 정책 튜닝, 동시성 컬렉션 선택, CompletableFuture 조합과 타임아웃 설계까지 다룬다.
- 06JVM 메모리와 GC - 힙 구조 G1 ZGC 선택과 OutOfMemoryError 읽는 법
힙과 힙 밖 영역을 나눠 보고 실제 GC 로그와 힙 덤프로 상태를 읽으며, OutOfMemoryError 다섯 종류와 컨테이너 OOMKilled 를 원인별로 구분해 진단한다.
- 07자바 리플렉션과 동적 프록시 - 프레임워크 동작 원리와 비용
미니 ORM 매퍼와 동적 프록시를 직접 만들어 @Transactional 이 동작하는 원리를 밝히고, 리플렉션의 실제 비용과 Java 17 강한 캡슐화의 벽을 측정해 확인한다.
- 08자바 최신 문법 - record sealed 패턴 매칭 텍스트 블록 가상 스레드
record 와 sealed 로 가능한 값의 범위를 타입에 못박고, Java 21 패턴 매칭이 분기를 컴파일 검증으로 바꾸는 과정과 가상 스레드의 이득·핀 문제를 실측한다.
- 09자바 성능 튜닝 - JMH 벤치마크와 병목 찾는 순서
nanoTime 측정이 왜 5배씩 흔들리는지 실행 결과로 보고, JMH 의 Score 와 Error 를 해석하는 법과 실무 병목을 전체 대비 비중으로 고르는 순서를 익힌다.
- 10자바 테스트 - JUnit 5 단위 통합 구분과 테스트하기 좋은 설계
Clock 주입과 포트 인터페이스로 테스트 가능한 구조를 만들고, JUnit 5 로 주문 도메인을 검증하면서 단위와 통합 테스트를 실행 비용 기준으로 나눈다.
- 11자바 빌드와 배포 - Maven 의존성 관리와 실행 가능 jar 만들기
GAV 좌표와 스코프, 전이 의존성 충돌 해결부터 의존성을 담은 실행 가능 jar 와 GC·인코딩 실행 옵션 표준화까지 재현 가능한 배포 산출물을 만든다.
- 12Effective Java 실무 원칙: 컬렉션을 받은 객체의 상태 지키기
record의 final 참조만으로 불변성을 얻을 수 없는 이유를 재현하고 List.copyOf로 입력 경계의 소유권을 분리한다.
- 13Java 실무: 할인 금액은 언제 반올림해야 할까
BigDecimal로 주문 금액을 계산하며 항목별 반올림과 합계 반올림의 차이를 직접 확인하고 금액 입력과 비교 규칙을 정한다.
이 책은 Devin.KR 원고를 참조합니다. 원고의 원래 주소와 저작자 표기를 유지하며 같은 글을 다시 등록하지 않습니다. 수정된 원고는 읽기 화면에서 재검수 상태를 확인할 수 있습니다.