과제 내용
이번 과제는 JPA를 활용하여 일정관리 앱을 만드는 것이였습니다.
이번에는 각각의 API마다 정리를 했으니 블로그 봐주세요 !!
https://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문을 수정하지 않아도 된다는게
정말 큰 장점이였던 것 같다.
'TIL' 카테고리의 다른 글
뉴스피드 프로젝트 리팩토링 (1) | 2024.10.25 |
---|---|
REST, REST API, RESTful (2) | 2024.10.21 |
JPA - 회원가입 로그인 (0) | 2024.10.17 |
JPA - JWT와 필터 구현하기 (1) | 2024.10.16 |
영속성 컨텍스트 (1) | 2024.10.16 |