Backend 40
- MVP는 기능을 줄이는 것이 아니라 가설을 줄이는 과정이다
- 클린 코드를 읽고, 읽기 쉬운 코드의 기준이 달라졌다
- 실무에서 PostgreSQL을 선택하는 이유: 데이터 정합성과 JSONB를 중심으로
- 포인트 결제 동시성은 어디서 막아야 할까: 조건부 UPDATE부터 Redis 분산 락까지
- 단일 Redis 장애에서 Sentinel까지: Primary-Replica와 자동 Failover 이해하기
- 대용량 트래픽 처리는 서버를 늘리는 것부터 시작하지 않는다
- Kafka 재처리와 DLT는 예외 처리가 아니라 운영 설계다
- RAG의 핵심은 생성이 아니라 검색이다
- JWT 인증 필터에서 검증 책임을 분리한 이유
- k6로 성능 테스트를 코드로 관리하기
- AI가 코드를 만드는 시대, 개발자는 무엇을 검증해야 할까
- 협업 속도를 높이는 의존성 분리와 안정적인 API 버저닝, 그리고 경계 세우기
- Spring Boot 도전 기능 구현 과정에서 고민한 설계 포인트
- Spring Boot Todo 과제 필수 기능 구현 중 고민한 부분
- WebSocket, STOMP, 그리고 인증: 실시간 서비스의 복잡성을 해결하는 여정
- Spring Cache: 캐시 Key 설계부터 동기화, RedisTemplate 동작 원리까지
- PG는 최종 진실: 결제 상태 동기화, 왜 웹훅만으로는 부족할까?
- 실전 클라우드 배포와 운영: 내가 마주한 기술적 고민과 해결책
- AOP 기반 로깅 전략 — 이력 파이프라인으로 확장 가능한 시스템 설계
- EntityGraph와 페이징을 같이 사용할 때 주의할 점
- AOP를 이해하면서 정리한 생각 — 공통 로직은 어디에 있어야 할까
- Interceptor를 이해하면서 정리한 생각 — 요청 흐름은 어디서 제어되는가
- Filter를 이해하면서 정리한 생각 — 인증은 어디서 시작되는가
- Filter vs Interceptor vs AOP — 어디서 무엇을 처리해야 할까
- 코드 컨벤션과 GitHub 규칙을 정리하면서 느낀 것
- 세션 기반 인증에서 JWT 기반 인증으로 전환하면서 정리한 것들
- 데이터의 안전한 작별: Soft Delete와 유예 기간(Grace Period) 전략
- PUT vs PATCH — 단순한 수정 범위를 넘어 멱등성으로 이해하기
- Facade vs Application Service
- JPA 심화 학습: 영속성 컨텍스트의 비밀과 조회 최적화 전략
- 퍼사드(Facade) 패턴: 서비스 순환 참조와 JPA 데이터 정합성 해결
- 인증 방식의 이해: Session vs JWT와 Spring ArgumentResolver 활용
- Spring Boot: 빈 관리부터 전역 예외 처리까지의 핵심 정리
- Spring: 개발자의 자신감, 테스트
- Spring: 오브젝트와 의존관계
- Spring Proxy: 핵심 로직을 투명하게 감싸는 '기술적 안경'
- 실무적 선택의 기로: ID 전략부터 서비스 레이어 설계까지
- API 문서 자동화: Javadoc과 Swagger로 구축하는 소통의 '캐시(Cache)'
- 락과 트랜잭션 경계 분리: 좌석 예약을 구현하며 배운 실무 패턴
- Redis 캐시에 객체를 저장할 때 직렬화가 필요한 이유