글 목록
- Platform Thread vs Virtual Thread vs Coroutine - 10,000 태스크 벤치마크
JDK 25 Platform Thread, Virtual Thread, Kotlin Coroutine의 I/O Bound, CPU Bound, High Concurrency 시나리오별 성능을 100회 반복 벤치마크로 비교한다.
- JDK 마이그레이션 (1) - JDK 11에서 21로, Spring Boot 3.x 전환기
프로덕션 Spring Boot 서비스를 JDK 11 → 21로 업그레이드하며 겪은 javax→jakarta 전환, AWS SDK v3 마이그레이션, QueryDSL 호환성 해결 등 실전 경험을 정리합니다.
- JDK 마이그레이션 (2) - JDK 21에서 25로, Virtual Threads와 모던 Java
JDK 21 → 25 업그레이드 실전기. Virtual Threads 활성화, pinning 이슈 해소, pattern matching switch 적용, Gradle Kotlin DSL 전환까지.
- Datadog 걷어내고 LGTM 스택 구축하기 - OTel Sidecar + Grafana/Loki/Tempo/Mimir
Datadog 비용 압박으로 오픈소스 LGTM 스택(Grafana, Loki, Tempo, Mimir)으로 전환한 경험을 공유합니다. OTel Collector 사이드카 설계부터 노이즈 필터링, MDC 기반 요청 추적, IRSA 기반 S3 저장소 구성까지 실전 구축기입니다.
- EKS에 LGTM 스택 구축하기 - Loki, Grafana, Tempo, Mimir 실전 셋업 가이드
EKS 클러스터에 Grafana LGTM 스택을 Helm으로 배포하고, OTel Collector 사이드카로 Spring Boot 앱의 로그·트레이스·메트릭을 수집하는 전체 과정을 다룹니다.
- Spring AI 적용 가이드 (1) - 프로젝트 설정부터 첫 번째 AI 호출까지
Spring AI의 핵심 개념과 프로젝트 설정, ChatClient를 이용한 첫 번째 AI 호출까지를 정리합니다.
- Spring AI 적용 가이드 (2) - 멀티 프로바이더 전략
OpenAI, AWS Bedrock, Google Gemini를 하나의 ChatClient 인터페이스로 추상화하고, 런타임에 동적으로 전환하는 방법을 다룹니다.
- Spring AI 적용 가이드 (3) - 프롬프트 관리 & Structured Output
Spring AI의 메시지 모델, 변수 템플릿링, DB 기반 프롬프트 관리, JSON Schema를 활용한 Structured Output을 다룹니다.
- ECS에서 EKS로 - kustomize + Gateway API 기반 운영 환경 구축기
AWS ECS에서 EKS로 마이그레이션하면서 kustomize base/overlay 패턴, K8s Gateway API, Karpenter 노드 오토스케일링, Blue/Green 배포 전략까지 구축한 경험을 공유합니다.
- API 응답/에러 처리 구조 공통화 - HTTP 상태코드를 제대로 쓰기까지
모든 API가 200을 반환하던 레거시 구조에서, HTTP 상태코드를 올바르게 활용하는 공통 응답/에러 체계로 전면 개선한 과정. 모니터링 정상화, 디버깅 효율화, 개발자 간 커뮤니케이션 비용 절감까지.
- Spring MVC에 Facade 패턴 도입기 - @Gateway 어노테이션으로 레이어드 아키텍처 개선
전통적인 Controller-Service-Repository 구조에 커스텀 @Gateway 어노테이션과 Facade 레이어를 도입하여 도메인별 단일 책임 원칙을 확보하고 팀 생산성을 높인 과정을 공유합니다.
- 멀티채널 알림 서버 구축기 - php 레거시에서 Java/Spring으로
PHP 파일에 흩어져 있던 알림 로직을 Spring Boot 기반 독립 알림 서버로 구축한 과정. 카카오 알림톡, SMS, 이메일, 푸시, Slack까지 6개 채널을 하나의 서버에서 처리하는 구조를 만들기까지.
- 결제 시스템 재설계 (1) - PHP 레거시에서 Java/Spring으로
PHP로 구현된 레거시 결제 시스템을 Java/Spring + SQS 기반 이벤트 드리븐 아키텍처로 전환한 과정을 공유합니다.
- 결제 시스템 재설계 (2) - SQS를 걷어내고 동기 API로
이벤트 드리븐의 매력에 빠져 도입한 SQS였지만, 결제 도메인에서는 오히려 복잡도만 높였다. SQS를 제거하고 동기 API + Portone 웹훅 기반으로 전환하면서 결제 프로세스를 안정화한 이야기.
- Spring AI 실전 적용기 - 7단계 AI 진단 파이프라인 구축
HTTP 직접 호출 + 동기 단일 프롬프트 방식을 Spring AI 기반 7단계 파이프라인으로 재설계한 실전 경험을 공유합니다.
- 블로그 만들기 #1 - 프로젝트 소개 & 기술 스택
React 19, Vite 7, shadcn/ui로 개인 블로그를 새로 만든 이유와 기술 스택을 소개합니다.
- 블로그 만들기 #2 - Command Palette 검색 & View Transitions
cmdk로 Cmd+K 검색을 구현하고, View Transitions API로 페이지 전환 애니메이션을 적용한 과정입니다.
- 블로그 만들기 #3 - 컬러 테마 프리셋 & 포스트 시리즈
shadcn/ui의 oklch 색상 시스템으로 6가지 컬러 프리셋을 만들고, 포스트 시리즈 기능을 구현한 과정입니다.
- 블로그 만들기 #4 - 고급 검색 & SEO 최적화
날짜/태그 필터가 포함된 검색 페이지를 만들고, 메타 태그, sitemap, RSS 피드로 SEO를 최적화한 과정입니다.
- 블로그 만들기 #5 - Google Analytics 연동 & 방문자 수 표시
정적 사이트에서 GA4 데이터를 활용해 방문자 수와 일별 조회수 차트를 표시하는 방법을 정리합니다.
- 블로그 만들기 #6 - UX 개선 & SEO 마무리
글 목록 연도별 그룹핑, 모바일 사이드바 UX 개선, robots.txt, OG 이미지 등 블로그의 완성도를 높이는 작업들을 정리합니다.
- GitOps 자동화 배포 - ArgoCD + n8n + GitHub Actions로 Slack 승인 배포 파이프라인 구축하기
ECS에서 EKS로 마이그레이션하면서 구축한 GitOps 기반 배포 자동화 시스템을 소개합니다. ArgoCD, n8n, GitHub Actions를 조합하여 환경별로 차등화된 배포 전략을 설계한 경험을 공유합니다.
- React Hooks 딥다이브
React Hooks의 동작 원리와 실전 패턴을 깊이 있게 살펴봅니다.
- React + TypeScript 실전 팁
React 프로젝트에서 TypeScript를 효과적으로 사용하는 팁들을 정리합니다.
- Tailwind CSS 시작하기
Tailwind CSS의 기본 개념과 활용법을 알아봅니다.