JPA 5

정해랑·2024년 4월 9일
  1. 임베디드 타입
  • 새로운 값 타입을 직접 정의할 수 있다
  • JPA는 임베디드 타입(embedded type) 이라고 함
  • 주로 기본 값 타입을 모아서 만들어서 복합 값 타입이라고 한다
  • int , String 과 같은 값 타입
  1. JPA에서 임베디드 타입 사용범
  • @Embeddable : 값 타입을 정의하는 곳에 표시
  • @Embedded : 값 타입을 사용하는 곳에 표시
  • 기본 생성자 필수
  • @Embeddable 이나 @Embedded 둘 중 하나만 작성해도 기능은 되나, 둘다 넣는 것을 권장한다.
  1. 임베디드 타입의 장점
  • 재사용
  • 높은 응집도
  • 객체지향적인 설계가 가능하다
  1. 값 타입 공유 참조
  • 임베디드 타입 같은 값 타입을 여러 엔티티에서 공유하면 위험하다
  • side effect(부작용)이 발생할 수 있다.
  1. application.yml
  • 한 눈에 보기에도 가독성이 좋다
  • 불필요한 코드의 반복을 피할 수 있다
  • 계층 구조로 이해하기 쉽고 쓰기 편하다
  1. Enumeration
  • 데이터 중에는 요일(월,화,수,목,금,토,일), 계절(봄,여름,가을,겨울) 등과 같이 몇 가지 한정된 값을 갖는 경우가 흔히 있다. 한정된 데이터만을 가지는 타입을 Enumeration Type 이라고 한다. 이것은 열거 타입이라고 한다. 그리고열거 타입에 들어가는 값을 열거 상수 라고한다.
  • 연관된 상수들을 하나의 타입으로 지정할 수 있도록 하는 클래스
  • 서로 관련있는 상수들을 모아서 하나의 자료형으로 선언함
  • 열거형으로 선언된 순서에 따라 0부터 index값을 가지며, 1씩 증가한다
  • enum 열거형으로 지정할 상수들은 전부 대문자로 선언
  • 열거형 상수들은 선언한 뒤에 세미콜론(;)을 작성하지 않음 상수("문자열:") 등 상수와 다른 값을 연결하는 경우에는 ; 작성
  • 다른 클래스와 마찬가지로 다른 파일, 클래스 안, 클래스 밖에 선언가능.

6-1. Enum과 메모리 구조

  • java에서 열거 상수는 상수 각각을 내부적으로 public static final 필드이면서 객체로 제공되도록 한다.
  • static이 붙어있기 때문에 각각의 상수는 클래스 변수로 클래스로더가 로드 시점에 JVM Method 영역에 해당 클래스 변수를 로드 - > 고정 메모리 영역

6-2. 열거 상수를 다른 값과 연결하기

  • 열거 상수 각각이 열거 객체이므로 열거 객체에 생성자를 사용해서 다음과 같이 열거 상수에 다른 값을 할당할 수 있다.
  • 상수("연결문자"), 상수(값)과 같은 형태로 작성
  • 상수들은 열거한 끝에; 작성
  • 해당 자료형에 맞는 private 생성자 필요
  • 연결한 값을 반환해줄 getter 메서드 필요
  1. 로그 레벨
  • trace, debug, info, warn, error

0개의 댓글