[윤대호] 풀스택-BE-mission10#9
Open
aowjarkwk wants to merge 36 commits intocodeit-bootcamp-nodejs:풀스택-BEfrom
Hidden character warning
The head ref may contain hidden characters: "\ud480\uc2a4\ud0dd-BE-mission10"
Open
Conversation
- 상품 목록 조회 페이지네이션 추가
- 상품 목록 조회 - 상품 상세 조회
- http, mock 데이터 위치 변경
- mock, seed 데이터 수정
- 상품 수정, 삭제 - 상품 댓글 등록, 수정, 삭제
- 서버 코드를 MVC 패턴으로 리팩토링 - 이미지 업로드 기능 테스트를 위해 CORS 미들웨어 추가
- 구글 OAuth 로그인 후 JWT 토큰 생성 구현 - 유저 기능에 MVC 패턴 적용
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
주요 변경사항
10주차 스프린트 미션의 프론트엔드 코드에 맞게 백엔드 코드를 변경
multer미들웨어를 사용하여 상품 이미지 업로드 API를 구현해주세요.백엔드 구현 요구사항
인증
권한 제어(인가)
상품 기능 인가
이미지 업로드 기능 인가
아티클 기능 인가
댓글 기능 인가
에러 처리
라우트 중복 제거
중복되는 라우트 경로(예:
/users에 대한get및post요청)를app.route()로 통합해 중복을 제거합니다.express.Router()를 활용하여 상품/자유게시판 관련 라우트를 별도의 모듈로 구분합니다.심화 요구사항
토큰 기반 방식을 사용할 경우, 만료된 액세스 토큰을 새로 발급하는 리프레시 토큰 발급 기능을 구현합니다.(jwt sliding session 적용)
구글 OAuth를 사용하여 회원가입 및 로그인 기능을 구현합니다.
프로젝트의 구조와 복잡성을 관리하기 위해 MVC 패턴이나 Layered Architecture와 같은 설계 방식을 적용해 보세요.
morgan을 사용하여 모든 요청의 상세 정보(메소드, 경로, 응답 시간 등)를 로그로 기록합니다.QA 의견
상품 ID, ownerId 등 ID 필드를 UUID로 사용하는 것인지, Int 타입으로 사용하는 것인지 명확히 설명되어 있으면 좋겠습니다.
관계형 데이터베이스를 활용한 자바스크립트 서버 만들기강의에서는 ID를 UUID로 사용하는 것을 보여주었는데, 이번 미션에서는 Int 타입을 사용하고 있어서 DB 구조를 변경해야 하는 스프린터 분들이 있으실 것 같고, 그 과정에서 오타나 에러 발생 등의 혼란이 발생할 것 같습니다. (저는 유저 ID는 Int, 그 외의 ID는 UUID로 구현했습니다.)7주차의
관계형 데이터베이스를 활용한 자바스크립트 서버 만들기토픽에서 트랜잭션에 관해 배우는 부분이 있습니다. 저는 좋아요 기능을 구현할 때 트랜잭션을 적용해봤는데, 적용을 위해 공부하는 과정이 도움이 된 것 같아서 트랜잭션을 실습할 수 있도록 하는 요구사항이 포함되면 좋을 것 같습니다.라우트 경로를 통합하면서 코드 위치를 한번 옮기고, 이후
MVC 패턴 또는 Layered Architecture 적용심화 요구사항을 진행하면서 다시 코드 위치를 옮기는 작업을 반복하게 되어 피로도가 높아지는 것 같습니다. 일부 API를 구현할 때 미리 MVC 패턴 또는 Layered Architecture로 작성하도록 하는 것은 어떨까요? 처음부터 MVC 패턴 또는 Layered Architecture로 코드를 작성해보는 연습도 될 것 같습니다.Swagger 문서 작성을 한 번에 몰아서 하다 보니 시간이 오래 걸리고, 헷갈리게 되는 것 같습니다. Swagger 문서 작성을 나눠서 할 수 있도록 이전 미션에 배치하거나, 일부만 작성하고 추후 미션에서 이어서 작성하도록 하는 것은 어떨까요? 10주차에 모든 문서를 한꺼번에 작성하는 대신, 미션을 진행하면서 조금씩 작성해나가면 더 여유있고 상세하게 작성할 수 있을 것 같습니다.
일반적으로 비밀번호 확인은 프론트엔드에서 처리하는 것으로 알고 있는데, https://panda-market-api.vercel.app/docs/#/Auth/SignUp에서는 회원 가입 시에도 비밀번호 확인을 받도록 되어 있어서 의도된 것인지 궁금했습니다.
노션의 심화 요구사항 중 프로젝트 구조 변경 부분이 두 번 적혀져있습니다.
미션 중 현재 출시된 토픽에는 나오지 않은 개념들이 있어 구글링과 GPT를 활용하여 구현했습니다. 코드가 의도하신 대로 작성되지 않았다면 말씀해주시면 수정하겠습니다.