Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Spring Data JPA] 방예혁 미션 제출합니다. #85

Open
wants to merge 15 commits into
base: yehyeokbang
Choose a base branch
from

Conversation

YehyeokBang
Copy link

내용

  • Spring Data JPA로 전환했습니다.
  • 예약 목록, 예약 대기 및 취소 기능을 구현했습니다.
  • xToOne(ManyToOne, OneToOne) 매핑 어노테이션은 기본 fetch 전략이 Eager이기 때문에 Lazy로 명시하고 연관된 엔티티가 함께 필요한 경우 (예: 회원의 이름과 예약 날짜가 필요하다!) @EntityGraph 어노테이션을 사용하여 함께 불러오도록 지정하여 최소한의 쿼리가 발생하도록 했습니다. 추가적으로 컬렉션 페치 조인을 할 경우는 없어서 편하게 @EntitiyGraph를 사용했습니다!
  • 필요한 부분이 없다고 판단하여 양방향 연관관계 매핑을 사용하지 않았고, 단방향으로만 지정했습니다.
  • 복잡한 쿼리의 경우 @Query 어노테이션과 JPQL을 활용하여 풀었습니다.
  • lombok을 적용하면 더 깔끔한 코드가 될 것 같습니다.
  • Step 테스트는 모두 통과했으며, 실제로 화면에서 예약, 대기, 취소 기능 동작 여부도 확인했습니다.

- 로그인 응답으로 JWT를 쿠키로 전송합니다.
- 로그인 사용자의 정보를 확인하는 기능을 추가합니다.
- 패키지 구조를 변경합니다.
- 로그인한 사용자의 이름을 추출합니다.
- 로그인 상태가 아닌 경우 null을 반환합니다.
- 로그인 사용자의 정보를 추출하는 기능을 분리하여 코드 중복을 줄입니다.
- 패키지 구조를 변경합니다.
- 권한 체크가 필요한 API 메서드마다 사용할 수 있습니다.
- 단계별 권한으로 구현하여 기준보다 아래의 권한을 가진 사용자인 경우 403을 반환합니다.
- 관리자 전용 페이지는 관리자만 접속할 수 있습니다.
- 사용하지 않는 로깅 관련 코드를 삭제합니다.
- 기존 열거형 타입 순서에 의존하던 방식에서 일치하는 지 확인하는 방식으로 수정합니다.
이전: spring-boot-stater-jdbc
이후: spring-boot-starter-data-jpa
- 테이블 생성 명령어를 삭제합니다.
- DAO도 전부 JpaRepository로 변경합니다.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant