전체 글(145)
-
9. 값 타입
1. 값 타입1) 엔티티 타입 vs 값 타입구분엔티티 타입값 타입정의 방식@Entity로 정의되는 클래스엔티티가 아닌, 순수한 값만을 표현하는 타입식별 방법 ID와 같은 식별자 내부 값 자체로 판단 (식별자 없음)변경 추적O ID 기준으로 동일 객체로 추적 가능X 값이 바뀌면 다른 값으로 간주됨변경 예시이름 바뀌어도 ID가 같으면 동일 엔티티100 → 200으로 바뀌면 완전히 다른 값으로 인식생명 주기독립적으로 존재항상 엔티티에 종속됨사용 위치 서로 다른 객체 간의 관계 예: 회원 - 팀엔티티 내부 필드로 포함되는 정보예: 이름(String), 나이(int), 금액(BigDecimal) 등공유 여부공유 가능, 의도된 공유 공유하면 위험 (객체 참조가 아닌 값을 복사해서 사용해야 안전)공유 시 하나의 값 ..
2025.06.19 -
8. 프록시와 연관관계 관리
1. 프록시1) 조회시 비효율적인 상황 생각해보기 public void printUser(String memberId) { Member member = em.find(Member.class, memberId); System.out.println("회원 이름: " + member.getUsername()); //멤버 정보만 사용함 }Member와 Team이 연관관계를 맺고 있을 때단순히 Member 정보만 필요한데도 연관된 Team까지 항상 같이 조회된다면불필요한 쿼리 실행과 리소스 낭비가 발생한다. 이러한 비효율을 줄이기 위해 사용하는 것이바로 프록시(Proxy)를 이용한 지연 로딩(LAZY Loading)이다.2) em.find()와 em.getReference() 차이 메서드동작특징em...
2025.06.18 -
7. 상속관계 매핑
1. 상속관계 매핑1) 개념관계형 데이터베이스는 객체의 상속 개념이 없음.대신 슈퍼타입-서브타입 관계라는 모델링 기법을 통해 객체 상속과 유사하게 표현.JPA에서는 객체의 상속 구조를 DB의 슈퍼타입-서브타입 관계로 매핑하는 것을 상속관계 매핑이라 함설정해놓은 상속관계 매핑 구현 전략에 따라 JPA가 알아서 테이블 생성 및 데이터 추가, 수정, 삭제 쿼리를 작성해준다. 2) 구현 전략 3가지 1. 각각 테이블로 변환 → 조인 전략 (JOINED)2. 단일 테이블 전략 (SINGLE_TABLE)3. 구현 클래스마다 테이블 생성 전략 (TABLE_PER_CLASS)3) 주요 어노테이션@Inheritance(strategy = InheritanceType.XXX)JOINED: 조인 전략SINGLE_TABLE..
2025.06.16 -
6. 연관관계 매핑 - 다중성
1. 다대일 연관관계 [@ManyToOne]1) 다대일 단방향 @Entitypublic class Member { @ManyToOne @JoinColumn(name = "TEAM_ID") // Member 테이블에 있는 외래키 "TEAM_ID"를 Member.team 필드로 관리 private Team team;}2) 다대일 양방향@Entitypublic class Member { @ManyToOne @JoinColumn(name = "TEAM_ID") private Team team;}@Entitypublic class Team { @OneToMany(mappedBy = "team") private List members = new ArrayList();..
2025.06.16 -
5. 연관관계 매핑 - 단방향, 양방향 연관관계
1. 연관관계 매핑 기초 개요1) 연관관계 매핑의 목표객체와 테이블의 연관관계 차이 이해객체의 참조와 테이블의 외래 키 매핑 방식 학습주요 용어방향(Direction): 단방향, 양방향다중성(Multiplicity): N:1, 1:N, 1:1, N:M연관관계의 주인(Owner): 양방향일 경우 외래 키 관리 주체 설정 필요2) 연관관계가 필요한 이유객체와 테이블의 차이객체: 참조를 사용해서 연관 객체를 찾음테이블은 외래 키로 조인을 사용해서 연관된 테이블을 찾음 두 패러다임 사이에는 큰 간격이 있다 객체지향의 목표는 자율적인 객체들의 협력 구조이러한 객체들의 협력 관계를 표현하려면 연관관계 매핑이 필수연관관계가 없는 데이터 중심 모델링은 참조 대신 외래 키만 저장 (teamId)따라서 객체 간 탐색이나 ..
2025.06.15 -
4. 엔티티 매핑
[목차]1. 엔티티 매핑 개요 1) 정의 2) 대표 어노테이션 2. 객체-테이블 매핑 1) @Entity 3) @Table 3. 데이터베이스 스키마 자동 생성 1) 기능 설명 2) 설정 옵션 3) 권장 사용 환경 4. 필드-컬럼 매핑 1) @Column 속성 정리 2) @Enumerated 3) @Temporal 4) @Lob 5) @Transient 5. 기본 키 매핑 5-1. 기본 키 매핑 방법 5-2. @GeneratedValue의 전략(strategy)별 비교 1) IDENTITY 전략 2) SEQUENCE 전략 3) TABLE 전략 4) 왜 allocationSize 기본값이 50일까? 5-3. 권장하는 식별자 전략 6..
2025.06.12