3 Layer Architecture (Controller, Service, Repository)
(DI)
(IoC)
Third-party service, send message 등의 로직이 서비스 계층에 있을 경우 단일 책임을 위반
한다
적용된 Pub/Sub Pattern
이벤트를 발생
시켜 해당 로직들에 대한 책임을 서비스 레이어에 밖에서 관리
<aside>
💡 MySQL 8.0.20
Redis Cloud
</aside>
<aside> 💡 Redis Cloud를 사용하여 영구적인 저장이 필요없는 데이터를 관리
</aside>
<aside> 💡 File Structure ├── README.md ├── tsconfig.json ├── package.json └── src ├── index.ts ├── config : Secret 키 등의 중요 변수를 관리하는 폴더 ├── cron : 특정 시간마다 돌아가는 로직들을 관리하는 폴더 ├── interface : Type 및 Interface 정의 ├── json: json파일 관리 폴더 ├── loaders : express, db 등의 서버를 키기 위한 셋팅 및 로더 ├── middleware: Request 유효성 검증 등의 미들웨어 작업 ├── model : Sequelize를 사용한 DB 스키마 및 관계 정의 ├── repository : DB와 서비스 간의 로직 정의 ├── router : API 정의 및 각각의 API에 맞는 Request 검증과 서비스 로직 연결 ├── service : 비지니스 로직 정의 ├── socket: socket 이벤트 정의 ├── types : Library 관련된 커스텀 타입 정의 ├── test : 테스트 관련 코드 └── util: 유틸 정의
</aside>