본문 바로가기
CS/Database

[데이터베이스] 객체관계매핑(ORM, Object-Relational Mapping)

by 테리는당근을좋아해 2020. 6. 24.

영속성(Persistence)

1) 영속성(Persistence)

- 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성

- 영속성을 갖지 않는 데이터는 단지 메모리에서만 존재하고 프로그램 종료돠 동시에 사라지게 됨

 

2) 영구적인 객체(Object Persistence)

- 메모리 상의 데이터를 파일 시스템, RDB 등을 활용해 영속성을 부여해 영구적으로 존재하는 데이터

 

3) 영속성을 부여하는 방법

(1) JDBC

(2) Persistence Framework

 

4) Persistence Layer

- 프로그램 아키텍처에서 데이터에 영속성을 부여하는 계층

 

5) Persistence Framework

- JDBC 같은 복잡한 프로그래밍 없이 간단한 작업만으로 영속성을 부여할 수 있도록 지원하는 프레임워크

 

(1) SQL Mapper

- SQL 문장으로 직접 데이터베이스를 접근

- MyBatis

 

(2) ORM

- 객체를 통해 간접적으로 데이터베이스에 접근

- Hiberate

 

 

객체관계매핑(ORM, Object-Relational Mapping)

- 객체와 테이블을 자동으로 매핑해주는 기술

- 객체지향언어에서의 클래스를, 관계형데이터베이스의 테이블을 사용하므로 불일치가 존재

- ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성해 불일치를 해결

 

1) 장점

- 객체 지향적인 코드로 인해 직관적

- 비즈니스 로직에 집중할 수 있도록 지원

- DBMS에 대한 종속성이 줄어듬

- 편리성

 

2) 단점

- DBMS 고유의 기능을 사용하기 어려움

- 프로젝트가 커질수록 난이도가 올라감

- 잘못 구현된 경우 심각한 속도 저하와 일관성을 무너뜨리는 현상이 발생

 

 

JDBC

- 자바에서 데이터베이스에 접근할 수 있도록 지원하는 자바 API

- RDB의 쿼리문을 수행하기 위해 자바로 작성된 클래스와 인터페이스

- 독립적인 인터페이스를 통해 다양한 데이터베이스에 접근하는 코드를 구현할 수 있도록 제공하는 자바 클래스의 표준

댓글