본문 바로가기
글 수정
불러오는 중…
피드
블로그
개발자 뉴스
이벤트
딥
딥소스
로그아웃
JAVA☕
🔥
고인물
⭐
STAR
팔로워
128
팔로잉
64
보유 칩
1,250
내 블로그 / 새 연재 쓰기
내 정보
알림
3
건 읽지 않음
알림
모두 읽음
차
❤️
차재인
님이 내 데모 「Spring Batch 모니터」를 좋아해요.
4분 전
곽
💬
곽다윗
님이 내 피드에 댓글을 남겼어요: “배치 실패 알림은 어떻게 받으세요?”
18분 전
김
👋
김진엽
님이 나를 팔로우하기 시작했어요.
50분 전
김
📖
김승조
님이 미니홈피 방명록을 남겼어요.
2시간 전
정
🪙
정시우
님이 미니홈피에 칩 30개를 후원했어요.
3시간 전
박
🔁
박준하
님이 내 피드를 리포스트했어요.
5시간 전
윤
⭐
윤세진
님이 내 블로그를 구독했어요.
1일 전
구독 중인 연재 작가
전체 보기
차
@차재인
대규모 트래픽 연재 12화
윤
@윤세진
Next.js 15 아키텍처 연재
김
@김승조
DevOps CI/CD 파이프라인
블로그 피드 환경 설정
제목
분류
분류 선택
프론트엔드
백엔드 & 인프라
AI & 데이터
모바일
커리어
태그
본문 (마크다운)
편집
미리보기
## 들어가며 「JPA N+1 해결기: fetch join vs EntityGraph vs BatchSize」를 정리하게 된 계기는 단순했어요. 같은 문제를 세 번째 만났을 때, 이번엔 기록으로 남겨야겠다고 생각했습니다. ## 문제 상황 - 트래픽이 몰리는 시간에 응답이 2초 이상 늘어졌어요. - 로그만으로는 어디서 막히는지 알기 어려웠어요. - 재현 환경을 만드는 데만 하루가 걸렸어요. ## 해결 과정 먼저 병목을 숫자로 확인했어요. 측정 없이 고치면 같은 실수를 반복하게 됩니다. ```java @Transactional(readOnly = true) public List<FeedResponse> getFeeds(Long userId) { return feedRepository.findAllWithAuthor(userId).stream() .map(FeedResponse::from) .toList(); } ``` 조회 쿼리를 하나로 묶고, 응답 DTO 변환을 한 곳으로 모았더니 코드도 성능도 같이 좋아졌어요. ## 마치며 정답은 상황마다 다르지만, 측정 → 가설 → 검증 순서만 지키면 크게 틀리지 않더라고요. 궁금한 점은 댓글로 남겨 주세요!
데모 연결 (선택)
연결하지 않음
실시간 채팅앱
Spring Batch 모니터
마크다운 에디터
공개 방식
무료 공개
수정 완료