정지용
프로젝트 목록
Web3

NFT 런치패드 NestJS 백엔드 서비스

NestJS와 TypeORM으로 구성된 NFT 런치패드 백엔드로, Docker 다중 환경과 컨트랙트 연동 스크립트를 함께 관리한다

nft-launchpad-backend-service-docs최근 업데이트 2026년 7월 26일

개요

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 컨테이너를 사용하는 흐름을 나타낸다.

다이어그램을 그리는 중…

기술스택

각 기술을 이 프로젝트에서 어떤 용도로 썼는지 정리했습니다.

언어

  • TypeScript백엔드 서비스 및 마이그레이션/Hardhat 설정 코드 작성에 사용

프레임워크

  • NestJS런치패드 백엔드 API 서버의 기본 프레임워크

데이터베이스

  • TypeORM데이터베이스 ORM 및 마이그레이션 관리에 사용

DevOps

  • Docker런타임/e2e/e2e DB 용도로 컨테이너를 분리해 환경을 격리
  • Jenkins지속적 통합(CI) 파이프라인 구성

블록체인

  • Hardhat스마트 컨트랙트 인터랙션 스크립트 실행을 위한 설정

테스트

  • Jest백엔드 서비스의 단위/e2e 테스트 작성 및 실행

핵심 포인트

  • 런타임/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일 에 자동 분석으로 생성되었습니다.