💻/프로젝트

[Node.js] 개인 프로젝트: 장터 백엔드 서버 만들기

S0 2024. 1. 24. 13:42

 

이번 프로젝트는 api 구현과 aws 배포가 주된 과제였다.

 

 

https://github.com/julie-kim-dev/nodejs-market-project

 

GitHub - julie-kim-dev/nodejs-market-project

Contribute to julie-kim-dev/nodejs-market-project development by creating an account on GitHub.

github.com

 


 

필수요구사항: 프로젝트 관리

 

대여한 MongoDB의 정보를 .env 파일에 변수로 저장하여 사용

 

.gitignore 파일을 사용하여 .env 파일, node_modules 폴더가 깃허브에 올라가지 않게 숨김

 

.prettierrc 파일로 코드 포맷팅 유지

 


필수요구사항: API 구현

 

제시된 API 명세서를 바탕으로 설계한 schema

password 항목은 처음에 Number로 작성했는데 0123을 입력했을 때 123으로 인식이 되기 때문에 string을 쓰는게 나을 수 있다는 피드백을 봤다!

(나는 이렇게 유저와 프로그래밍의 사이에서 서로 합의되지 않은 부분을 보게 될 때 개발이 재미있다고 느껴진다)

다른 예시지만 실제로 나도 req 작성할때 "1234"라고 쓰는 등 자꾸 헷갈려서 뒤늦게 String으로 변경했다.

 

먼저 POST로 새 게시글 작성

작성 완료 메시지 확인

 

GET의 전체 상품 조회 페이지로 이동

방금 등록한 게시글이 맨 위에 잘 올라가 있음

 

GET의 상세 조회 페이지로 이동

아이디 값 복사해서 확인해보니 잘 나옴

 

PUT으로 들어가서 비밀번호 입력하고 제목, 내용, 판매 상태를 수정함

수정 완료 메시지 확인

 

GET의 상세 조회 페이지에서 수정사항 반영 확인

 

DELETE에서 id 값과 비밀번호 입력하고 게시글 삭제

삭제 완료 메시지 확인

 

다시 GET의 전체 게시글 조회 페이지로 돌아가서 삭제가 완료된 것을 확인

 

 


필수요구사항: 프로젝트 관리

 

http://juliekimdev.shop:3000/api/products

AWS EC2로 배포하여 도메인 주소 연결

 

 


1.

처음에 네이버 개발자 페이지에서 api를 참고해가며 schema 파일을 힘들게 작성했는데 나중에 router 코드를 쓰다보니 전부 api 명세서에 이미 있는 내용이라는 것을 알게 됐다.

schema에 대한 개념이 프로젝트를 진행하며 뒤늦게 와닿아서 그런 것 같다.

https://mongoosejs.com/docs/guide.html

 

Mongoose v8.1.1: Schemas

Schemas If you haven't yet done so, please take a minute to read the quickstart to get an idea of how Mongoose works. If you are migrating from 7.x to 8.x please take a moment to read the migration guide. Everything in Mongoose starts with a Schema. Each s

mongoosejs.com

그리고 mongoose 홈페이지에서 샘플 참고해가며 작성하는 것! 중요!!

 

2.

https://developer.mozilla.org/ko/docs/Web/HTTP/Status

 

HTTP 상태 코드 - HTTP | MDN

HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려줍니다. 응답은 5개의 그룹으로 나누어집니다: 정보를 제공하는 응답, 성공적인 응답, 리다이렉트, 클라이언트 에러, 그리고

developer.mozilla.org

http 상태 코드 참고하기

이번 프로젝트에서는 200과 400번대만 주로 쓰였다.

 

3.

RESTful API에 대한 개념이 유저와 게임하는 느낌이라 재미있었다.

늘 도움받고 있는 책

 


코드 짜는 건 힘들었지만 배포는 정말 재밌게 했다!

여기에 프론트도 시간 많이 안 잡아먹는 선에서 간단하게나마!! 올려보고 사용못한 옵션도 활용해보고 싶다.

일단 본 과정을 최우선으로 따라가면서 쉬는 시간에 천천히 해보겠습니다..

그리고 바로잡고 싶은 실수가 하나 있는데.. 별건 아니지만 ec2 인스턴스를 시드니에 만들었다🙄

 

 

 

함께 하는 디버깅

이번에도 많은 도움을 받았습니다 오류 잡는데 12시 넘어서까지 함께해주신 ㅎㅇ님 ㅅㅁ님 ㄷㅇ님 ㄹ님 정말 감사합니다..🥹