Java 19
- JEP로 따라가는 Java LTS 버전별 변경점 (8, 11, 17, 21)
- Gradle의 api와 implementation은 무엇이 다른가
- 테스트 대역과 테스트 피라미드, 그리고 운영 중인 서비스에 테스트를 붙인 과정
- 형태소 분석기로 뉴스 키워드를 뽑기, Lucene과 Komoran 중 무엇을 고를까
- 크롤러가 커넥션을 말리고 힙을 터뜨렸던 이야기
- Garbage Collector와 GC 로그 읽기
- Caffeine Cache는 왜 빠른가, W-TinyLFU 내부 뜯어보기
- 인증 정보를 어디에 둘 것인가, AOP와 ThreadLocal 내부 뜯어보기
- 스프링은 왜 프록시를 쓰는가 (리플렉션, JDK 동적 프록시, CGLIB, AOP)
- 코틀린의 class와 object 키워드, 디컴파일해서 확인하기
- Spring Boot에 FCM 붙이면서 밟은 지뢰들
- 인터페이스만 만들었는데 쿼리가 나가는 이유, Spring Data JPA 구현체 따라가기
- JVM이 클래스를 읽어 기계어로 만들기까지 (클래스 로더, 메모리 구조, JIT)
- 외부 서버 호출로 응답이 658ms가 됐고, @Async로 122ms로 줄인 과정
- 애노테이션은 주석인데 어떻게 코드 동작을 바꾸는가
- 자바 직렬화, 그리고 쓰지 말라는 말을 듣고 이유를 찾아본 기록
- Interface 명세로 알아보는 Servlet
- 필터를 직접 만들어보면서 확인한 등록과 순서
- Java 8 - Stream/Lambda