원티드 & 위코드 프리온보딩 백엔드 2회차 과제 회고

김현길·2021년 11월 5일
0

기업과제(프레시코드) 내용


📕 개발 요구 사항

  • Database RDBMS
  • JWT 인증방식 사용
  • 서비스 실행 시 데이터베이스 또는 In Memory 상에 유저와 상품 최소한 5개를 미리 생성
  • Request시 Header에 Authorization 키를 체크
  • Authorization 키의 값이 없거나 인증 실패시 적절한 Error Handling
  • 상품 추가/수정/삭제는 admin 권한을 가진 사용자만 이용 가능
  • 상품 조회는 하나 또는 전체목록을 조회할 수 있으며, 전체목록은 페이징 기능 존재
  • 한 페이지 당 아이템 수 5개
  • 사용자는 상품 조회만 가능
  • 관리자만 상품 추가/수정/삭제
  • 상품 관리 API 개발시 적절한 Error Handling
  • 유닛 테스트 구현

💡 구현 기능


[회원가입, 로그인]

  • 회원가입시 password 같은 민감정보는 단방향 해쉬 알고리즘인 bcrypt를 이용해서 암호화 하여 database에 저장하였습니다.
  • 로그인이 성공적으로 완료되면, user정보를 토큰으로 반환할때, 양방향 해쉬 알고리즘인 JWT를 사용해서 응답을 하였습니다.

[상품 CRUD]

  • 관리자와 사용자를 구분하여, 일반 사용자는 상품 조회만 가능하게 제한하고, 관리자는 상품 추가, 수정, 삭제 권한을 주어 구현 하였습니다.
  • 상품(Menu) 조회시, items , tags를 함께 조회가 가능하게 구현 하였습니다.
  • 상품 페이지를 불러올때 1page당 limit5로 하여 페이징를 구현 하였습니다.
  • 클라이언트 요청시 정보 누락 및 부족으로 인한 에러 처리, 인증관련 에러처리를 구현 하였습니다.


😎 회고

정말 긴 한주가 지난것 같네요. 저에게 도움을 주신 동료분들께 감사드립니다.
동료들의 퀄리트 넘치는 코드를 보고 경의로움을 느꼈습니다. 리팩토링, 모듈화된 코드. 이정도로 섬세하고 재사용성이 강조된된 단위의 모듈화된 코드를 처음 본것 같습니다.
그동안 부트캠프나 온라인 인강에서는 보기 힘든 퀄리티 였고, 많은 배움이 있었습니다.


깃허브 링크

profile
프론트엔드 개발자를 꿈꾸고 있습니다.

0개의 댓글