Clickin Devlog

Java

11 posts found in this category

ArrayList vs LinkedList: Big-O는 맞는데, 왜 대부분 ArrayList가 더 빠를까?

Java 컬렉션 선택을 Big-O가 아닌 CPU 캐시와 메모리 레이아웃 관점에서 정리하고, ArrayDeque 선택 기준과 JMH로 재현하는 방법까지 다룹니다.

세션 기반 인증 — 인메모리 & Redis | Micronaut Security 완전 가이드

Micronaut Security로 세션 기반 인증을 구현하는 두 가지 방법(인메모리, Redis)을 비교하고, AuthenticationProvider, CSRF 방어, 라우트 보호까지 실전 예제로 설명합니다.

Thymeleaf로 SSR 구현하기 — Micronaut Views 실전 가이드

micronaut-views-thymeleaf로 서버사이드 렌더링 애플리케이션을 구현합니다. 템플릿 레이아웃, 폼 처리, Bean Validation, i18n까지 실전 예제로 다룹니다.

선언적 HTTP Client와 Virtual Thread — @Client 인터페이스 완전 가이드

Micronaut의 선언적 @Client 인터페이스로 외부 API를 호출하는 방법, Retry, Circuit Breaker, 인터셉터 패턴, 그리고 Virtual Thread 환경에서의 blocking client 활용을 설명합니다.

Micronaut Data JDBC와 Virtual Thread — 컴파일 타임 쿼리 생성과 데이터 접근 계층

micronaut-data-jdbc의 컴파일 타임 쿼리 생성 원리, HikariCP 설정, @Transactional, 그리고 Virtual Thread 환경에서의 커넥션 풀 전략을 실전 예제로 설명합니다.

HTTP 서버 모델과 Virtual Thread — Netty, EventLoop, 그리고 가상 스레드가 바꾼 선택 기준

Tomcat과 Netty가 epoll 이후에 어떻게 달라지는지, Virtual Thread가 등장하면서 Spring MVC/WebFlux/Micronaut 중 무엇을 선택해야 하는지를 정리합니다.

Spring과 Micronaut 비교 — 무엇을 선택할까

시작 시간, 메모리, 생태계, 개발 경험을 실제 수치로 비교하고, 각 프레임워크가 강점을 발휘하는 상황을 정리합니다.

컴파일 타임의 마법 — Micronaut 내부 동작 심층 분석

Micronaut annotation processor가 생성하는 BeanDefinition, BeanDefinitionReference, 컴파일 타임 AOP 프록시의 실제 바이트코드를 직접 확인합니다.

첫 Micronaut 프로젝트 만들기

Micronaut Launch로 프로젝트를 생성하고, 첫 REST API를 만들고, Bean Scope와 테스트까지 직접 실행해봅니다.

Compile-time DI의 시대를 열다 — Micronaut 소개와 역사적 맥락

Spring이 reflection 기반 DI를 선택할 수밖에 없었던 2002년의 Java 생태계, 그리고 그 한계를 컴파일 타임에 해결한 Micronaut의 등장 배경을 살펴봅니다.

Java 8 G1GC 최적화 여행: Full GC 제거부터 간헐적인 응답 튐 현상 분석까지

JDK 8 G1GC 서비스에서 2-3초 Full GC를 제거하고, GC 로그 심층 분석으로 간헐적인 응답 지연(tail latency) 원인을 추적한 실무 경험을 정리했습니다.