트랜잭셔널 아웃박스로 이벤트 유실 막기: dual-write 문제와 데드레터 격리
DB 커밋과 이벤트 발행이 따로 노는 dual-write 문제를 아웃박스 테이블과 지수 백오프 재시도, 데드레터 격리로 막은 실제 NestJS 구현 회고.

DB 커밋과 이벤트 발행이 따로 노는 dual-write 문제를 아웃박스 테이블과 지수 백오프 재시도, 데드레터 격리로 막은 실제 NestJS 구현 회고.

입찰 마감 탭 목록이 9초 걸리던 원인을 EXPLAIN으로 두 곳으로 좁히고, covering 인덱스로 Index Only Scan(9,367ms→15.95ms)과 bucket pagination lazy count로 count 3발을 1발로 줄인 회고입니다.

NestJS의 OpenAPI JSON 하나로 TypeScript·Java SDK를 자동 생성하고 npm·Maven Central에 자동 게시하는 파이프라인 구축기

외부 ERP 시스템이 우리 API를 호출하는 서버 간(M2M) 인증을 OAuth2 Client Credentials로 설계하며 배운 것 — 토큰 만료 전략, bcrypt 시크릿 해싱, scope, 그리고 DPoP로 Bearer 토큰 탈취까지 막은 과정.
비싸고 느린 GitHub Actions를 개선하려 GCP self-hosted runner를 거쳐 Blacksmith로 CI 러너를 두 번 이관한 회고입니다.
배포가 느리고 브랜치 전략이 과해 Git flow를 trunk 기반 개발로 바꾸며 짧은 브랜치와 직접 만든 피처 플래그로 해결한 회고입니다.
NestJS와 Spring Boot의 차이를 스레드 모델과 블로킹/논블로킹 I/O 관점에서 비교하고 프레임워크 선택 기준을 정리합니다.

NestJS 요청 라이프사이클을 미들웨어, 가드, 인터셉터, 파이프, 예외 필터 단계로 나누어 각 계층의 역할과 차이를 정리합니다.
![[NestJS] 미들웨어부터 예외 필터까지: 요청 라이프사이클 심층 분석](/_next/image?url=%2Fimages%2Fnestjs.png&w=3840&q=75)
NestJS 요청 라이프사이클을 오피스 빌딩 비유로 풀어 미들웨어, 가드, 인터셉터, 파이프의 역할과 실행 순서를 정리합니다.
![[NestJS] 요청 라이프사이클 완전 정리: 미들웨어부터 인터셉터까지](/_next/image?url=%2Fimages%2Fnestjs.png&w=3840&q=75)
메모리 객체가 네트워크나 디스크를 넘나들 때 일어나는 직렬화와 역직렬화 과정을 NestJS와 Next.js 예시로 정리합니다.
![[TS/JS] 직렬화와 역직렬화 깊게 파보기: NestJS와 Next.js 예시로 이해하기](/_next/image?url=%2Fimages%2Ftypescript.png&w=3840&q=75)
NestJS Pipe로 입력 데이터를 변환하고 검증하는 방법을 내장 파이프, DTO 기반 ValidationPipe, 커스텀 파이프로 정리합니다.
![[NestJS] Pipe 완벽 가이드: 데이터 검증과 변환](/_next/image?url=%2Fimages%2Fnestjs.png&w=3840&q=75)
Supabase Client와 전통적 쿼리 빌더가 통신 프로토콜부터 보안 모델까지 어떻게 다른지 비교합니다.