About

재밌는걸 평생 만들고 싶어요.
“
기술적 부채(Tech Debt)보다 무서운 것은 '창의적 부채'다.
AI가 다 해줄 때, 당신의 독창성은 어디에 있는가?
”
Tech
기술 블로그

커스텀 에러 포맷을 RFC 9457 ProblemDetail로 표준화하며 고민한 것들
code·message로 만든 커스텀 에러 응답을 Spring의 ProblemDetail(RFC 9457) 표준으로 옮기면서, 클라이언트 호환과 확장 필드 설계를 어떻게 정리했는지 기록했습니다.

Spring AI Tool Calling(@Tool)로 LLM이 사내 API를 직접 호출하게 만든 과정
@Tool 어노테이션으로 Java 메서드를 LLM이 호출 가능한 도구로 등록해, LLM이 사내 API와 DB를 직접 조회하도록 만든 함수 호출(Function Calling) 구현 과정을 예제 기반으로 정리했습니다.

Java 25 StructuredTaskScope로 여러 API 병렬 호출을 하나의 작업 단위로 묶기
Java 25 구조적 동시성(JEP 505, 5차 프리뷰)의 StructuredTaskScope와 Joiner API를 직접 예제로 돌려보며, 여러 외부 API 병렬 호출의 에러 전파·취소·관측성을 개선한 과정을 정리합니다.

Spring Boot 4 AOT Repositories로 앱 시작 시간 줄이기 — 쿼리 파싱을 빌드 타임에
Spring Data JPA 4.0의 AOT 리포지토리가 쿼리 메서드를 빌드 타임에 미리 만들어 시작 시 리플렉션 파싱을 없애는 원리를, 공식 문서와 예제를 직접 돌려보며 정리했습니다.

Claude Code 커스텀 슬래시 커맨드로 PR 리뷰 스킬을 직접 만든 과정
Claude Code의 /review 대신, 프로젝트 컨벤션과 심각도 분류를 세밀하게 제어하는 커스텀 PR 리뷰 슬래시 커맨드를 .claude/commands/에 직접 만들어 팀에 공유한 경험을 정리합니다.

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