오소리-개발일지#1

장은봉·2022년 2월 20일
0

오소리 개발일지

목록 보기
1/3

들어가며

현재 팀이 2명인 작은 프로젝트의 백엔드 구축을 하고있습니다.
JS를 기반으로 둔 프론트 업무를 많이 보다보니
교육 때 배웠던 Spring으로 구축하는게 부담이 되더군요.
백엔드도 탄탄하게 구축을 해야하겠지만
같이 프로젝트를 하는 동료 (프론트)를 위해 한 시 바삐 구축을 해야하는 상황이어서
다음과 같은 조건을 달아놓고 스택을 탐색했습니다.

  • JS를 사용한 라이브러리 / 프레임워크 일 것
  • Typescript 호환성이 좋을 것
  • 관리, 사용자 수가 많은 라이브러리를 사용할 것
  • 직접 코드를 작성하는 일을 최대한 줄일 것
  • 배포가 쉬울 것
  • 수정이 쉬울 것
  • RESTful API, RDBMS

과정

리서칭 도중 쏟아지는 라이브러리에 눈이 돌아갔지만
최대한 안정성과 러닝커브를 고려하고 나니 다음과 같은 스택이 결정되었습니다.

  • node.js
  • express
  • sequelize
  • sequelize-auto
  • swagger-ui-express
  • swagger-jsdoc

핵심은 RDBMS와 직접적인 연결을 도와주는 sequelize와
기존 DB에 정의 되어있는 테이블, 컬럼의 모델을 생성해주는 sequelize-auto였습니다.
옵션에 따라 Typescript 파일로도 생성할 수 있기때문에 아주 맘에들었습니다.
Spring에서 겪었던 모델정의의 압박을 생각하니 아주 효자같은 녀석이었습니다.
(거대한 프로젝트에서 사용할 경우 발생될 사이드이펙트 예상이 잘되지 않기 때문에
채택이 좀 꺼려질 것 같긴합니다)

실행된 작업 순서는 다음과 같습니다

  1. express 서버 구축
  2. sequelize 정의 및 구축
  3. DB 설계 및 반영
  4. sequelize-auto를 이용해 sequelize model 생성
  5. RESTful API router 정의
  6. Swagger middleware 구축 및 연결

모델도 두 개, 라우터도 CRUD를 포함한 라우터 두 개를 만들고 적용해본 결과
괜찮게 돌아가는 것 같습니다.
Swagger를 정의해본 적이 없어, Swagger 작성에 어려움을 겪고 있지만
현재 시점의 요는 API들이 훌륭하게 잘 작동하고 있다는 것이겠지요.

마치며

앞으로 예정된 작업으론 JWT 적용 등이 남았겠네요

0개의 댓글