NestJS + MySQL + CloudType으로 배포하기

Eeeasy-code·2023년 12월 14일
0

[개발]

목록 보기
3/6
post-thumbnail

개요

학교에서 진행하고 있는 창업 프로젝트에서 서버 개발자로 프로젝트를 진행한지 일주일 정도된 것 같다. 1차 서비스 배포가 얼마 남지 않은 시점에 참여하게 되어 빠른 시간 내에 개발을 진행해야 했다.

Tech Spec.

사용된 개발 환경은 다음과 같다.

Node - v20.10.0
Flamework - NestJS
DB - MySQL
Cloud - CloudType

빠른 생산성을 위해 프레임워크 선정에 express도 고려해봤지만 실제 서비스 배포 이후, 지속적으로 유지보수나 확장이 필요했고 개발자가 추가 투입되었을 경우, 어느정도 일관된 구조가 필요할 것이라 판단했기에 NestJS를 선정했다.

CloudType으로 배포

CloudType은 학교에서 팀프로젝트를 진행했을 때, 우연히 알게된 플랫폼이다. 무료이면서 빠르게 배포를 진행하고 싶어 찾게 되었는데 UI든 환경설정이든 내가 사용해본 플랫폼 중 가장 편하고 좋은 것 같아 채택하게 되었다.

NestJS 배포

CloudType에서 제공하는 공식 문서를 보고 배포를 진행하니 수월하게 배포할 수 있었다. 다만 배포 환경에서의 package.json의 Script를 잘못 설정했더니 runtime error가 엄청나게 쏟아져 나왔다.

  1. DB 접속 오류
    DB를 기존에 local 환경에서 사용했기 때문에 당연히 오류가 발생할 수 밖에 없었다. 그래서 NestJS를 배포하기 전, CloudType에서 같은 프로젝트 내에 MariaDB를 배포한 뒤 연동하였다.

  2. Script 설정
    prod 환경의 script에서 build path를 잘못입력해 발생한 오류가 존재했다. dist/main -> build/main으로 변경해주니 문제없이 실행되었다.

  3. npm run 설정
    npm run 설정을 prod 환경으로 지정하지 않아 오류가 발생했다. cloudType Script 설정에서 num run 관련된 내용을 변경해주었다.

MariaDB 배포

CloudType에 존재하는 템플릿으로 클릭 몇 번만 하면 손쉽게 배포할 수 있었다. 배포 이후, 생성된 도메인을 통해 MySQL Workbench로 접속하여 DB, Table을 생성한 뒤 서버에 Post 요청을 하니 데이터가 잘 저장되는 것을 확인할 수 있었다.

추후 작업내용

일단 기본적으로 추가되는 기능에 대한 것들을 개발할 예정이고, 사실 서버를 빠르게 배포한다는 핑계로 구조 설계나 기본 로깅 설정 등을 많이 스킵하거나 대충 개발을 하였다. 이 부분들을 개선하기 위해 리팩토링을 진행할 예정이다.

profile
쉽고 즐겁게 개발합시다.

0개의 댓글