😂2023.08.03

일일 회고 351일차

할일 및 한일

경험 및 배움

Wasabi 프로젝트 기능 & 테스트 마무리

오늘은 어제 언급했던 통합 테스트가 안되는 문제를 해결하고, 기능 개발을 마무리했다.

문제는 Wasabi 백엔드 서버에서는 테스트에서는 H2 내장 메모리를 사용하는데, 그에 따른 application-test.yml 을 테스트에서 인식을 못해서 문제가 발생했던 것!

테스트 클래스 레벨에 다음과 같은 어노테이션을 붙여 해결했다👍🏻

@TestPropertySource("classpath:application-test.yml")

또한, 현재 프로젝트에서는 한 멤버 엔티티는 여러글에 좋아요를 누를 수 있으니, 좋아요를 컬렉션을 갖고 있다.

이번 기능은 내가 좋아요한 게시글 목록 조회 였는데, 쿼리문을 짤 때 컬렉션에 페치 조인을 사용해서 큰일날 뻔 했다!

일대다 관계에서 일 기준으로 데이터를 가져오는 것이 아닌, 다 기준으로 데이터를 가져오니 데이터 뻥튀기가 일어나는 것!

JPA는 DB에서 페이징을 하는 것이 아닌, 테이블의 전체 데이터를 다 가져와서 프로그램 상에서 페이징을 한다는 경고를 띄웠고, 그에 따라 수정을 진행했다.

페치 조인을 그냥 조인으로 변경하고, @BatchSize 를 member의 likes에 붙여서 해결했다.

결과적으로는 경고문은 없어지고, in절로 데이터를 잘 조회하는 것을 볼 수 있었다👍🏻

대규모 시스템 9장(웹 크롤러 설계) 학습 및 정리

또한 남은 시간은 코딩 테스트를 보고, 대규모 시스템 9장(웹 크롤러 설계)를 학습했다!

웹 크롤러는 사용할 생각도 못해봤고, 단순히 뭐 구글이나.. 네이버.. 이런 웹 사이트 검색엔진들은 어떻게 정보를 수집하지? 라는 생각만 해봤었다.

이번 단원을 학습하면서 궁금증이 어느정도 풀렸다.

계속해서 느끼는 거지만 정말 단순해보이는 작업도 뒤에 숨겨진 절차는 정말 방대하다.

개선 및 목표

  • 내일도 대규모 시스템 학습, 블로그 포스팅, 캡스톤 리팩토링!

Last updated