일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- KDT
- 디자인교육
- 부트캠프
- 국비지원
- 디자인강의
- 백준
- 내일배움카드
- UXUI챌린지
- 국비지원취업
- UXUI기초정복
- 패스트캠퍼스
- OPENPATH
- 객체지향
- 오블완
- 내일배움캠프
- 티스토리챌린지
- 오픈챌린지
- 자바
- UXUIPrimary
- 디자인챌린지
- Spring
- 백엔드 부트캠프
- Be
- 환급챌린지
- 국비지원교육
- baekjoon
- Java
- 백엔드개발자
- mysql
- 오픈패스
- Today
- Total
목록2025/07/10 (2)
군만두의 IT 공부 일지

⭐요약채팅 서비스 개발 중 메시지 조회 API에서 103개의 쿼리가 실행되는 N+1 문제를 발견했다.QueryCountInterceptor를 구현하여 쿼리 수를 모니터링하고, JOIN FETCH를 활용하여 쿼리 수를 약 96% 감소시켰다.최종적으로 메시지 조회 성능을 200ms → 48ms (약 76% 개선), 채팅방 목록 조회를 66ms → 35ms (약 47% 개선) 달성했다.⭐N+1 문제 발견채팅 서비스를 개발하던 중, 성능이 예상보다 느린 것을 느꼈다. 채팅방 목록과 메시지를 조회할 때 다른 기능보다 응답 시간이 긴 것을 발견했다. 문제를 정확히 파악하기 위해 QueryCountInterceptor를 구현하여 API별 쿼리 수를 측정했다.@Slf4j@Componentpublic class Quer..
목차4장. 엔티티 매핑- 객체와 테이블 매핑: @Entity, @Table- 기본키 매핑: @Id- 필드와 컬럼 매핑: @Column- 연관관계 매핑: @ManyToOne, @JoinColumn4.1 @EntityJPA를 사용해서 테이블과 매핑할 클래스는 @Entity 어노테이션을 필수로 붙여야 한다. @Entity가 붙은 클래스를 엔티티라고 부른다.파라미터가 없는 기본 생성자는 필수다. (public 또는 protected)final 클래스, enum, interface, inner 클래스에는 사용할 수 없다. 저장할 필드에 final을 사용하면 안 된다.속성기능기본값nameJPA에서 사용할 엔티티 이름을 지정한다.클래스 이름▲ @Entity 속성4.2 @Table@Table은 엔티티와 매핑할 테이블을..