4주차 회고록

동오·2024년 12월 13일

12월 09일 ~ 12월 13일

이번 주는 참 집중도 잘 못했고 컨디션 관리가 제대로 되지 않은 느낌이라 스스로 만족을 못하는 한 주 였던 거 같았는데 정신 좀 차려야 될 거 같다..🤦🏻‍♂️

코딩테스트 문제도 한 문제밖에 못했고 책도 들여다보질 못했는데 다음 주는 뭔 일이 있더래도 저녁먹고서 1시간에서 2시간은 코딩테스트에 시간을 좀 쓰려고 한다.

Sbb

SBB레포
점프 투 스프링부트

이번 주는 점프 투 스프링부트 교재 따라서 진행하고 추가 기능 구현이 주제였다.
스프링과 Jpa를 이미 다뤘지만 사이드 프로젝트가 끝나고 나서는 지금까지 다루지를 못했어서
다시 또 감 잡는다고 생각하고 진행했었다.

타임리프는 처음 스프링 배울 때 배우고 지금까지 한 번도 따로 쓰지를 않았다보니
교재에서 다룰 때 마다 조금 어색하기도하고 어렵게 느껴지기도 했었다.

대부분이 아는 내용이라 3-13까지 목요일에 끝냈는데 엔티티가 컨트롤러 서비스 계층에서도 사용되는걸 냅두고 추가 기능 구현을 하기가 싫어서 도메인을 도입하고 리팩토링하는데 목요일 밤까지 시간을 다 썼던 거 같다.

처음 설계할 때 도메인을 넣어서 시작했으면 그렇게 복잡하지는 않았을텐데 이미 다 만들어 둔 상태에서 도메인을 도입하려니 커밋 단위를 짧게 잡을래야 잡을 수가 없었고 테스트조차 작성을 안 했다보니 아예 싹 도메인을 만들고 엔티티와 분리하기 전까지는 커밋이던 실행이던 뭘 할 수가 없었다.

물론 책에서 이 부분을 다루지 않았기 때문에 굳이 할 필요는 없었다 싶었지만 그래도 프로젝트를 할 때는 분리해야 되는거니까 시작했는데 초반에 설계를 잘 해야 뒤에 이런 일이 발생하지 않겠구나 하는 걸 제대로 깨달은 거 같다.

도메인과 엔티티 분리가 끝나고 나서는 추가 기능 구현을 시작했다.
답변에 페이징 처리와 최근 작성순, 추천순으로 정렬하는 기능을 먼저 구현하기 시작했었고
기능을 구현하는 부분에 있어서는 어렵진 않았는데 타임리프에서 시간을 많이 잡아먹었던 거 같다.

부트스트랩도 오랜만이고 타임리프 자바스크립트도 오랜만이다보니 뭐 하나 제대로 되는게 없었다..ㅎ

이래저래 우여곡절 끝에 기능 구현은 완료했는데 코드 한 번 확인할 겸 들여다보다가 연관관계 매핑에 Lazy 설정도 안했고 어차피 질문을 불러오면 답변과 작성자 등 연관관계 걸려있는 모든걸 불러와야 되는데 fetch join을 사용하지 않아서 페이지 새로 고칠 때 마다 쿼리가 몇개가 나갔는지 모르겠다..

다음 기능 구현 들어가기 전에 이 부분부터 개선시키고 들어갈 생각이다.
무료로 올라와있어서 그런지 모르겠는데 n+1 문제도 마찬가지고 여러 부분들이 생략됐었던 거 같다.
주말간에 문제 발생하는 부분들부터 다시 리팩토링을 거친 후에 다음 주 부터는 나머지 기능 구현을 마무리 하려고 한다.

0개의 댓글