TDD기반 서버 구축, CI+CD / AutoScaling, 통합 모니터링, 장애대응
반려동물 소유자들이 편리하게 병원 예약을 할 수 있는 웹 애플리케이션입니다.
이 시스템을 통해 사용자들은 온라인으로 병원 예약을 신속하게 처리할 수 있고, 예약 확인, 변경 및 취소 등의 기능을 손쉽게 이용할 수 있습니다.
🧑🤝🧑 팀원 및 제공 기능 (팀 노션)
- TypeScript
- Nest.js
- MySQL
- TypeORM
- Jest
- Seeder
- Winston
- JWT
- GitHub Action
- Docker
- AWS ECR (Elastic Container Registry)
- AWS ECS (Elastic Container Service)
- AWS Fargate
- RDS MySQL (Relational Database Service)
- Load Balancer
- CloudWatch (Logs, Alarm)
- SNS (Simple Notification Service)
- Lambda
- Slack
- JMeter
npm run start:local
npm run start:dev
-
main: 배포용 서비스 코드가 있는 메인 브랜치로, 항상 현재 서비스 상태를 반영해야 합니다.
-
develop: 다음 릴리스를 위해 최신 개발이 진행되는 개발 브랜치입니다.
-
feature 브랜치: 새로운 기능 개발에 사용되는 브랜치입니다. develop 브랜치에서 생성되며, 기능 개발이 완료되면 develop 브랜치에 병합됩니다.
-
hotfix 브랜치: 빠르게 코드를 수정하는 데 사용되는 브랜치입니다. develop 브랜치에서 생성되며, 수정이 완료되면 main develop 브랜치에 병합됩니다.
이러한 브랜치 전략을 통해 저희는 개발 과정을 체계적으로 관리하고, 기능별로 병렬적인 작업을 진행할 수 있습니다. 코드 변경은 각자의 기능 브랜치에서 이루어지며, 최종적인 안정 버전은 main 브랜치에 반영됩니다.
src
├─ __tests__ //유닛테스트 디렉토리
│ └─ moduleA
│ ├─ service.test.ts //모듈A의 서비스 테스트코드
│ └─ repository.test.ts //모듈A의 레포지토리 테스트코드
├─ module
│ ├─ moduleA
│ │ ├─ api
│ │ │ ├─ controller.ts
│ │ │ └─ dto.ts
│ │ ├─ data
│ │ │ ├─ db.ts //실제 레포지토리
│ │ │ └─ entity.ts
│ │ ├─ domain
│ │ │ ├─ model.ts
│ │ │ ├─ repository.ts //인터페이스로 구현된 레포지토리
│ │ │ └─ service.ts
│ │ ├─ error.ts
│ │ ├─ mapper.ts
│ │ └─ module.ts
│ ├─ http-exception.filter.ts
│ ├─ logger.ts
│ ├─ response.ts
│ ├─ seeder.ts
│ ├─ app.module.ts
│ ├─ app.controller.ts
│ ├─ app.service.ts
│ └─ main.ts
├─ package.json
├─ tsconfig.json
├─ .gitignore
└─ .env