TIL

JPA - 일정관리 앱 만들기

haseung22 2024. 10. 17. 11:46

과제 내용

이번 과제는 JPA를 활용하여 일정관리 앱을 만드는 것이였습니다. 

이번에는 각각의 API마다 정리를 했으니 블로그 봐주세요 !!

https://haseung22.tistory.com/

 

haseung22의 블로그

haseung22 의 블로그 입니다.

haseung22.tistory.com

 

 

과제를 하며 있었던 트러블 슈팅

배경

과제의 요구사항 중 일정 담당 유저 (매니저)와 일정의 연관관계를 N:M으로 하라는 요구사항이 있었는데

이걸 어떻게 할지 고민하다가 처음에는 User와 Todo 테이블 이외에 일정 담당 유저를 관리하는 Manger 테이블과 일정과 그 Manager 테이블을 N:M으로 연관 짓기 위하여 Management라는 테이블을 하나 또 만들어서 연관관계를 맺어줬었다.

근데 코드를 계속 보다 보니  Management 엔티티를 굳이 사용해야될까..? 라는 생각이 들었다.

 

해결

기존에 Management 테이블을 삭제하고 User 테이블과 Todo 테이블을 N:M관계로 맺어주기로했다.

하지만 N:M 관계로 ManyToMany를 쓰는 방식은 좋지 않은 방식이기 때문에 Manager 테이블을

중간다리 역할로 사용하였다.

 

회고

 

과제나 프로젝트 기간에는 정말 정신도 없고 시간이 녹는 것 같다... 저번 과제에서 JDBC를 사용하였을 때에는

중복되는 코드가 엄청 많았는데 이번에 JPA를 사용해보니 중복되는 코드가 거의 없어 마음이 편안해졌다

무엇보다 레벨 마다 요구사항을 추가해주며 엔티티의 컬럼들도 바꿨는데 그 때마다 SQL문을 수정하지 않아도 된다는게

정말 큰 장점이였던 것 같다.