본문 바로가기

슈퍼타입2

객체지향의 사실과 오해 - 타입과 추상화 - 이 글은 조영호의 객체지향의 사실과 오해를 기반으로 작성되었습니다. (가능하면 꼭 읽어보는것을 추천드립니다.) - Javascript 프로토타입 상속: https://developer.mozilla.org/ko/docs/Web/JavaScript/Inheritance_and_the_prototype_chain - 추상화와 복잡성 초기의 지하철 노선도는 실제 지형을 참조한 곡선의 경로와 역간의 위치 거리 등의 정보를 충실하게 반영했었다. 하지만 현재 노선도는 직선 형태이며 역간의 거리도 실제 거리와는 무관하다. 그럼에도 목적지까지 이동하는데 불편함이 없다. 추상화의 본질은 사용자의 목적을 달성할 수만 있다면 복잡한 정보를 제거함으로써 본질을 드러내게 하는것이다. 복잡성을 다루기 위해 추상화는 두 가지 .. 2021. 8. 12.
JPA - 고급맵핑 - 슈퍼타입과 서브타입 - 참조: 자바 ORM 표준 JPA 프로그래밍 - 상속 관계 맵핑 관계형 DB(RDB) 는 상속이라는 개념이 없다. 대신 슈퍼타입과 서브타입이라는 유사한 기법이 존재한다. 그래서 ORM 의 상속관계맵핑이라고 하면 객체의 상속과 슈퍼타입 서브타입의 관계를 맵핑하는것을 말한다. 맵핑방법은 아래와 같이 3 가지 방법이 있다. 각각의 테이블 변환: 공통된 속성을 부모 테이블로 두고 달라지는속성을 모두 하위 테이블로 만들어서 조회시 조인을 사용한다. JPA 에서는 조인전략(JOINED)이라고 한다. 통합 테이블로 변환: 테이블을 하나만 사용하여 통합한다. JPA 에서는 단일 테이블 전략(SINGLE_TABLE)이라고 한다. 서브타입 테이블로 변환: 모든 속성을 서브타입마다 하나의 테이블에 둔다. JPA 에서는 구.. 2021. 7. 10.