| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 이펙티브자바
- JPA
- 중간 지점 추천
- 모임 장소 추천
- 큐시즘
- 한국대학생it경영학회
- 최범균
- K3S
- 자바 ORM 표준 JPA 프로그래밍
- Spring
- kusitms
- redis
- Spring Batch
- RESTClient
- Domain Driven Design
- cicd
- 백엔드
- 불변객체
- 쿠버네티스
- 도메인 주도 개발 시작하기
- JPQL
- java
- 중간 장소 추천
- springboot
- 약속 장소 추천
- 객체지향 쿼리 언어
- 모이삼
- ddd
- GitHub Actions
- Container Registry
- Today
- Total
목록분류 전체보기 (86)
코딩은 마라톤
7.1 상속 관계 매핑 7.1.1 조인 전략 _ 각각의 테이블로 변환 엔티티 각각을 모두 테이블로 만들고 자식 테이블이 부모 테이블의 기본 키를 받아서 기본 키 + 외래 키로 사용하는 전략 조회할 때 조인을 자주 사용한다. 타입을 구분하는 컬럼을 추가해야한다. (객체는 타입으로 구분할 수 있지만 테이블은 타입의 개념이 없기 때문) // 부모 클래스 @Entity // 부모 클래스에 @Inheritance를 사용한다. // 조인 전략을 사용하므로 InheritanceType.JOINED를 사용한다. @Inheritance(strategy = InheritanceType.JOINED) // 부모 클래스에 구분 컬럼을 지정한다. // 이 컬럼(DTYPE)을 통해 저장된 자식 테이블을 구분할 수 있다. @Dis..
6.1 다대일 6.1.1 다대일 단방향 [N:1] 회원 엔티티(Member)와 팀 엔티티(Team)는 다대일 관계이다. @Entity public class Member { ... @ManyToOne @JoinColumn(name = "TEAM_ID") private Team team; ... } @Entity public class Team { ... @Id @Column(name = "TEAM_ID") private Long id; ... } 회원은 Member.team을 통해 팀 엔티티를 참조할 수 있다. 팀에는 회원을 참조하는 필드가 없기 때문에 다대일 단방향 연관관계다. 6.1.2 다대일 양방향 [N:1] @Entity public class Member { ... @ManyToOne @Join..
목표 : 객체의 참조와 테이블의 외래 키를 매핑하는 것 단방향 연관관계 회원은 하나의 팀에만 소속될 수 있다. 회원과 팀은 다대일 관계다. - 객체 연관관계 회원 객체와 팀 객체는 단방향 관계 Member.team 필드로 팀 객체와 연관관계를 맺는다. member -> team의 조회는 가능, 반대는 불가 - 테이블 연관관계 회원 테이블은 TEAM_ID 외래키로 팀 테이블과 연관관계 맺는다. 회원과 팀 테이블은 양방향 관계 (회원, 팀 둘다 조인 가능) - 객체 연관관계와 테이블 연관관계 정리 객체는 참조(주소)로 연관관계를 맺는다. 참조를 사용하는 객체의 연관관계는 단방향이다. 객체를 양방향으로 참조하려면 단방향 연관관계를 2개 만들어야 한다. 테이블은 외래 키로 연관관계를 맺는다. 외래 키를 사용하는..
@Entity 테이블과 매핑할 클래스는 필수로 붙여야 한다. 속성 기능 기본값 name JPA에서 사용할 엔티티 이름 지정 클래스 이름 주의사항 기본 생성자 필수 (@NoArgsConstructor) final 클래스, enum, interface, inner 클래스 사용 X 저장할 필드에 final 사용 X @Table 엔티티와 매핑할 테이블 지정 속성 기능 기본값 name 매핑할 테이블 이름 엔티티 이름 catalog catalog 기능이 있는 db에서 매핑 schema schema 기능이 있는 db에서 매핑 uniqueConstraints (DDL) DDL 생성 시 유니크 제약조건 생성. 2개 이상의 복합 유니크 제약 조건도 만들 수 있다. DDL을 만들 때만 사용. 데이터베이스 스키마 자동 생성 ..
엔티티 매니저 팩토리, 엔티티 매니저 엔티티 매니저 팩토리 // persistence.xml 코드의 EntityManagerFactory emf = Persistence.createEntityManagerFactory("{name}"); - 엔티티 매니저를 만드는 공장 - 공장을 만드는 비용은 상당히 크다. -> 한 개의 엔티티 매니저 팩토리를 만들어서 전체 애플리케이션에서 공유 - 여러 스레드가 동시에 접근해도 안전 -> 서로 다른 스레드 간에 공유 가능 엔티티 매니저 EntityManager em = emf.createEntityManager(); - 여러 스레드가 동시에 접근하면 동시성 문제가 발생하므로 스레드 간에 절대 공유 금지 영속성 컨텍스트 엔티티를 영구 저장하는 환경 em.persist(e..
책에 나온 설정 방법 - 이클립스 - Java 1.6 - Maven - H2 1.4.187 변경 사항 - IntelliJ 인텔리제이 - Java 11 - Gradle - H2 2.1.214 build.gradle dependencies { implementation 'org.hibernate:hibernate-entitymanager:5.6.15.Final' implementation 'org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.0.Final' runtimeOnly 'com.h2database:h2:2.1.214' /* java 11일 경우 설치 */ implementation 'javax.xml.bind:jaxb-api:2.3.0' compi..
JDBC - JDBC를 사용하여 DB에 접근할 경우, JDBC API를 사용해서 SQL을 DB에 전달한다. 1. SQL을 직접 다룰 경우 생기는 문제점 - SQL을 직접 다룰 경우, CRUD용 SQL을 반복해서 작성해야하는 비생산적인 과정을 수행해야한다. - SQL에 의존적인 개발을 하게 된다. (테이블에 컬럼을 추가시 연관된 SQL을 모두 수정해야한다.) 2. 객체지향 DB의 패러다임 불일치 - 상속 : 객체는 상속 기능 O VS 테이블은 상속 기능 X - 연관관계 : 객체는 참조를 통해 연관 객체 조회 VS 테이블은 외래키와 조인을 사용해서 조회 - 객체 그래프 탐색 : SQL을 직접 다룰 경우, SQL에 따라 객체 그래프를 어디까지 탐색할 수 있는지 정해진다. - 비교 : 동일성(==) 비교시 같..
1. 정의 동적계획법 (DP) 입력 크기가 작은 부분 문제들을 해결한 후, 해당 부분 문제의 해를 활용해서, 보다 큰 크기의 부분 문제를 해결 상향식 접근법으로, 가장 최하위 해답을 구한 후, 이를 저장하고, 해당 결과값을 이용해서 상위 문제를 풀어가는 방식 Memoization 기법을 사용함 Memoization : 프로그램 실행 시 이전 계산 값을 저장하여 다시 계산하지 않도록 하여 전체 실행 속도를 빠르게 하는 기술 분할 정복 문제를 나눌 수 없을 때까지 나누어서 각각을 풀면서 다시 합병하여 문제의 답을 얻는 알고리즘 하향식 접근법으로, 상위의 해답을 구하기 위해, 아래로 내려가면서 하위의 해답을 구하는 방식 일반적으로 재귀함수로 구현한다. 문제를 잘게 쪼갤 때, 부분 문제는 서로 중복되지 않는다...