[Database] ORM

HyunDong Lee·2022년 4월 22일
0

Database

목록 보기
1/3
post-thumbnail

Persistence

  • 데이터를 생성한 프로그램이 종료되어도 영속적으로 데이터가 유지되는 특성이다.
  • 메모리 상의 데이터를 파일시스템, 관계형 데이터베이스 혹은 객체 데이터베이스 등을 활용하여 영구적으로 저장하여 영속성을 부여함.
  • Persistence Framework
    - SQL Mapper, ORM
    - JPA, Hibernate, Mybatis ..

What is ORM

Object Relational Mapping

  • 객체 - 관계형 데이터베이스의 데이터 자동 매핑해주는 것, 적은 비용과 개발의 효과가 있다.
    - 객체를 통해 간접적으로 데이터베이스 데이터 다룸.
    • 객체 지향 프로그래밍 - 클래스, 관계형 데이터베이스 - 테이블/ object -> table, table -> object conversion이 용이하다.
      - ORM을 사용하여 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치 해결
  • application tier에 객체를 캐싱함으로서 시스템 performance가 향상된다.
  • 개발자에게 database 구조를 이해하기 쉽게 제공한다.

장점

  • 생산성
    - 별도의 data-access code를 작성할 필요가 없기 때문에 개발 시간을 감소시킨다.
  • 어플리케이션 디자인
    - 잘 작성된 ORM은 Design pattern을 도입하여 application 디자인이 나올 수 있다. 예를 들어 ORM을 사용하여 data interface를 관리한다면 개발자는 완벽한 database schema를 만들 필요는 없다.
  • 코드 재사용성
  • testing 감소

단점

  • 성능이 느리다. ORM을 동작시키기 위해 별도의 코드가 필요하기 때문이다.
  • SQL에 대해 알아야한다.
  • Poor mapping
    - 간혹 table과 object간의 잘못된 매핑을 하기도 한다.
  • Schema와 Migrations에 영향을 끼친다.
    - 만약 ORM에 migrations 기능이 존재하지 않는다면 직접 migration 코드를 짜야한다.

altex soft ORM

0개의 댓글