프로그래밍/Java

[부트캠프 과제] 심화 주차 개인 과제 - 일정 관리 앱 개선

바토파 2024. 10. 31. 12:45
반응형

이전 글

https://unblockme.tistory.com/entry/%EB%B6%80%ED%8A%B8%EC%BA%A0%ED%94%84-%EA%B3%BC%EC%A0%9C-%EC%9D%BC%EC%A0%95-%EA%B4%80%EB%A6%AC-%EC%95%B1-Develop

 

[부트캠프 과제] 일정 관리 앱 Develop

깃허브 링크https://github.com/ethrad/Schedule GitHub - ethrad/ScheduleContribute to ethrad/Schedule development by creating an account on GitHub.github.comERD+--------------+ +---------------+| User | | Schedule |+--------------+ +---------------+| i

unblockme.tistory.com


필수 기능

Lv 1. 필수 사항 보완

  • Controller에 있는 메소드의 매개변수에 @Valid 추가

https://github.com/ethrad/Schedule/tree/master/src/main/java/com/sparta/controller

 

Schedule/src/main/java/com/sparta/controller at master · ethrad/Schedule

Contribute to ethrad/Schedule development by creating an account on GitHub.

github.com

 

  • 오류 해결

엔티티 간 다대다 연관 관계 설정에서 오류가 있어서 해결하였다.

mappedBy의 이름을 상대 엔티티에 있는 변수의 이름으로 해줬어야 했는데 다르게 해서 매핑이 되지 않았다.

그리고 repository에 잘못 작성된 쿼리가 있어서 그것도 수정했다.

 

 

Lv 2. 기능 개선

  • 유효성 검사 추가

https://github.com/ethrad/Schedule/blob/master/src/main/java/com/sparta/service/UserService.java

 

Schedule/src/main/java/com/sparta/service/UserService.java at master · ethrad/Schedule

Contribute to ethrad/Schedule development by creating an account on GitHub.

github.com

내 프로젝트에서 할 수 있는 건 회원 가입 시에 중복된 이메일이 있는지 검사하는 경우만 있는 것 같아서 그 경우만 추가했다.

My Select Shop 강의를 보면 관리자 암호가 맞는지, 관심 상품 폴더 이름이 중복되지 않았는지 등을 검사하는 것을 service에 넣었다.

그래서 유효성 검사가 service의 책임이라고 생각하는데 해설 영상을 봐야 정확히 알 수 있을 것 같다.

 

  • 예외 처리 강화

https://github.com/ethrad/Schedule/tree/master/src/main/java/com/sparta/common

 

Schedule/src/main/java/com/sparta/common at master · ethrad/Schedule

Contribute to ethrad/Schedule development by creating an account on GitHub.

github.com

GlobalExceptionHandler를 통해 어플리케이션 실행 시에 발생하는 예외를 처리했다.

그리고 request dto의 제약 조건에 맞지 않을 시 발생하는 예외도 받아서 처리했다.

 

Error code는 프로젝트 규모가 작아서 적을 것이 많지 않았다.

 

예외가 발생하면 controller가 ErrorResponseEntity를 반환한다.

 

  • 서비스의 도메인 로직을 엔티티에 위임

https://github.com/ethrad/Schedule/tree/master/src/main/java/com/sparta/entity

 

Schedule/src/main/java/com/sparta/entity at master · ethrad/Schedule

Contribute to ethrad/Schedule development by creating an account on GitHub.

github.com

일단 엔티티 update하는 부분, 연관 관계에 있는 다른 엔티티 추가하는 부분을 넣긴 했는데 잘 모르겠다.

반응형