Devin.KR

심화 · 일부 장 공개

제네릭·동시성·JVM 실무

타입 설계, 스트림, 스레드, JVM과 테스트·배포를 연결합니다.

읽기 전에

클래스·인터페이스·예외·컬렉션을 먼저 익히세요.

공개 11/13장 · 목차 구성 2026-09-12

목차

현재 공개된 원고만 표시합니다. 읽음 표시는 직접 선택하며 자동 완료되지 않습니다.

  1. 자바 제네릭 - 타입 소거 와일드카드 extends super 제네릭 배열이 안 되는 이유 (자바 중급 13단원)

    타입 소거 하나로 제네릭의 제약 대부분을 설명하고, PECS 원칙으로 와일드카드를 고르는 법을 익힌다.

  2. 자바 열거형 enum과 어노테이션 - 상수보다 enum 이 나은 이유 (자바 중급 14단원)

    int 상수의 다섯 가지 문제를 enum 이 어떻게 없애는지 보고, 어노테이션을 직접 정의해 리플렉션으로 읽어본다.

  3. 자바 람다와 스트림 - 함수형 인터페이스 파이프라인 그리고 쓰지 말아야 할 때 (자바 중급 16단원)

    대출 이력 집계를 선언형으로 쓰는 법과 함께, 박싱·checked 예외·병렬 스트림처럼 스트림이 손해인 경우를 짚는다.

  4. 자바 스레드와 동시성 기초 - 경쟁 조건 synchronized volatile 차이 (자바 고급 17단원)

    재고 차감이 깨지는 경쟁 조건을 직접 재현하고, synchronized 가 보장하는 상호 배제와 가시성, volatile 이 못 하는 원자성, 락 객체와 데드락 순서까지 나눠 본다.

  5. 자바 동시성 패키지 - ExecutorService 스레드 풀 CompletableFuture (자바 고급 18단원)

    Executors 편의 메서드가 만드는 장애부터 ThreadPoolExecutor 큐와 거부 정책 튜닝, 동시성 컬렉션 선택, CompletableFuture 조합과 타임아웃 설계까지 다룬다.

  6. JVM 메모리와 GC - 힙 구조 G1 ZGC 선택과 OutOfMemoryError 읽는 법 (자바 고급 19단원)

    힙과 힙 밖 영역을 나눠 보고 실제 GC 로그와 힙 덤프로 상태를 읽으며, OutOfMemoryError 다섯 종류와 컨테이너 OOMKilled 를 원인별로 구분해 진단한다.

  7. 자바 리플렉션과 동적 프록시 - 프레임워크 동작 원리와 비용 (자바 고급 20단원)

    미니 ORM 매퍼와 동적 프록시를 직접 만들어 @Transactional 이 동작하는 원리를 밝히고, 리플렉션의 실제 비용과 Java 17 강한 캡슐화의 벽을 측정해 확인한다.

  8. 자바 최신 문법 - record sealed 패턴 매칭 텍스트 블록 가상 스레드 (자바 고급 21단원)

    record 와 sealed 로 가능한 값의 범위를 타입에 못박고, Java 21 패턴 매칭이 분기를 컴파일 검증으로 바꾸는 과정과 가상 스레드의 이득·핀 문제를 실측한다.

  9. 자바 성능 튜닝 - JMH 벤치마크와 병목 찾는 순서 (자바 고급 22단원)

    nanoTime 측정이 왜 5배씩 흔들리는지 실행 결과로 보고, JMH 의 Score 와 Error 를 해석하는 법과 실무 병목을 전체 대비 비중으로 고르는 순서를 익힌다.

  10. 자바 테스트 - JUnit 5 단위 통합 구분과 테스트하기 좋은 설계 (자바 고급 23단원)

    Clock 주입과 포트 인터페이스로 테스트 가능한 구조를 만들고, JUnit 5 로 주문 도메인을 검증하면서 단위와 통합 테스트를 실행 비용 기준으로 나눈다.

  11. 자바 빌드와 배포 - Maven 의존성 관리와 실행 가능 jar 만들기 (자바 고급 24단원)

    GAV 좌표와 스코프, 전이 의존성 충돌 해결부터 의존성을 담은 실행 가능 jar 와 GC·인코딩 실행 옵션 표준화까지 재현 가능한 배포 산출물을 만든다.

이 책은 기존 Devin.KR 게시글을 참조합니다. 원고의 원래 주소와 저작자 표기를 유지하며 같은 글을 다시 등록하지 않습니다. 수정된 원고는 읽기 화면에서 재검수 상태를 확인할 수 있습니다.