#Spring Boot
26개의 글
-
java.util.concurrent 실무 패턴 7선: 스레드 풀부터 동시성 제어까지
ExecutorService, CompletableFuture, CountDownLatch, ConcurrentHashMap, BlockingQueue, Semaphore, ReentrantLock — 실무에서 자주 쓰이는 java.util.concurrent 클래스 7개의 동작 원리와 실전 패턴을 정리한다.
-
선착순 부하 테스트 회고: 실무에서 놓치기 쉬운 것들
4가지 선착순 전략을 k6로 테스트하면서 만난 문제들 — Rate Limiter 충돌, 대기열 초과 성공 버그. 그리고 실무에서 선착순 API와 일반 API를 격리하는 4가지 방법(DataSource 분리, Redis 오프로드, 서비스 분리, Bulkhead)을 정리한다.
-
토큰 발급 방식으로 선착순 시스템 구현하기: 입장권부터 봇 방지까지
입장 토큰을 먼저 발급하고 토큰 보유자만 구매할 수 있는 선착순 시스템을 구현한다. JWT 기반 토큰 설계, TTL 만료 전략, Rate Limiting + CAPTCHA를 조합한 봇 방지까지 다룬다.
-
Redis로 선착순 시스템 구현하기: DECR부터 Lua 스크립트까지
Redis DECR 원자 연산과 Lua 스크립트로 선착순 재고 차감을 구현한다. Spring Boot + Redisson으로 구현하고, DB 락 방식과 동일 조건(재고 100개, 동시 100명)으로 TPS를 직접 비교한다. Redis-DB 정합성 문제와 장애 대비 전략까지 다룬다.
-
DB 락으로 선착순 시스템 구현하기: FOR UPDATE부터 동시성 테스트까지
SELECT FOR UPDATE를 사용한 선착순 재고 차감 구현을 다룬다. Spring Boot + JPA 코드로 비관적 락을 구현하고, 100명 동시 요청 테스트로 정합성을 검증한 뒤, 한계를 직접 확인한다.
-
격리 수준별 데드락과 락 전략: 비관적 락부터 FOR UPDATE의 한계까지
Read Committed, Repeatable Read, Serializable 각 격리 수준에서 데드락이 발생하는 실제 케이스를 다룬다. 비관적 락과 낙관적 락의 차이, FOR UPDATE의 동작 원리와 한계까지 정리한다.
-
실무에서 자주 쓰는 HTTP 커스텀 헤더 정리
X-Request-ID, X-Forwarded-For 등 실무에서 흔히 사용하는 HTTP 커스텀 헤더의 용도와 사용법을 정리한다. X- 접두사 관례의 역사, CORS와의 관계, Spring Boot에서의 활용까지 다룬다.
-
CORS를 이해하기: 브라우저 보안 정책부터 Spring Boot 설정까지
CORS(Cross-Origin Resource Sharing)의 동작 원리를 이해하고, 실무에서 자주 만나는 CORS 에러를 해결하는 방법을 다룬다
-
SAML 2.0 인증 완벽 가이드: 개념부터 Microsoft Entra ID 연동까지
SAML 2.0 프로토콜의 핵심 개념과 Spring Boot에서 Microsoft Entra ID(Azure AD) SAML 연동을 구현하는 실무 가이드
-
kind로 로컬 K8s 클러스터 구축하기
kind를 사용해 로컬에서 멀티 노드 Kubernetes 클러스터를 구축하고 Spring Boot 앱을 배포하는 실습 가이드
-
Spring Boot SSO 연동 가이드: OAuth2/OIDC와 SAML 실무 구현
Spring Security로 Keycloak, Okta, Azure AD 등 IdP와 SSO 연동하는 실무 가이드
-
스프링부트 실무 가이드 7편: 로깅 전략과 실무
SLF4J, Logback, Log4j2 비교부터 구조화된 로그, MDC, 중앙 집중식 로그 관리까지
-
스프링부트 실무 가이드 6편: 모니터링과 옵저버빌리티
Prometheus, Grafana, 커스텀 메트릭으로 시스템 상태를 실시간 파악하기
-
스프링부트 실무 가이드 5편: 데이터베이스 최적화
인덱스 설계, 커서 기반 페이지네이션, Read Replica로 대용량 데이터 처리하기
-
스프링부트 실무 가이드 4편: Resilience 패턴
Circuit Breaker, Rate Limiter, Bulkhead로 장애에 강한 시스템 구축하기
-
스프링부트 실무 가이드 3편: 이벤트 드리븐 아키텍처
Kafka와 Outbox 패턴으로 신뢰성 있는 이벤트 시스템 구축하기
-
스프링부트 실무 가이드 2편: 캐싱 전략과 Redis 활용
Cache-Aside 패턴부터 캐시 문제 해결까지, 실무에서 바로 적용 가능한 캐싱 완벽 가이드
-
스프링부트 실무 가이드 1편: 동시성 제어와 재고 관리
원자적 UPDATE와 멱등성 키로 동시성 문제를 해결하는 실무 가이드
-
스프링 사전과제 가이드: 종합 과제
Spring Boot 기반 온라인 마켓플레이스 REST API 종합 과제 — 상품·주문·회원 도메인 설계부터 테스트·배포까지 실무형 구현 가이드
-
스프링 사전과제 가이드 7편: Advanced Patterns
고급 패턴과 아키텍처 - 이벤트, 비동기, 파일 처리, 멀티 모듈
-
스프링 사전과제 가이드 6편: DevOps & Deployment
배포 환경 구성과 CI/CD - Docker, GitHub Actions, Actuator
-
스프링 사전과제 가이드 5편: Security & Authentication
인증/인가와 보안 설정 - Spring Security, JWT, 권한 관리
-
스프링 사전과제 가이드 4편: Performance & Optimization
성능 최적화와 쿼리 튜닝 - N+1 문제, 페이지네이션, 캐싱 전략
-
스프링 사전과제 가이드 3편: Documentation & AOP — Swagger·MDC·Aspect 운용 기준
Swagger/SpringDoc 운용 기준, MDC 기반 요청 추적과 민감 정보 마스킹, AOP로 횡단 관심사를 분리하는 방법까지 — 사전과제에서 가점과 감점이 갈리는 문서화·로깅·AOP 영역을 평가자 시점으로 한 편에 정리했다.
-
스프링 사전과제 가이드 2편: Database & Testing — 환경 분리·테스트 피라미드·Testcontainers
환경별 DB 선택과 ddl-auto 정책, Memory Repository 구현 시 주의사항, Test Pyramid에 따른 어노테이션 선택 기준, 테스트 대역(Dummy·Stub·Spy·Mock·Fake) 선택 기준, Testcontainers로 H2 방언 차이가 가리는 버그를 잡는 법까지 — 사전과제 평가자가 두 번째로 자주 지적하는 Database & Testing 영역을 한 편으로 정리했다.
-
스프링 사전과제 가이드 1편: Core Application Layer — Controller·Service·Repository·Domain 4계층
Spring Boot 사전과제에서 평가자가 반복적으로 지적하는 4계층 설계 포인트만 추렸다. Controller·Service·Repository·Domain 책임 분리, Request → Command 변환, @Transactional(readOnly=true)의 실제 효과, GlobalExceptionHandler 3단 우선순위까지 — 시리즈 1편.