logo
Published on

댓글 플랫폼 도전 (2)

개발 시작

가격 경쟁력이 있다고 생각했으니 이제 개발을 시작해본다. 먼저 사용할 기술을 정리해봤다.

  • 웹 : Next.js, TailwindCSS, TypeScript, Vercel 배포
  • DB : MongoDB Serverless (AWS us-west-2)
  • 백엔드 서버 : Serverless framework node.js (API Gateway, Lambda) (AWS us-west-2)

개발 순서는 백엔드 서버를 먼저 만들고, 웹을 진행할 것 같다. 잘 작동하는지, 원가는 예상과 일치하는지 검증을 해야하는데 이 때 웹은 관계 없기 때문이다.

개발 과정 (초기 설정)

DB 생성

  1. DB를 생성한다. MongoDB serverless는 사용한만큼만 과금하기 때문에 개인 프로젝트를 진행하는 나로서는 참 편하고 좋다.

    240228-195516
  2. MongoDB Compass를 통해 정상적으로 접속되는지 확인했다.

    231123-072935

Serverless framework 설정

  1. Serverless framework github에서 가이드하는 설치 방법대로 진행한다.

    231123-073810
  2. serverless 프로젝트를 생성한다.

    231123-075116
  3. 로컬에서 서버리스를 실행할 수 있도록 서버리스 오프라인 플러그인을 설치한다.

  4. API Gateway에서 커스텀 도메인을 연결한다. API Gateway 에서 기본적으로 할당되는 API 주소는 지저분하기 때문에 깔끔한 커스텀 주소로 변경한다. (삽질 좀 했다.)

이렇게 기본적인 초기 설정은 끝났다.

만들어야 하는 API 목록 나열하기

API를 제작하기 전에, API 목록을 미리 나열하면 진행상황을 미리 파악할 수 있어서 좋다. 하지만 아직 기획도 제대로 없어서 당장 필요한 API들만 작성했다. GET, POST, PATCH, DELETE 를 활용해서 url을 좀 더 깔끔하게 하고 싶었는데 돈을 아끼려고 API Gateway에서 REST API를 사용하지 않고 일반 HTTP 를 사용해서 어쩔 수 없이 아래처럼 구성했다. 일반 HTTP 요청은 백만요청당 요금이 1 USD 였는데, REST API는 3.5 USD 였었다. 무려 3.5배 차이라서 어쩔 수가 없었다.

Auth

이름URL
회원가입/auth/register
로그인/auth/login
회원탈퇴/auth/delete_account

프로젝트

이름URL
프로젝트 생성/project/create
프로젝트 조회/project/:id
프로젝트 수정/project/:id/edit
프로젝트 삭제/project/:id/delete

댓글

이름URL
댓글 생성/comment/create
댓글 목록 조회/comment/
댓글 수정/comment/:id/edit
댓글 삭제/comment/:id/delete

만들고 오겠다.

참고자료