DDD를 도입하기로 했다 — Repository/Domain/Application 3계층
교육용 SaaS 백엔드에 DDD 3계층 구조를 도입한 과정. PrismaService 직접 호출에서 Repository 패턴, Domain Service, Application Service로 분리하기까지 4개 커밋에 걸친 아키텍처 전환 실전기.
📚 Series
🏷️ Tags
교육용 SaaS 백엔드에 DDD 3계층 구조를 도입한 과정. PrismaService 직접 호출에서 Repository 패턴, Domain Service, Application Service로 분리하기까지 4개 커밋에 걸친 아키텍처 전환 실전기.
Prisma seed 스크립트에서 deleteMany 순서를 잘못 잡으면 FK 제약 조건 위반으로 터진다. 30개 테이블의 의존 그래프를 분석하고 자식→부모 역순 삭제 패턴을 정립한 실전 삽질기.
B2B SaaS 플랫폼의 RBAC 인가 체계를 설계한 과정. 4역할 계층 구조, 리소스별 권한 매트릭스, Multi-tenancy 격리 전략, NestJS Guard/Decorator 구현까지 — 권한 설계 문서 1,292줄이 코드가 되기까지의 기록.
전체 테이블 CUID String PK에서 Mixed ID Strategy(User=CUID, Master=Int, Transaction=BigInt)로 전환한 과정. BigInt JSON 직렬화 버그를 만나고, Junction Table을 다시 Int로 다운그레이드한 첫 번째 스키마 리팩토링 기록.
Claude Code Agent Teams의 아키텍처를 이해하고, team-setup 스킬로 tmux 멀티 에이전트 환경을 자동 구성하는 방법. 실제 캡처와 함께 단계별로 안내합니다.
B2B SaaS 백엔드의 Prisma 스키마를 설계한 과정. 인증 → 조직 → 러닝 코어 → 트래킹 순서로 27개 테이블과 15개 enum을 만들면서 겪은 설계 결정과 실수들을 기록합니다.
Google E-E-A-T(경험, 전문성, 권위, 신뢰)를 개인 기술 블로그에 실제로 적용한 과정을 정리합니다. 품질 평가 가이드라인을 읽고, 환경 명시 박스·레퍼런스 박스·구조화 데이터·시리즈 구조를 도입하기까지 — 공식 문서에서 근거를 찾고 하나씩 적용한 기록입니다.
Anthropic이 서드파티 하네스를 구독에서 분리했다. 에러 원인, $200 크레딧 수령, CLI 브릿지 대응까지 정리.
Claude Max 플랜의 OAuth 토큰(sk-ant-oat)으로 Messages API를 직접 호출하면 429 Rate Limit이 뜹니다. Claude Code의 인증 우선순위 5단계, sk-ant-oat vs sk-ant-api 차이, 그리고 스크립트에서 Max 플랜을 활용하는 우회법을 실제 트러블슈팅 사례와 함께 정리합니다.
Vite 프로젝트에서 새 패키지를 설치한 뒤 Invalid hook call 에러가 발생하는 원인은 의존성 사전 번들링 캐시(.vite/deps)다. React 중복 인스턴스 문제의 근본 원인부터 node_modules/.vite 삭제, vite --force, optimizeDeps 설정까지 실전 해결법과 예방 전략을 정리한다.
NestJS + Prisma 프로젝트에서 schema.prisma에 새 필드를 추가한 뒤 prisma generate를 빠뜨리면, TypeScript 빌드는 as any 캐스팅 덕에 통과하지만 런타임에서 Prisma Client가 새 필드를 모른다. pnpm build와 prisma generate가 별개 명령인 구조적 함정, prebuild 훅으로 자동화하는 해결법, Docker와 CI에서 놓치지 않는 예방 전략을 실전 코드와 함께 정리한다.
1인 개발 모노레포에서 CI/CD 파이프라인을 구축하며 겪은 실전 트러블슈팅. Docker 빌드 경로 오류, 배포 자동화 실패, Cloud Scheduler 설정 함정까지 — 수동 배포의 고통에서 벗어나는 과정을 정리했다.
홈브루 명령어 한 줄로 맥북을 꾸미는 드레스업 패키지 총정리. 메뉴 바 정리, 폰트 설치, UI 유틸리티, 배터리 모니터링까지 다뤄요.