Tech
기술 블로그
MDX로 기록한 글과 작업 로그를 한 곳에 모아두는 공간입니다.
AllAIAPIAPI DesignArchitectureAuthenticationBackendBlogChecklistCI/CDCode QualityCollaborationConcurrencyDatabaseDeploymentDevOpsDocumentationEvent-DrivenException HandlingFrontendGitHub ActionsIndexJavaJPAJWTKafkaLoggingMDCMonitoringMulti-ModuleNext.jsNginxObservabilityOpenTelemetryOperationsPaginationPerformanceProductivityReactRedisRefactoringResponseREST APISentrySEOSpring BootSpring SecurityTestcontainersTestingTransactionTroubleshooting
2026년 4월 8일
프로젝트 규모가 커지면서 고민한 멀티 모듈(Multi-Module) 아키텍처 분리 기준
하나의 거대한 Monolithic 서버가 무거워질 때, 도메인 주도 개발(DDD) 관점과 클린 아키텍처를 결합해 스프링 부트 프로젝트를 멀티 모듈로 쪼갠 회고입니다.
Spring BootArchitectureMulti-Module
2026년 4월 7일
분산 환경에서의 동시성 이슈 해결기: Redis 분산 락(Redisson) vs DB 락
한정된 재고나 선착순 이벤트에서 흔히 발생하는 동시성 문제를 해결하기 위해, DB 비관적 락(Pessimistic Lock)과 Redis 분산 락(Redisson)을 비교하고 적용해 본 경험입니다.
Spring BootRedisConcurrency
2026년 4월 5일
에러 추적의 자동화: Sentry 도입과 Trace ID를 활용한 장애 대응
서버 로그만 뒤적이던 시절을 벗어나, Sentry를 도입하고 프론트엔드부터 백엔드까지 이어지는 Trace ID를 통해 장애를 한눈에 파악하게 된 과정을 회고합니다.
Spring BootMonitoringBackend
2026년 4월 4일
깨지지 않는 API를 위한 Testcontainers 기반의 통합 테스트(Integration Test) 구축기
목업(Mock) 테스트의 맹점을 극복하고, 실제 환경과 동일한 Docker 컨테이너(Testcontainers)를 띄워 신뢰성 높은 통합 테스트 환경을 구축한 과정을 정리합니다.
Spring BootTestingTestcontainers
2026년 4월 1일
Spring에서 페이징 API를 설계할 때 고민한 것들
단순히 page와 size를 받는 수준을 넘어서, 정렬 기준과 count query 비용, 마지막 페이지 경험까지 실무에서 자주 부딪힌 고민을 정리했습니다.
Spring BootPaginationAPI Design
2026년 3월 26일
Spring에서 traceId를 Filter와 Interceptor로 남기는 방법
운영 로그를 요청 단위로 묶어 보기 위해 traceId를 남길 때, Filter와 Interceptor 중 어디에 두는 게 좋은지와 MDC 정리 방법을 함께 적었습니다.
Spring BootLoggingMDC