- 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 생성
DB를 생성한다. MongoDB serverless는 사용한만큼만 과금하기 때문에 개인 프로젝트를 진행하는 나로서는 참 편하고 좋다.
MongoDB Compass를 통해 정상적으로 접속되는지 확인했다.
Serverless framework 설정
Serverless framework github에서 가이드하는 설치 방법대로 진행한다.
serverless 프로젝트를 생성한다.
로컬에서 서버리스를 실행할 수 있도록 서버리스 오프라인 플러그인을 설치한다.
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 |
만들고 오겠다.