
JPA에 대해서 알기전에 기본이 되는 ORM에 대해서 알아야 한다.ORM : 객체는 객체대로 설계하고, RDB(관계형 데이터베이스)는 RDB 대로 설계한다.프레임워크로 객체와 RDB 를 중간에서 서로 매핑해주는 역할을 담당한다.대중적인 언어에는 대부분 ORM 기술이 존

엔티티(Entity)를 영구 저장하는 환경.어플리케이션과 데이터베이스 사이에서 객체를 보관하는 가상의 저장소 같은 역할.엔티티 매니저(EntityManager)를 통해 영속성 컨텍스트에 접근.EntityManager 를 통해 Entity 를 저장, 조회하면 Entity
@EntityJPA가 관리하는 클래스테이블과 매핑할 클래스기본 생성자(public, protected)를 필수로 생성해야 한다.@Table속성nameJPA에서 사용할 엔티티 이름을 지정한다.기본값 : 클래스의 이름을 그대로 사용한다.같은 클래스 이름이 없으면 가급적 기

다대일@ManyToOne속성optional : false 로 설정하면 연관된 엔티티가 항상 있어야 한다.fetch : 글로벌 페치 전략 (FetchType.Lazy)cascade : 영속성 전이targetEntity : 연관된 엔티티의 타입 정보를 저장한다. 거의 사용

즉시로딩은 엔티티를 로딩하면서 관련된 모든 엔티티를 함께 로딩 하는것지연로딩은 필요한 시점에 가져오는 것을 말한다.가급적 지연 로딩만 사용해야 한다.즉시 로딩을 적용하면 JPQL에서 N + 1 문제를 일으킨다.만약 Member가 외래키를 갖고 있는 주인이고, Membe

Gradle(build.gradle)Maven(pom.xml)@Valid 는 JSR-303 표준 스펙(자바 진영)으로써 빈 검증기(Bean Validator)를 이용해 객체의 제약 조건을 검증하도록 하는 어노테이션입니다.Spring 에서는 일종의 어댑터인 LocalVa
▶ 원자성(Atomicity) 한 트랜잭션 내에서 실행한 작업들은 하나로 간주한다. 즉, 모두 성공 또는 모두 실패. ▶ 일관성(Consistency) 트랜잭션은 일관성 있는 데이타베이스 상태를 유지한다. (data integrity 만족 등.)▶ 격리성(Isolati
스프링 부트에서 레디스를 사용하려면 build.gradle 파일에 레디스 의존성을 추가해줘야 한다.그리고 사용할 레디스의 호스트와 포트를 지정해준다. application.yml 파일에 지정하며, 로컬에서 레디스를 사용한다면 localhost, 다른 서버나 도커 등을

Persistent Connection이란 네트워크 연결에서 클라이언트와 서버 간에 지속적인 연결을 유지하는 것을 의미한다. 이 연결 방식은 일반적으로 HTTP 프로토콜에서 사용되며, HTTP/1.1 이후의 버전에서는 기본적으로 지속 연결(Persistent Conne