Coder Social home page Coder Social logo

hh-99-admin-project-lv3's Introduction

항해99 주특기 Lv.3 과제 - 강의 관리자 백오피스 백엔드 REST API

📝 개요

  • 강의 관리자 백오피스 RESTful API 개발 과제입니다.
  • Spring Security + JWT 로그인 으로 인증 & 인가 로직을 비즈니스 로직과 분리

🛠️ Stack

  • IntelliJ IDEA Ultimate
  • Gradle
  • Spring Security
  • Spring boot v3.2.3
  • Spring MVC
  • Spring Data JPA
  • MySQL
  • Java 17

hh-99-erd

Usecase Diagram

hh-99-usecase

API 명세서 (Postman)


💡주요 기능

  • 회원(관리자)
    • 회원 가입
    • 회원 로그인
  • 강사
    • 강사 등록
    • 선택한 강사 정보 수정 - MANAGER 권한만 가능
    • 선택한 강사 정보 조회
    • 선택한 강사의 강의 목록 조회
    • 선택한 강사 삭제 - MANAGER 권한만 가능
  • 강의
    • 강의 등록
    • 선택한 강의 정보 수정 - MANAGER 권한만 가능
    • 선택한 강의 정보 조회
    • 카테고리 강의 목록 조회
    • 선택한 강의 삭제 - MANAGER 권한만 가능

hh-99-admin-project-lv3's People

Contributors

yoonion avatar

Watchers

 avatar

Forkers

oksuchun

hh-99-admin-project-lv3's Issues

과제3 관련 페어 리뷰입니다.

전반적인 과제의 기능 요구 사항을 충실히 이행해주신 것 같습니다.
추가 기능에서 예외처리 하신 부분도 직접 공부하셔서 작성하신걸로 알고 있어 저도 학습에 많은 도움이 되었습니다.

몇가지 리뷰입니다.

  1. 현재 controller 에서 {id} 와 같이 나타낸 부분이 있는데 이를 RESTful API를 더 명확하게 만들고자 한다면, 리소스의 종류를 URI에 명시적으로 포함시키는 것이 좋다고 생각합니다. 예를 들어, /teachers/{teacherId}와 같이 표현하여 id가 Teacher 엔티티의 식별자임을 분명이 알 수 있을 것 입니다.

  2. department 를 String 으로 받으셨는데 과제 4에서는 enum 으로 바꾸신다면 좀 더 요구사항에 근접하지 않을까 싶습니다.

  3. 현재 연관관계 주인이 아닌 엔티티에 cascade 를 걸어주셨는데, 연관 관계의 주인과의 일관성 유지를 위해 cascade 옵션은 연관 관계의 주인에서 관리하는 것이 일반적으로 권장되는 방식으로 알고 있습니다. 이를 통해 엔티티 간의 관계가 더 명확해지고, 데이터의 일관성을 유지할 수 있다고 합니다.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.