Skip to content

Latest commit

 

History

History
110 lines (89 loc) · 5.63 KB

과제3.md

File metadata and controls

110 lines (89 loc) · 5.63 KB

< 항해99 주특기 과제3 >


🤷‍♂️ Spring Security연관관계 매핑 활용 과제

📆 과제 기간 : 2024.03.05 - 03.07

🛠️ framework : Spring Boot , JAVA


순서

  1. 시스템 요구사항
  2. 소프트웨어 설계(Use Case Diagram, API 명세서, ERD )
  3. 추가 기능 구현 현황

✅ 시스템 요구사항

  1. 관리자 가입 기능

    • 이메일, 비밀번호, 부서, 권한을 저장할 수 있습니다.
      • 커리큘럼, 마케팅, 개발 부서가 있습니다.
      • MANAGER, STAFF 권한이 있습니다.
        • 커리큘럼, 개발 부서만 MANAGER 권한을 부여 받을 수 있습니다.
      • 이메일올바른 이메일 형식을 지켜야 합니다.
      • 비밀번호최소 8자 이상, 15자 이하이며 알파벳 대소문자(a~z, A~Z), 숫자(0~9), 특수문자로 구성되어야 합니다.
    • 관리자가입 성공을 확인할 수 있는 값을 반환합니다.
      • ex) HTTP Status Code, Error Message …
  2. 로그인 기능

    • 관리자는 이메일, 비밀번호를 입력하여 서버에 로그인을 요청할 수 있습니다.
    • 로그인 성공 시, 회원의 정보JWT를 활용하여 토큰을 발급하고, 발급한 토큰을 Header에 추가한 후 로그인 성공을 확인할 수 있는 값과 함께 반환합니다.
      • ex) HTTP Status Code, Error Message …
  3. 강사 등록 기능

    • 이름, 경력(년차), 회사, 전화번호, 소개를 저장할 수 있습니다.
      • 로그인을 통해 발급받은 JWT가 함께 요청됩니다.
      • 관리자만 강사 등록이 가능합니다.
    • 등록된 강사의 정보를 반환 받아 확인할 수 있습니다.
  4. 선택한 강사 정보 수정 기능

    • 선택한 강사의 경력, 회사, 전화번호, 소개를 수정할 수 있습니다.
      • 로그인을 통해 발급받은 JWT가 함께 요청됩니다.
      • MANAGER 권한을 가진 관리자만 강사 정보 수정이 가능합니다.
    • 수정된 강사의 정보를 반환 받아 확인할 수 있습니다.
  5. 강의 등록 기능

    • 강의명, 가격, 소개, 카테고리, 강사, 등록일을 저장할 수 있습니다.
      • Spring, React, Node 카테고리가 있습니다.
      • 강사 한 명이 여러 개의 강의를 촬영할 수도 있습니다.
      • 로그인을 통해 발급받은 JWT가 함께 요청됩니다.
      • 관리자만 강의 등록이 가능합니다.
    • 등록된 강의의 정보를 반환 받아 확인할 수 있습니다.
  6. 선택한 강의 정보 수정 기능

    • 선택한 강의의 강의명, 가격, 소개, 카테고리를 수정할 수 있습니다.
      • 로그인을 통해 발급받은 JWT가 함께 요청됩니다.
      • MANAGER 권한을 가진 관리자만 강의 정보 수정이 가능합니다.
    • 수정된 강의의 정보를 반환 받아 확인할 수 있습니다.
  7. 선택한 강사 조회 기능

    • 선택한 강사의 정보를 조회할 수 있습니다.
      • 로그인을 통해 발급받은 JWT가 함께 요청됩니다.
      • 관리자만 강사 조회가 가능합니다.
  8. 선택한 강의 조회 기능

    • 선택한 강의의 정보를 조회할 수 있습니다.
      • 로그인을 통해 발급받은 JWT가 함께 요청됩니다.
      • 관리자만 강의 조회가 가능합니다.
  9. 선택한 강사가 촬영한 강의 목록 조회 기능

    • 선택한 강사가 촬영한 강의를 조회할 수 있습니다.
      • 로그인을 통해 발급받은 JWT가 함께 요청됩니다.
      • 관리자만 강의 조회가 가능합니다.
    • 조회된 강의 목록은 등록일 기준 내림차순으로 정렬 되어있습니다.
  10. 카테고리별 강의 목록 조회 기능 - 선택한 카테고리에 포함된 강의를 조회할 수 있습니다.

    • 로그인을 통해 발급받은 JWT가 함께 요청됩니다.
    • 관리자만 강의 조회가 가능합니다. - 조회된 강의 목록은 등록일 기준 내림차순으로 정렬 되어있습니다.
  11. 공통 기능 - 로그인 요청의 비밀번호 불일치 등 API 요청의 예외가 발생하는 모든 경우에 대해서 실패(예외상황)에 대해 판단할 수 있는 Status Code, Error 메시지등의 정보를 반환합니다.


🛠️ 소프트웨어 설계

1. Use Case Diagram

2. API 명세서

3. ERD


추가 기능 (✅ : 완료 / ❌ : 미완료 )

  1. ✅ 선택한 강의 삭제 기능
    • 선택한 강의를 삭제할 수 있습니다.
      • 로그인을 통해 발급받은 JWT가 함께 요청
      • MANAGER 권한을 가진 관리자만 강의 삭제가 가능합니다.
  2. ✅ 선택한 강사 삭제 기능
    • 선택한 강사를 삭제할 수 있습니다.
      • 로그인을 통해 발급받은 JWT가 함께 요청.
      • MANAGER 권한을 가진 관리자만 강사 삭제가 가능합니다.
  3. ✅ Spring Security를 적용하여 인증/인가를 구현
    • Security의 Secured 기능을 사용하여 권한별로 API를 제어할 수 있습니다.
  4. ❌ swagger를 구글링해 보고 프로젝트에 적용