ioh's Development

  • 홈
  • 태그
  • 방명록

2025/10/10 1

JPA 일대다 단방향 매핑의 함정과 @MapsId를 활용한 해결

들어가며회원 관리 시스템을 개발하던 중, 회원(Member)과 회원 상세 정보(MemberDetail)를 일대다(1:N) 관계로 설계해야 하는 요구사항이 있었다. 한 회원이 전화번호, 주소, SNS 계정 등 여러 타입의 상세 정보를 가질 수 있어야 했기 때문이다.초기에는 간단하게 일대다 단방향 매핑으로 구현했는데, 이게 생각보다 큰 성능 문제를 일으켰다. 100명의 회원을 등록하는 배치 작업에서 쿼리가 200개나 발생하는 것을 발견했다. INSERT 쿼리 100개는 이해가 되는데, 그 뒤에 UPDATE 쿼리가 또 100개씩 따라붙는 것이다.이 문제를 해결하는 과정에서 @MapsId라는 생소한 어노테이션을 만났고, 그 과정을 공유하고자 한다.문제 상황: 불필요한 UPDATE 쿼리비즈니스 요구사항과 테이블 ..

백엔드 프레임워크/JPA & Mybatis 2025.10.10
이전
1
다음
더보기
프로필사진

ioh's Development

"코드는 나의 언어, 디버깅은 나의 모험!" 배움은 기록에서, 성장은 도전에서 시작됩니다. 이 블로그는 개발 여정을 기록하고, 성장의 발자취를 남기는 공간입니다. 삽질도 성공도 모두 소중한 경험으로, 개발의 미로를 탐험하며 얻은 보물들을 공유합니다. 다양한 관심사와 배운 것들, 그리고 주니어 개발자로서의 고민과 성장을 담아내는 블로그. develop-tracking에서 함께 여정을 이어가요!

  • 분류 전체보기 (165) N
    • 아키텍처 (2)
    • AWS 및 클라우드 인프라 (0)
    • 운영 (13)
      • 웹 애플리케이션 서버 (Web Applicatio.. (1)
      • Kafka & MQ (3)
      • 로깅 및 모니터링 (0)
    • 프로그래밍 언어 (17)
      • Java (14)
      • Kotlin (3)
    • 알고리즘 & 자료구조 (9)
      • 자료구조 (Data Structures) (1)
      • 코딩테스트 준비 (39)
      • 스터디 (Algorithm Study) (36)
    • 백엔드 프레임워크 (12) N
      • SpringBoot (2)
      • Spring Framework (2)
      • JPA & Mybatis (4) N
    • 데이터베이스 (10)
      • RDBMS (관계형 데이터베이스) (1)
      • NoSQL (1)
      • Elasticsearch (3)
    • Network (10)
    • CICD 및 버전 관리 (2)
      • CICD (2)
      • 버전 관리 (0)
    • React (3)
    • 도서 (3)
      • 수학리부트 (2)
      • 알고리즘 (1)
      • 리액트 교과서 (0)
      • 디자인 패턴의 아름다움 (0)
    • 개발환경 (1)
      • Dev Setup (1)
      • IDE 및 개발 도구 (0)
      • 프로젝트 관리 도구 (0)
    • 오픈소스 기여 (1)
    • 자격증 (2)
      • 정보처리기사 (1)
    • 스터디 (1)

Tag

til, 항해, 개발자스터디, 프로그래머스, 정보처리기사, Java 성능 튜닝, Queue, 오픈소스기여모임, 네트워크, 자료구조, 정렬, 알고리즘, 코딩테스트, 리눅스마스터자격증, 99일지, 99클럽, BFS, heap, java, dfs,

최근글과 인기글

  • 최근글
  • 인기글

공지사항

Calendar

«   2025/10   »
일 월 화 수 목 금 토
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

Copyright © Kakao Corp. All rights reserved.

  • My Github

티스토리툴바