전자책 기반으로 따라가다가 지난 주 금요일 엔티티, 도메인 분리를 마무리했고 오늘 성능 개선을 하려고 작업을 시도했다.
막 거창하게 생각하지 않았고 가볍게 시작했지만 쿼리 나간 거 보니까 넘어갈 수 가 없겠더라..
게시글, 답변, 게시글 추천, 답변 추천, 작성자 등등 연관관계가 엮인거만해도 4개가 넘었는데
조회 할 때마다 무수히 많은 쿼리가 나갔다.
상세보기를 들어가기만해도 쿼리가 대략적으로 5~8개 정도는 나갔던 거 같아서 이거는 아니다 싶어서 개선 작업을 시도했는데 아무래도 책에서 나오는 코드 그대로 따라갔기도 했고 현재 상황에서 조금만 바꿔도 여기저기서 컴파일 오류가 나고 컴파일 오류를 해결했더니 쿼리 나갈때 예외가 터지고 생각보다 많이 골치 아프게 됐다.
그래서 차라리 싹 지우고 앞 전에 TDD도 맛봤는데 TDD로 시작하고 처음부터 성능 고려하면서 작업을 하는게 훨신 여러모로 편하겠다는 판단이 들었다.
TDD를 적용한답치고 했지만 아무래도 시간이 여유있는게 아니라서 RED GREEN BLUE를 다 지켜가면서 하지는 못했고 테스트 케이스 작성을 먼저하고 그에맞게 기능 구현이 쉽게 끝나는 건 바로 구현을 해버렸다.
지금까지 사이드 프로젝트 할 때도 커밋 단위를 되게 짧게 잡았었는데 아무래도 시간에 쫓기기도해서 그런가 커밋 단위를 좀 길게 가져갔던 거 같다.
어쨌든 모든걸 현재 상황에선 다 챙기지도 못할 거 같고 실제 서비스도 아닌 학습용이니 어느정도는 눈감고 넘어가기로 마음 먹었다..ㅎ
일단 오늘은 멤버, 질문 리포지토리 까지만 작업했고 내일은 최소한 답변이랑 시큐리티 적용까지 끝내려고 한다.
이거 진행하면서 개선 전과 후 비교를 기록할 생각인데 시간적 여유가 좀 된다면 상세하게 기술하고 모자라다 싶으면 일단은 코드만이라도 기록해둘 생각이다.