E2E 테스트와 Cloud SQL의 고난 — 4/8 passing에서 8/8까지
로컬 PostgreSQL에서 잘 되던 E2E 테스트가 Cloud SQL에서 전멸한 이야기. session_replication_role 미지원, 테이블 이름 케이스 불일치, 스키마 필드 누락까지 — 4/8에서 8/8 passing으로 가는 과정을 기록한다.
로컬 PostgreSQL에서 잘 되던 E2E 테스트가 Cloud SQL에서 전멸한 이야기. session_replication_role 미지원, 테이블 이름 케이스 불일치, 스키마 필드 누락까지 — 4/8에서 8/8 passing으로 가는 과정을 기록한다.
Prisma seed 스크립트에서 deleteMany 순서를 잘못 잡으면 FK 제약 조건 위반으로 터진다. 30개 테이블의 의존 그래프를 분석하고 자식→부모 역순 삭제 패턴을 정립한 실전 삽질기.
전체 테이블 CUID String PK에서 Mixed ID Strategy(User=CUID, Master=Int, Transaction=BigInt)로 전환한 과정. BigInt JSON 직렬화 버그를 만나고, Junction Table을 다시 Int로 다운그레이드한 첫 번째 스키마 리팩토링 기록.
B2B SaaS 백엔드의 Prisma 스키마를 설계한 과정. 인증 → 조직 → 러닝 코어 → 트래킹 순서로 27개 테이블과 15개 enum을 만들면서 겪은 설계 결정과 실수들을 기록합니다.
B2B SaaS 백엔드를 만들면서 도메인 모델링을 시작한 이야기. 마스터 문서 2,486줄을 쓰고, 유즈케이스를 정의하고, 핵심 엔티티 관계를 잡아가는 과정을 기록합니다.
NestJS + Prisma 프로젝트에서 schema.prisma에 새 필드를 추가한 뒤 prisma generate를 빠뜨리면, TypeScript 빌드는 as any 캐스팅 덕에 통과하지만 런타임에서 Prisma Client가 새 필드를 모른다. pnpm build와 prisma generate가 별개 명령인 구조적 함정, prebuild 훅으로 자동화하는 해결법, Docker와 CI에서 놓치지 않는 예방 전략을 실전 코드와 함께 정리한다.
NestJS + Prisma 프로젝트에서 Soft Delete 필터를 Application Service에만 적용하고 Domain Repository를 누락하면, 삭제된 데이터가 배치 프로세스와 조회 API에서 좀비처럼 되살아난다. PM 코드 리뷰에서 11곳 추가 발견된 실전 사례를 통해, 레이어별 필터 점검 체크리스트와 grep 기반 검증법을 정리한다.
Prisma seed 스크립트에서 deleteMany 순서를 잘못 잡으면 FK 제약 조건 위반 에러가 발생합니다. 테이블 의존 관계를 분석하고 자식→부모 순으로 삭제하는 실전 패턴을 정리합니다. 바로 적용할 수 있는 방법을 알려드릴게요.
Prisma가 생성한 enum과 도메인 타입이 TypeScript에서 호환되지 않아 빌드 에러가 발생합니다. 명시적 캐스팅 패턴과 아키텍처별 예방 전략을 정리합니다.
NestJS + Prisma에서 콘텐츠 등록 시 Foreign key constraint violated 500 에러가 터졌습니다. 존재하지 않는 Level ID가 원인이었고, 저장 전 검증 패턴으로 해결한 과정을 정리합니다.
Express vs NestJS, TypeORM vs Prisma. B2B SaaS 백엔드를 만들면서 기술 스택을 고르기까지의 과정과 첫 커밋 이야기.
NestJS + Prisma 마이그레이션에서 테이블 하나를 빠뜨려 운영 DB에 컬럼 없음 에러가 터졌습니다. schema.prisma 변경 시 모든 모델을 확인하는 체크리스트와 migrate diff 예방법을 정리했어요.
NestJS + Prisma에서 API가 갑자기 느려졌다면 N+1 쿼리를 의심하세요. 650개 쿼리를 2개로 줄인 실전 해결기와 예방법을 정리했어요.