본문 바로가기
SideProject

[store]1. 프로젝트 설계 & 생성

by 마운틴케이 2024. 8. 14.

취업 준비로 바빠 최근 코딩을 안한지 좀 되어서

새로운 마음으로 프로젝트를 시작했다.

그 과정을 연재하려 한다.


2024.08.14

개발 환경 & 버전

Language / Framework : Typescript, Nest.js(10.3.2)

Package Manager : npm (8.19.2)

Database : MySQL (5.7)

ORM : TypeORM

[우선 보류] Front-end : Javascript, Vue.js

 

OS: MacOS Sonoma 14.6.1

DevOps : Docker (20.10.17) , Docker-compose (2.6.1)

 

목표

1. 프로젝트 완성

  • Guard 적용해보기
  • 테스트코드 작성
  • DB 트랜잭션 적용

2. CI/CD 적용

3. 개발 환경 및 프로젝트 Docker 이미지로 한번에 배포할 수 있도록 셋팅

(+) JMeter + APM 을 통한 부하테스트

 

설계

주제 : 온라인 서점

 

요구사항 명세

도메인 별 요구사항을 도출하고 연관 관계를 파악할 수 있도록 하였다.

 

 

ER 다이어그램

요구사항에서 도출된 도메인에 따라 RDB 형식에 맞도록 테이블을 도출하였다.

연관성이 깊은 테이블 끼리 같은 색깔로 표시했다.

 

 

 

프로젝트 생성

Nest-cli 를 통해 프로젝트를 생성하였다.

Nest-cli 를 통해 프로젝트나 controller, service, module 등을 간단하게 생성할 수 있다.

nest new 프로젝트명

 

 

패키지 구조는 기본적으로 다음과 같이 진행한다.

이건 취향에 달린 영역이기도 하지만 최대한 구조를 간결하게 파악하기 좋도록 구성하고자 한다. 

 

api : 컨트롤러 위치

config : 각종 설정 관련 파일 위치

domain : 사실 이렇게 표현해도 될지 모르겠어서 추후 변경될 수 있다. 도메인을 애그리거트 별로 묶고 그 안에 관련 서비스나 인프라 스트럭쳐 등이 위치


댓글 피드백은 언제나 환영합니다!

'SideProject' 카테고리의 다른 글

[store]2. TypeORM, Datasource 설정  (0) 2024.08.26