728x90

2021/11/17 2

Kotlin JPA - 상속 관계 맵핑

RDB 에서는 데이터들간의 연관관계는 있지만, 상속관계는 존재하지 않는다. 하지만 우리는 객체지향적으로 프로그래밍을 해야할때 상속이 필요할때가 있는데 JPA 에서는 이를 상속관계맵핑을 통해 지원한다. 이는 슈퍼타입 서브타입 논리 모델을 통해 실제 모델을 상속관계를 구성할 수 있는데 말이 어려우니 그림을 보자. 우리가 이런식으로 슈퍼타입 서브타입 모델을 실제 물리 모델인 테이블로 구현하기 위한 전략이 필요하다. 즉 쉽게 말해서 Album, Movie, Book 이 Item 을 상속받고 있는데 이것들을 어떻게 실제 물리 모델로 구현하냐이다. 조인전략 첫번째로는 조인 전략이 있다. 뭐 기존 RDB 를 엔티티로 가져오듯, 전부 Entity 각각으로 만들고 Entity 당 Table 을 만든다. 즉 Album, ..

Kotlin 2021.11.17

컴포넌트

컴포넌트는 배포 단위다. 자바의 경우 .jar 파일이 컴포넌트가 되고, 루비의 경우 gem 파일이 컴포넌트가 된다. 개발 초창기에는 프로그래머가 메모리에서 프로그램이 어느 곳에 위치할지 정의해야 했다. 아래의 코드를 간단하게 보자. *200 TLS START, CLA TAD BUFR 위에서 설명한대로 예전에는 프로그래머가 메모리에 어느 곳에 위치할지 적어줘야 하므로 Origin 이 필요했다. 프로그램 시작부의 *200 을 주목해보자. 과연 어떤 의미일까? 이는 메모리 주소 200에 로드할 코드를 생성하라고 알려주는 것이다. 내 단순한 추측인데 메모리의 코드영역이 이 영역이 아닐까? 라는 생각이 들게 되었다. 여하튼 현재 우리는 이런 고민을 할 필요가 없었지만, 그 당시에는 아주 큰 고민이였다. 왜냐하면 ..

Architecture 2021.11.17
728x90