[TIL]20220808

god1hyuk·2022년 8월 8일
1

TIL / WIL

목록 보기
14/30

1. JPA 연관관계 스터디

2. Builder 패턴 스터디

3. 항해99 5주차 팀 미션 "게시물 좋아요" 기능 구현


오랜만에 쓰는 TIL

매일 꾸준히 정리하는게 쉽지가 않다. 하루가 24시간인게 너무 아쉬울 정도로 짧게 느껴진다.

지난 주 Spring 과제를 완성하지 못한 가장 큰 요인이었던 "JPA 연관관계"를 새로운 주가 시작 된 시점에서도 이해가 되질 않았다. 구글링하고 여러 글을 읽어봐도 도무지 감이 오질 않았다.

JSON 형태(Key-Value)의 데이터는 value에 리스트가 담길 수 있어 직관적이었는데, 이 RDB(관계형 데이터베이스)에서는 이 연관관계를 받아들이는게 너무 힘들었다.

그래서 어제 결국 "우아한 형제들"의 개발 팀장으로 계신 '김영한'님의 강의를 큰 마음 먹고 결제를 했고 1강부터 보기 시작했다. 우선 짧은 시간으로 다룰 수 있는 내용이 아닌지라 당장 이번주 미션에 연관관계를 이해하고 적용하기에는 강의를 볼 여유가 되지는 않는다. 하지만 이 강의는 꾸준히 보면 좀 더 단단하게 익히고자 선택했다.

이번 항해99 5주차는

3주차부터 시작된 CRUD부터 4주차의 로그인, 댓글기능을 포함해 그 위에 대댓글, 좋아요, 이미지업로드, 마이페이지, 스케쥴러 등의 기능을 팀 미션으로 진행한다.

내가 맡은 파트는 "좋아요"기능. 이 역시 DB의 연관관계를 이해하지 못하면 구현할 수 없는 부분이다. 나는 꼭 이겨내고자 이 파트를 선택했다.

오늘 오전 연관관계 관련하여 ManyToOne(N:1), OneToMany(1:N), Join에 대해 소스를 보며 연구했다.

역시 백문이불여일타. 직접 코딩하면서 코드 부분 별로 끊어 테스트를 하니까 흐름이 보이기 시작했다. 그래서 우선 급한 "좋아요 기능"을 웬만큼 완성했다.

Builder 패턴도 공부하여 프로젝트에 적용했다. 필요한 데이터마다 생성자를 일일이 다르게 작성해 사용했어야 하는 면을 한층 개선 시켜주었다. 데이터의 순서에 상관없이 작성도 가능하다. 게다가 Lombok에서 제공해주는 @Builder 어노테이션을 이용해 Builder 패턴을 구현했더니 정말 간편했다.

이 내용들은 내게 조금 더 스며들면 기술 블로그로 작성 해봐야겠다.

내일은 "마이페이지" 구현과 동시에 댓글, 대댓글, 좋아요를 조회하여 매핑 시켜주는 작업을 해야한다. 저장보다 조회가 꽤나 까다롭다고 하는데 내일 꼭 흐름에 올라타서 성공하길 바란다.

0개의 댓글