ORM 이란?

hahaha·2021년 10월 18일
0

TypeORM

목록 보기
2/4

ORM(Object Relational Mapping)

  • 객체와 관계형 데이터베이스 간의 매핑
  • 객체 지향 프로그래밍 -> 클래스
  • 관계형 데이터베이스 -> 테이블
    -> 객체 / 관계형 모델 간의 불일치 존재
    => ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치 해결

영속성 (Persistence)

  • 프로그램이 종료되더라도 사라지지 않는 데이터의 특성
  • 메모리 상의 데이터를 파일 시스템 or DB등을 활용해 영구적으로 저장하여 영속성을 부여

Persistence Framework

  1. SQL Mapper
    • SQL 직접 작성
    • Spring JDBC, MyBatis, etc.
  2. ORM
    • SQL 자동 생성
    • JPA(Hibernate), Sequelize, Prisma, Django, Ruby On Rails etc.

장단점

장점

  • 객체 지향적인 코드 작성 가능
  • DBMS에 대한 종속성을 줄일 수 있다.
  • 재사용, 유지보수, 리팩토링 용이

단점

  • ORM이 모든 걸 해결하지 않기에 결국 SQL문을 써야하는 경우가 생긴다.
  • 객체 - 관계 간의 불일치
    1. 세분성(Granularity)
    2. 상속(Inheritance)
    3. 일치(Identity)
    4. 연관성(Associations)
    5. 탐색(Navigation)
profile
junior backend-developer 👶💻

0개의 댓글