데이터베이스 설계 및 구축 1
데이터베이스 설계 및 구축(1-3장) 데이터베이스의 역사 초기에는 파일 개념으로 자료를 저장했다. 그러나 이 시스템에는 다음과 같은 문제가 있다. 데이터 종속성 데이터를 사용하는 프로그램의 구조가 데이터 구조(파일 구조)의 영향을 받는다는 것이다. 파일의 정보가 바뀌면, 이용하는 모든 프로그램도 바뀌어야 한다. 데이터 중복성 같은 내용의 데...
데이터베이스 설계 및 구축(1-3장) 데이터베이스의 역사 초기에는 파일 개념으로 자료를 저장했다. 그러나 이 시스템에는 다음과 같은 문제가 있다. 데이터 종속성 데이터를 사용하는 프로그램의 구조가 데이터 구조(파일 구조)의 영향을 받는다는 것이다. 파일의 정보가 바뀌면, 이용하는 모든 프로그램도 바뀌어야 한다. 데이터 중복성 같은 내용의 데...
JPA에서 엔티티의 영속화(Persistence) 단계 엔티티의 생명주기 JPA에서 엔티티는 총 4가지 상태를 가집니다. New/Transient(비영속): 영속화되지 않은 상태로, 데이터베이스에 저장되지 않은 객체입니다. Persistent/Managed(영속): 영속 컨텍스트에 관리되는 상태로, 데이터베이스에 저장되었거나 저장될 예정...
자동으로 rebase 하는 pipeline 구축하기 모든 opened Merge Request 에 대해서 다른 merge request 로 인해서 target branch 의 변경사항이 생기는 경우, rebase 해주는 작업을 자동화했습니다. 시작점 새로운 기능의 개발을 위해서는 feature-v2 브랜치를 사용하고, 기존 이슈 대응은 maste...
JPA 의 영속성 컨텍스트와 엔티티 동등성 의문의 시작은 JPA 에서 JPQL 을 활용하여 엔티티를 조회한 결과보다 영속성 컨텍스트에 존재하는 값을 우선해서 반환한다는 점이었습니다. @Test public void JPQL_영속성_컨텍스트_JPQL업데이트() { em.clear(); Item found...
RDB 와 대리키 JPA 를 쓰다보면 습관처럼 다음과 같은 코드를 작성하고는 합니다. @Id @GeneratedValue private Long id; 어떤 엔티티에 대한 식별자(PK) 로 대리키를 생성해서 사용하는 전략입니다. 그러면 왜 엔티티가 기본으로 가지고 있는 키를 사용하는 것이 아니라 대리키의 사용을 권장할까요? RDB 내의 키...
JPA 와 proxy JPA 에서 연관관계에 있는 객체를 가져올 때, Lazy 로 설정을 하면 해당 엔티티를 프록시 객체로 가져옵니다. @Entity public class Member { @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name= "TEAM_ID") private Team team;...
JPA 와 엔티티 데이터 명시되지 않은 @Access JPA 가 엔티티 데이터에 접근하는 방식을 지정하기 위해서는 @Access 를 사용할 수 있습니다. Access 어노테이션에는 두 가지 옵션이 있는데, 필드 접근을 위한 FIELD 와 프로퍼티 접근을 위한 PROPERTY 가 있습니다. @Access 를 명시적으로 사용하지 않는 경우엔, ID ...
자바 ORM 표준 JPA 프로그래밍6 김영한 지음 JPA 에서 교과서로 유명한 책을 읽고 일부 부분을 메모해봤습니다. 15장 고급 주제와 성능 최적화 예외 처리 JPA 표준 예외들은 javax.persistence.PersistenceException 의 자식 클래스다. 이 예외 클래스는 RuntimeException 의 자식이다. 따...
자바 ORM 표준 JPA 프로그래밍5 김영한 지음 JPA 에서 교과서로 유명한 책을 읽고 일부 부분을 메모해봤습니다. 13장 웹 애플리케이션과 영속성 관리 스프링 컨테이너 기본 전략 트랜잭션 범위의 영속성 컨텍스트 전략을 기본으로 사용한다. 트랜잭션이 시작할 때 영석송 컨텍스트를 생성하고 트랜잭션이 끝날 때 영속성 컨텍스트를 종료한다....
Kubernetes k3 k3 설치 curl -sfl https://get.k3s.io | sh -s - --docker -disable=traefix --write-kubeconfig-mode=644 쿠버네티스는 컨테이너로 애플리케이션을 실행합니다. 모든 컨테이너는 파드에 속합니다. 쿠버네티스는 컨테이너를 또 다른 가상 환경인 파드로 감...