Data Structure & Impedance Mismatch

클린코더스 - 백명석님 강의를 보고 작성한 글입니다.


Data Structure

Class Data Structure
private 변수들 + 이를 다루는 함수들 public 변수들 + Getter/Setter
cohesive groups of variables를 조작하는 메소드 개별 변수들을 조작(Getter/Setter)
구현을 hide, abstract 구현을 노출
Tell 가능 Tell불가, Ask만 가능
  • Data Structure는 Class와 반대되는 개념으로 볼 수 있다.
  • DS는 기능의 추가에 대해서 자유롭다. 하지만 타입의 추가에 대해서는 취약함. OOP는 타입추가에 대해서 자유롭다.

Impedance Mismatch

OOP에서 RDB를 사용할 때 발생하는 일련의 개념적/기술적 어려움

  • 특히 객체나 클래스의 정의가 데이터베이스 테이블이나 관계스키마에 직접 매핑될 때 발생

DB 테이블은 DS이다.

  • data를 노출하고, 메소드는 없다.
  • 테이블은 너무 concrete해서 polymorphic(다형화)할 수 없다.
  • DB는 어떠한 객체도 포함 할 수 없다.

ORM

  • Hibernate
    • 진정한 Object-Relational Mapper는 아니다.
    • DB row와 객체간의 직접적인 매핑이 없기 때문
    • Hibernate는 DB의 DS를 메모리의 DS로 매핑한다.

0%