This repository was archived by the owner on Oct 16, 2024. It is now read-only.
Description 전체적으로 코드가 깔끔하고 일관된 스타일을 유지하고 있으며 기능별 분리가 잘 되어 있어 유지보수성이 높아 보입니다. 고생하셨습니다!
prisma/schema.prisma
Prisma 스키마 정의가 체계적으로 잘 되어 있습니다. enum을 활용하여 이력서 상태와 유저의 성별을 명확하게 정의한 점이 좋습니다.
테이블 간의 관계 정의에서 onDelete: Cascade 옵션을 사용하여 관련 데이터가 함께 삭제되도록 한 점이 한 눈에 보기 쉽고 일관성이 있습니다.
src/middlewares/auth.middleware.js
JWT 토큰을 사용한 인증 미들웨어는 요청의 각 단계에서 사용자가 유효한지 검증하는 데에 잘 활용될 것 같습니다.
authorization.split(" ")으로 Bearer 토큰을 파싱하는 부분이 간결하고 명확해서 좋습니다.
next() 호출 전에 사용자 정보를 요청 객체에 추가함으로써 추후에 요청 처리를 하는 함수에서 사용자 정보를 쉽게 가져올 수 있도록 한 점도 좋아요!
src/middlewares/error-handler.middleware.js
중복된 오류 이름인 "ValidationError"와 "PrismaClientValidationError"를 함께 처리하려고 하셨는데 이 부분은 || 연산자를 그대로 사용하면 정확한 동작을 하지 않습니다. 대신에 아래와 같이 수정하면 됩니다:
if ( err . name === "ValidationError" || err . name === "PrismaClientValidationError" )
오류 발생 시 로깅을 하는 것은 좋으나 서버의 오류 스택 정보가 클라이언트에게 표시되지 않게 주의해야 합니다.
src/middlewares/logger.middleware.js
로깅을 위한 미들웨어 설계가 잘 되어 있어, 모든 요청에 대한 정보를 기록할 수 있도록 되어 있습니다.
그러나 rea가 아닌 req를 인자로 사용해야 합니다. 오타 수정이 필요해 보입니다.
src/routes/users.router.js
회원가입, 로그인, 유저 정보 조회 API가 모두 잘 구성되어 있습니다.
비밀번호 6자 이상 길이 확인이나 추가적인 유효성 검사를 해주는 것은 사용자 보안을 위해서 매우 중요한 부분입니다.
이메일 존재 여부 확인과 비밀번호가 일치하는지 검증하는 로직도 잘 구현되어 있습니다.
src/routes/resumes.router.js
이력서 관련 CRUD 작업이 RESTful API 형식에 맞게 잘 구현되어 있습니다.
상태 변경 시 toUpperCase()로 처리한 것은 가능한 입력 오류를 줄여주는 좋은 접근법입니다.
각 API마다 권한 체크를 정확히 하고 계시네요!
Reactions are currently unavailable
전체적으로 코드가 깔끔하고 일관된 스타일을 유지하고 있으며 기능별 분리가 잘 되어 있어 유지보수성이 높아 보입니다. 고생하셨습니다!
prisma/schema.prismaenum을 활용하여 이력서 상태와 유저의 성별을 명확하게 정의한 점이 좋습니다.onDelete: Cascade옵션을 사용하여 관련 데이터가 함께 삭제되도록 한 점이 한 눈에 보기 쉽고 일관성이 있습니다.src/middlewares/auth.middleware.jsauthorization.split(" ")으로 Bearer 토큰을 파싱하는 부분이 간결하고 명확해서 좋습니다.next()호출 전에 사용자 정보를 요청 객체에 추가함으로써 추후에 요청 처리를 하는 함수에서 사용자 정보를 쉽게 가져올 수 있도록 한 점도 좋아요!src/middlewares/error-handler.middleware.js||연산자를 그대로 사용하면 정확한 동작을 하지 않습니다. 대신에 아래와 같이 수정하면 됩니다:src/middlewares/logger.middleware.jsrea가 아닌req를 인자로 사용해야 합니다. 오타 수정이 필요해 보입니다.src/routes/users.router.jssrc/routes/resumes.router.jstoUpperCase()로 처리한 것은 가능한 입력 오류를 줄여주는 좋은 접근법입니다.