일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Airflow
- EC2
- workflow
- 사이드 프로젝트
- CodeDeploy
- template
- immutable
- build_test
- Github
- Action
- compiler
- redis
- rds
- 토비의 스프링
- kotlin
- mutable
- AOP
- git
- aws
- JPA
- db
- java
- springboot
- 알고리즘
- string
- QueryDSL
- JUnit
- Spring
- Today
- Total
목록전체 글 (73)
개발 일기
노션으로 보시면 더욱 좋은 포맷으로 보실 수 있습니다. JPA 값 타입 👋 목차 기본값 타입 임베디드 타입(복합 값 타입) 값 타입과 불변 객체 값 타입의 비교 값 타입 컬렉션 JPA의 데이터 타입 분류 엔티티 타입 @Entity로 정의하는 객체 데이터가 변해도 식별자로 지속해서 추적 가능 예) 회원 엔티티이 키나 나이 값을 변경해도 식별자로 인식 가능 값 타입 int, Integer, String처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체 식별자가 없고 값만 있으므로 변경시 추적 불가 예) 숫자 100을 200으로 변경하면 완전히 다른 값으로 대체 값 타입 분류 기본값 타입 자바 기본 타입(int, double) 래퍼 클래스(Integer, Long) String 임베디드 타입(embedded..
노션으로 보시면 더욱 좋은 포맷으로 보실 수 있습니다. JPA 프록시와 연관관계 관리 👋 목차 프록시 즉시 로딩과 지연 로딩 지연 로딩 활용 영속성 전이: CASCADE 고아 객체 영속성 전이 + 고아 객체, 생명주기 프록시 프록시 기초 em.find() vs em.getReference() find(): 데이터베이스를 통해서 실제 엔티티 조회 em.getReference(): 데이터베이스 조회를 미루는 가짜(프록시) 엔티티 객체 조회 프록시 특징 실제 클래스를 상속 받아서 만들어짐 실제 클래스와 겉 모양이 같다. 사용하는 입장에서는 진짜 객체인지 프록시 객체인지 구분하지 않고 사용하면 됨 (이론상) 프롤시 객체는 실제 객체의 참조(target)를 보관 프록시 객체를 호출하면 프록시 객체는 실제 객체의 ..
노션을 참고하면 더욱 좋은 포맷으로 보실 수 있습니다. JPA 고급 매핑 👋 목차 상속관계 매핑 @MappedSuperclass 상속관계 매핑 관계형 데이터베이스는 상속 관계X 슈퍼 타입 서브타입 관계라는 모델링 기법이 객체 상속과 유사 상속관계 매핑: 객체의 상속과 구조와 DB의 슈퍼타입 서브타입 관계를 매핑 슈퍼 타입 서브타입 논리 모델을 실제 물리 모델로 구현하는 방법 각각 테이블로 변환 → 조인 전략 통합 테이블로 변환 → 단일 테이블 전략 서브타입 테이블로 변환 → 구현 클래스마다 테이블 전략 주요 어노테이션 @Inheritance(strategy = inheritanceType.XXX) JOINED: 조인 전략 SINGLE_TABLE: 단일 테이블 전략 TABLE_PER_CLASS: 구현 클래..
노션을 참고하면 더욱 좋은 포맷으로 보실 수 있습니다. JPA 다양한 연관관계 매핑 👋 목차 연관관계 매핑시 고려사항 3가지 다대일 [N:1] 일대다 [1:N] 일대일 [1:1] 다대다 [N:M] 연관관계 매핑 시 고려사항 3가지 다중성 다대일: @ManyToOne 일대다: @OneToMany 일대일: @OneToOne 다대다: @ManyToMany DB 와 연동하기 위한 매핑 DB 기준으로 생각해보자. 다대일 다에 외래키가 간다 클래스로 보면 class Member { ...// @ManyToOne Team team; } 가장 많이 사용하는 연관관계 다대일의 반대는 일대다 다대일 양방향 class Member { ..///code @ManyToOne Team team; } class Team { ../..