TIL,일일 회고

·TIL,일일 회고
개요JPA를 사용한 프로젝트를 진행하다보면, DB 조회 시 연관 관계에 있는 하위 엔티티들을 한꺼번에 가져오지 않고, 각각의 하위 엔티티를 개별적으로 조회하면서 불필요한 추가 쿼리가 발생하는 문제인 N+1 문제가 자주 발생합니다. 이러한 N + 1 문제를 해결하는 방법에는 @EntityGraph, @BatchSize , Fetch Join등 여러가지가 있습니다. 그런데 왜 많은 개발자들이 여러가지 방법 중 Fetch Join을 사용하는지에 대해서 정리하고자 합니다. 왜 Fetch Join인가❓1. 즉시 로딩과 명시적 제어Fetch Join은 JPQL 쿼리에서 명시적으로 사용되기 때문에, 어떤 연관 데이터를 즉시 로딩할지 명확하게 정의할 수 있습니다. 이는 @EntityGraph나 @BatchSize와 ..
·TIL,일일 회고
수열이란❓먼저 수열을 하나 살펴보겠습니다. 1, 2, 3, @, 5, ...가 있다고 해보겠습니다. 여기서 @에 들어갈 숫자는 4라는 것을 유추할 수 있습니다. 숫자만 나열 되어있을 뿐인데, 어떻게 @가 4라는 것을 알 수 있을까요?1,2,3,4,5는 "다음 숫자가 1씩 늘어난다." 라는 특정한 규칙을 가지고 있기 때문입니다. 이처럼 특정한 규칙을 가진 "수"의 나"열"을 수열이하고 하는 것입니다.  등차 수열이란❓등차수열은 인접한 수의 차이가 같은 수의 나열입니다. 이때 두 항의 차이는 이 수열의 모든 항에 대해서 공통적으로 나타나는 차이이므로 공차(common difference)라고 부릅니다.  첫항이 1이고, 공차가 2인 등차수열첫항이 4이고 공차가 3인 등차수열 등차 수열의 공식등차수열(Ari..
·TIL,일일 회고
개요 [트러블 슈팅] 게시판 좋아요 동시성 문제 해결문제 상황게시판의 좋아요 기능 구현을 하고 있었습니다. 게시판 좋아요 기능의 로직은 다음과 같습니다.@Transactional public LikeResponseDto toggleLike(UUID postId, Long userId) { Post post = postService.getPostById(pospixx.tistory.com 프로젝트는 종료되었지만, 해당 포스팅에서 다룬 좋아요 동시성 문제를 다시 테스트하려고 합니다. 이전 시나리오에서는 100명의 사용자가 동시에 좋아요 요청을 보냈지만, 이번에는 더 높은 트래픽 상황을 가정하고 테스트를 진행하려고 합니다. 테스트 코드 수정@SpringBootTest(classes = PostApplicati..
·TIL,일일 회고
개요다양한 경험을 통해 실력을 높이고 싶은 인턴 디자이너들과 저렴한 가격으로 디자인을 받고 싶은 고객들을 연결해주는 예약 사이트인 GlowGrow 프로젝트에서 결제 후 정산 시스템을 도입했습니다. GlowGrow 프로젝트에서는 프로모션을 통해 다양한 할인 혜택을 제공합니다. 서비스 제공자인 디자이너가 자신의 서비스에 대해 쿠폰을 발급할 수 있을 뿐만 아니라, GlowGrow 운영 측에서도 직접 쿠폰을 발행하여 고객에게 제공할 수 있습니다. 고민 사항프로모션 서비스의 쿠폰에는 2가지 종류가 있는데, 운영 측(Glowgrow)에서 제공하는 쿠폰과 서비스 제공자(PROVIDER)가 제공하는 쿠폰이 있습니다. 이에 따라 쿠폰의 종류에 따라 정산 방식도 달라져야 한다고 판단했습니다. 운영 측에서 제공한 쿠폰을 사..
지누박
'TIL,일일 회고' 카테고리의 글 목록 (20 Page)