Java의 Garbage Collector: G1, ZGC 그리고 선택 방법
Java 21에서 G1과 ZGC 비교: 동작 방식, 활성화 방법, GC 로그 읽기, 실행 중인 GC 확인 그리고 Spring Boot 애플리케이션에 맞는 GC 선택 기준.
Java 21에서 G1과 ZGC 비교: 동작 방식, 활성화 방법, GC 로그 읽기, 실행 중인 GC 확인 그리고 Spring Boot 애플리케이션에 맞는 GC 선택 기준.
LocalDate, ZonedDateTime, Duration을 올바르게 사용하기: 날짜 계산, 시간대 변환, 일광절약시간 처리 및 Clock을 이용한 안정적인 테스트 작성
List.of, List.copyOf, Collections.unmodifiableList 비교: 어느 것이 복사본이고 어느 것이 뷰인지, null 처리는 어떻게 되는지, 언제 뭘 써야 하는지.
Java 21의 다양한 thread pool 비교: fixed, cached, scheduled, work-stealing, virtual thread. ThreadPoolExecutor 직접 구성 방법과 Spring Boot에서 안전하게 사용하기.
checked와 unchecked exception을 구분하고, 올바른 유형을 선택하며, 맥락을 담은 커스텀 exception을 설계하고 흔한 anti-pattern을 피하는 방법
Comparator.comparing, thenComparing, reversed, nullsLast를 사용한 다중 기준 정렬과 흔한 실수 해결법
Collectors.groupingBy, partitioningBy 및 counting, mapping, filtering 같은 downstream collector를 사용해서 Java 21에서 데이터를 그룹화하고 분할하는 방법을 배웁니다.
Text block으로 여러 줄 문자열을 더 간결하게 작성하고, 들여쓰기와 이스케이프 규칙을 익히며, formatted, stripIndent, translateEscapes 같은 String의 새로운 메서드를 사용합니다.
List<Integer>가 List<Number>가 아닌 이유를 알아봅시다. ? extends와 ? super를 언제 사용하는지, PECS 원칙을 구체적인 예제로 이해해봅시다.
try-with-resources로 리소스를 자동으로 닫는 방법, AutoCloseable 클래스 직접 작성하기, suppressed exception 이해하기, 그리고 자주 만나는 오류들
HashMap, Collections.synchronizedMap, ConcurrentHashMap의 thread-safety, 잠금 메커니즘, iterator, null 처리 및 성능을 비교합니다. 예제 코드와 테스트를 포함합니다.
Java의 equals()와 hashCode() 간 계약을 이해하고, 올바르게 구현하며, HashSet과 HashMap이 오작동하는 흔한 실수들을 알아보세요.
Java 21에서 CompletableFuture를 사용하여 여러 서비스를 병렬로 호출하고, 결과를 조합하며, 오류를 처리하고, 타임아웃을 설정하고, 비동기 코드를 테스트합니다.
Sealed 클래스와 switch 패턴 매칭, record 패턴을 사용하여 if-instanceof 체인을 더 짧은 코드로 바꾸고 컴파일러가 모든 경우를 확인하도록 합니다.
Java의 Stream API 4가지 핵심 연산인 map, filter, reduce, collect를 Order, Customer 예제로 배웁니다. 데이터 필터링부터 결과 집계까지.
Optional을 올바르게 사용하는 방법과 일반적인 안티패턴, 그리고 피해야 할 방법들을 다루며, 더 명확하고 안전한 코드를 작성하는 방법을 소개합니다.
Java의 record가 어떤 문제를 해결하는지, DTO와 value object에서 올바르게 사용하는 방법, 피해야 할 경우를 알아봅시다.
Java 21의 virtual threads를 구체적인 예제로 배우고, platform thread와 비교하며 Spring Boot에서 사용하는 방법을 알아봅니다.