Skip to content

Seol-Munhyeok/MaraTangOrderSystem

Repository files navigation

마라탕 주문 시스템

https://meteor-blackberry-9c1.notion.site/144a618a3efb80119071d62e9a247024?pvs=4

음식 주문 관리 시스템 - 회원 기능 추가하기

지난주에 진행한 음식 주문 관리 시스템을 회원에게 제공하기 위해

이번 3주차 과제에서는 회원가입 API를 만들고,

로그인을 유지하는 작업을 진행해주세요. 😌

📌 시스템 확장 목표

  1. 회원가입 기능 추가
    • 새로운 사용자가 아이디(이메일), 비밀번호, 이름(닉네임) 등을 입력하여 회원가입할 수 있는 기능을 구현해주세요.
    • REST API를 통해 구현해주세요
    • 비밀번호는 반드시 암호화하여 DB에 저장해주세요. (예: BCrypt 등)
    • 이미 존재하는 아이디로는 회원가입할 수 없도록 중복 검사를 해주세요.
    • (선택, 난이도: ⭐️⭐️⭐️) 프로필 이미지를 함께 받아 저장할 수 있도록 해보시는걸 권장합니다. 이미지와 텍스트를 함께 받을 수 있는 방법을 고민해주세요. (힌트: formdata)
    • 회원이 아이디와 비밀번호로그인할 수 있도록 로그인 기능을 구현해주세요.
  2. 로그인 기능 구현
    • REST API를 통해 구현해주세요.
    • 로그인에 성공하면 세션을 등록해 로그인을 유지해주세요.
    • (선택, 난이도: ⭐️⭐️⭐️⭐️) 세션 대신 JWT를 사용해 개발하는 것도 좋습니다.
  3. 인증 및 인가 처리
    • 로그인된 회원만 주문할 수 있도록 인증, 인가 처리를 구현해주세요.
    • 자신의 주문 내역만 조회할 수 있도록 권한 처리를 해주세요.
    • 세션 검증 로직은 서비스가 아닌 인터셉터를 통해 구현해주세요.
  4. 로그아웃 기능 추가
    • 로그인 된 회원이 로그아웃할 수 있는 기능을 구현해주세요.
    • REST API를 통해 구현해주세요.
    • 로그아웃 시 세션을 만료시켜주세요.

📌 개발 시 지켜야할 것

  1. 깃허브 레포지토리 내에 이슈를 만들고 커밋과 PR에서 이슈를 트래킹 해주세요.
  2. 클래스 내에 너무 많은 책임이 들어가지 않도록 주의하여 작성해주세요.
    1. 암호화 로직의 경우 다른 클래스로 분리하는 등
  3. 한 메서드가 4줄이상 넘어가거나 들여쓰기(indent)가 3번이상이라면, 메서드내 책임을 분리할 수 있을지도 고민해주세요.
    1. 참고 키워드: (클린코드) 함수의 추상화 수준, (클린코드) 인덴트, 메서드 분리
  4. 메서드들의 private과 public 접근 제어자를 목적에따라 제대로 활용하고 있는지 확인해주세요.
    1. 이유없이 public으로 열어두지 않도록 주의해주세요.
  5. 실행 결과를 함께 남겨주세요
    1. Postman이나 API 테스트 툴을 통해 실행결과를 남겨주세요.

About

Java Spring을 이용한 마라탕 주문 시스템

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published