영속성이란?

데이터를 생성한 프로그램이 종료되더라도 사라지지 않는 데이터의 특성을 말합니다.

영속성을 갖지 않는 데이터는 단지 메모리에서만 존재하기 때문에 프로그램을 종료하면 모두 사라집니다.

 

그렇기에 우리는 관계형 DB, 객체 DB 등을 활용하여 데이터에 영구적으로 영속성을 부여합니다.

 

정의 :

ORM(Object-Relational Mapping)은 객체(클래스)와 관계(DB)와의 설정을 의미합니다.

객체 지향 프로그래밍은 클래스를 사용하고 관계형 데이터 베이스는 테이블을 사용합니다.

여기서 객체 모델과 관계형 모델간에 불일치가 존재하는데 이 객체간의 관계를 바탕을 ㅗSQL을 자동 생성하여 불일치를 해결하는 것이 ORM입니다.

 

쉽게 말해서

Object -> 매핑 -> DB데이터

여기서 매핑을 하는것이 ORM입니다.

 

장점 : 

객체 지향적인 코드로 인해 더 직관적이고, 비즈니스 로직에 더 집중할 수 있게 도와줍니다.

 

재사용성 및 유지보수의 편리성이 증가합니다.

 

DBMS에 대한 종속성이 줄어듭니다.

 

단점 : 

완벽한 ORM으로만 서비스를 구현하기가 어렵습니다

 

프로시저가 많은 시스템에서는 ORM의 객체 지향적인 장점을 활용하기 어렵습니다.

 

ORM 프레임워크들 : 

 

JPA/Hibernate 

Sequelize
Django ORM


참조

https://velog.io/@dnjscksdn98/Database-ORM%EC%9D%B4%EB%9E%80

 

https://geonlee.tistory.com/207

 

https://gmlwjd9405.github.io/2019/02/01/orm.html

 

https://velog.io/@alskt0419/ORM%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C...-iek4f0o3fg

 

 

'개발합시다. > BackEnd 공부' 카테고리의 다른 글

트랜잭션(Transaction)이란?  (0) 2021.08.18
마이그레이션이란  (0) 2021.08.18
PostgreSQL이란?  (0) 2021.08.17
운영체제 메모리 관리란?  (0) 2021.08.16
스레드와 동시성  (0) 2021.08.16

+ Recent posts