Tech
기술 블로그
MDX로 기록한 글과 작업 로그를 한 곳에 모아두는 공간입니다.

Sentry만으로 부족했던 이유 — Spring Boot에 OpenTelemetry + Jaeger 분산 추적을 도입한 과정
Sentry의 에러 추적과 Actuator의 메트릭 모니터링만으로는 서비스 간 호출 흐름을 파악하기 어려웠습니다. OpenTelemetry와 Jaeger를 도입해 분산 추적 체계를 구축하고, 각 도구의 역할을 분리한 경험을 공유합니다.

Spring AI + PGVector로 사내 문서 검색 RAG 파이프라인을 구현한 과정
사내 문서를 LLM이 검색하고 답변할 수 있도록 Spring AI와 PGVector 기반 RAG 파이프라인을 구축한 경험을 정리했습니다. 임베딩, 벡터 저장소, 검색 품질 개선까지 실무에서 겪은 시행착오를 담았습니다.

Spring Boot 4의 JSpecify + NullAway로 NullPointerException을 빌드 타임에 잡은 경험
Spring Framework 7이 도입한 JSpecify 기반 null-safety 어노테이션과 NullAway를 실무 프로젝트에 적용하여, 런타임에 터지던 NPE를 빌드 단계에서 차단한 과정과 결과를 정리합니다.

Spring Security 7 마이그레이션 — lambda DSL 필수화와 SecurityFilterChain 설정 변경 정리
Spring Security 6에서 7로 올리면서 만난 deprecated API 제거, lambda DSL 필수화, OAuth2 Resource Server 변경점을 before/after 비교와 함께 정리했습니다.

Claude Code의 /review와 claude-code-action으로 PR 리뷰를 자동화한 경험
Anthropic 공식 Claude Code의 /review 기능과 GitHub Actions용 claude-code-action을 활용해 PR 코드 리뷰를 자동화하고, CLAUDE.md로 리뷰 기준을 관리한 경험을 공유합니다.

Spring Boot 3에서 4로 마이그레이션하며 만난 Jackson 3, Jakarta EE 11, properties 변경 정리
Spring Boot 4 업그레이드 과정에서 Jackson 3 직렬화 깨짐, Jakarta EE 11 전환으로 인한 컴파일 오류, application.properties 키 변경까지 실제로 부딪힌 문제와 해결 과정을 공유합니다.