NFT 런치패드 NestJS 백엔드 서비스
NestJS와 TypeORM으로 구성된 NFT 런치패드 백엔드로, Docker 다중 환경과 컨트랙트 연동 스크립트를 함께 관리한다
개요
NestJS와 TypeORM을 기반으로 한 NFT 런치패드 백엔드 서비스로, 런타임/e2e/e2e DB 용도로 Docker 컨테이너를 분리해 테스트 환경을 격리한다. docker-multiple-db.sh 스크립트로 다중 데이터베이스 컨테이너 구성을 자동화하고, datasource-for-migration.ts로 TypeORM 마이그레이션용 데이터소스를 별도 관리한다. hardhat.config.ts를 백엔드 코드베이스에 공존시켜 스마트 컨트랙트 인터랙션 스크립트를 실행할 수 있도록 구성했다. Jest 기반 테스트와 Jenkins CI, CODEOWNERS를 통해 지속적 통합과 코드 리뷰 프로세스를 갖췄다.
담당 역할
NestJS 기반 런치패드 백엔드의 아키텍처 설계, Docker 다중 환경 구성 및 Hardhat 컨트랙트 연동 스크립트 통합을 담당
아키텍처 다이어그램
레포지토리 분석 결과를 바탕으로 자동 생성된 구조도입니다.
런치패드 백엔드 전체 구조
NestJS 백엔드가 TypeORM으로 데이터베이스를 다루고, Hardhat 스크립트로 컨트랙트와 연동하며, Docker 다중 환경과 Jenkins CI로 관리되는 구조를 보여준다.
마이그레이션 및 테스트 흐름
TypeORM 마이그레이션 실행과 Jest 기반 테스트가 각각 별도 데이터소스/DB 컨테이너를 사용하는 흐름을 나타낸다.
기술스택
각 기술을 이 프로젝트에서 어떤 용도로 썼는지 정리했습니다.
핵심 포인트
- 런타임/e2e/e2e DB 용도로 Docker 컨테이너를 분리해 테스트 환경을 격리함
- docker-multiple-db.sh 스크립트로 다중 데이터베이스 컨테이너 구성을 자동화
- TypeORM 마이그레이션 전용 datasource-for-migration.ts를 별도로 관리
- hardhat.config.ts를 백엔드 코드베이스에 공존시켜 컨트랙트 인터랙션 스크립트 실행 지원
- Jenkins CI와 CODEOWNERS로 지속적 통합 및 코드 리뷰 체계를 구축
문제와 해결
문제e2e 테스트가 운영 DB나 런타임 환경과 충돌하지 않도록 격리할 필요가 있었음
해결런타임/e2e/e2e DB 용도로 Docker 컨테이너를 각각 분리하고 docker-multiple-db.sh로 구성을 자동화
문제일반 애플리케이션 데이터소스와 마이그레이션용 데이터소스를 함께 다뤄야 했음
해결datasource-for-migration.ts를 별도로 두어 마이그레이션 전용 TypeORM 설정을 분리
레포지토리 정보
- 생성
- 2026년 7월 26일
- 최근 커밋
- 2026년 7월 26일
- 크기
- 0 KB
- 라이선스
- 없음
이 문서는 2026년 7월 26일 에 자동 분석으로 생성되었습니다.