응집도 높은 모듈 설계
프로덕트 레벨의 서버 사이드 기능 구현
Github Actions를 활용한 운영 환경 배포
회원가입 및 로그인
슬라이딩 세션과 리프레쉬 토큰을 활용하여 인증 과정 디벨롭
Authorizaion(인가) 구현을 통해 유저의 롤에 따른 API 접근
비디오 업로드 및 재생, 데이터 확인 API, 비즈니스 로직 작성
Decorator 활용
Provider 활용
Module 활용
Interceptor를 활용한 요청, 응답 매핑
TypeORM을 활용하여 Transaction, Index 구현
쿼리 분석 및 개선
Task 스케쥴링을 활용한 메일 전송
에러 발생시 슬랙 알람 전송
테스트 케이스 작성
Github Actions를 활용한 CD
# 컨테이너 올리기
$ docker-compose up
# 컨테이너 확인
$ docker ps --all
# 로컬호스트에서 DB에 psql로 바로 접속. 다를 클라이언트 툴을 이용해 접속하는 것도 가능
$ psql -U postgres -h localhost -p 5434
# 실행중인 도커 컨테이너에서 프로세스 실행. 셸을 실행해서 인터렉티브한 환경에서 컨테이너 환경을 탐색하는 것도 가능
# docker exec -it <CONTAINER_ID> <COMMAND>
$ docker exec -it <CONTAINER_ID> psql -U postgres
# 컨테이너 내리기
$ docker-compose down
어플리케이션의 코드 변경 사항이 지속적으로 빌드 및 테스트 되어 공유 레포지토리에 통합되는 것
형상 관리 툴(GIT) 사용
CI가 새로운 소스 코드의 빌드, 테스트, 병합까지라고 한다면 CD는 이러한 변경 사항이 레포지토리를 넘어 고객이 사용할 수 있도록 프로덕션 환경까지 릴리즈 되는 것 Github Actions를 활용
ssh -i ${*.pem} ${user}@${ip}
chmod 666 /var/run/docker.sock
sudo apt install docker-compose
ssh -i ${*.pem} docker-compose.yml ${user}@${ip}:/home/${user}
docker compose-up -d
docker run -e STAGE=DEV -e POSTGRES_HOST=host.docker.internal --name nestjs -d p 3000:3000 nestjs
### Github Actions 설정
- Personal access token(classic) 발급 및 등록
- <https://github.com/settings/tokens> 에서 Personal access token(classic) 발급
- <https://github.com/><repository이름>/settings/secrets/actions 에서 GHCR_TOKEN 로 등록
- 다른 환경변수도 등록
- dockerfile에서 참고하는 모든 환경변수 등록
- Github Action Runner 설치
- 마지막 ./run.sh 실행은 nohup과 &(백그라운드) 를 활용해 세션이 끊어져도 종료없이 백그라운드에서 실행하도록 함
```bash
$ nohup ./run.sh &
```
- .github/workflows/main.yml 작성
https://github.com/settings/tokens 에서 Personal access token(classic) 발급 https://github.com/<repository이름>/settings/secrets/actions 에서 GHCR_TOKEN 로 등록
dockerfile에서 참고하는 모든 환경변수 등록
마지막 ./run.sh
실행은 nohup과 &(백그라운드) 를 활용해 세션이 끊어져도
종료없이 백그라운드에서 실행하도록 함