Skip to content

0012.3 Portfolio . Giftogether

Giftogether (In Progress)#

생일/기념일마다 커피 기프티콘이 쌓이는 것이 불만인가요? 선물펀딩을 시작해 보세요!

Github Repository URL: Giftogether_backend , Giftogether_frontend

Tech Stack: Typescript, NestJS, TypeORM, PostgreSQL, EventEmitter2, Jest, docker-compose, Faker.JS

  • Finite State Machine: 엔티티의 상태변화를 모델링하는 FsmService를 도메인 서비스로 도입, 엔티티의 상태전이를 한곳에서 관리 1

  • Jest for Automating Tests: 기존 테스트 환경의 부족한 커버리지(0.56%)를 개선하기 위해 Jest를 기반으로 테스팅 프레임워크 도입, 결과적으로 전체 테스트 커버리지 58.87% 달성.

  • Event Storming: 이벤트 스토밍세션을 통해 애그리게이트 간의 명확한 경계를 설계, 궁극적 일관성(Eventual Consistency)을 통해 객체의 의존성 감소 및 책임 분리 3

  • Continuous Integration & Delivery: Github Action 스크립트와 셸 스크립트를 작성하여 자동으로 도커 이미지를 빌드, Amazon ECR에 업로드, EC2 서버에서 이를 pull하여 서버 최신화

  • Boost Query Performance: TypeORM을 사용하면서 만난 N+1 쿼리 문제를 해결하여 특정 API에 대한 쿼리속도 향상. 4