1. ORM(Object Relational Mapping)
객체와 관계형 DB를 자동으로 매핑해주는 것으로 객체와 관계(RDB)를 매핑해 주는 것을 말한다.
객체지향은 클래스를 관계형 DB는 테이블을 사용한다. 객체와 관계형 DB의 불일치가 존재하는데 이 때 ORM을 통해 객체간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다.
즉, ORM을 사용하면 SQL문을 작성할 필요없이 객체를 통해 간접적으로 데이터베이스를 조작할 수 있게된다.
1) 장점
- 객체지향적인 코드
ORM을 이용하면 SQL문이 아닌 클래스의 메서드를 통해 데이터베이스를 조작할 수 있어, 개발자가 객체 모델만 이용하여 프로그래밍 하는 데 집중 할 수 있다.
SQL문을 사용하며 같이 필요한 선언문, 할당, 종료 등 부수적 코드가 사라지거나 줄어들어 가독성을 높일 수 있다. - 재사용, 유지보스 리팩토링 용이
객체로 작성되어있기 때문에 재활용 할 수 있고, 매핑하는 정보가 명확하기 때문에 ERD를 보는 의존도를 낮출 수 있다. - DBMS 종속성 하락
객체 간의 관계를 바탕으로 SQL을 자동을 생성하고, 객체의 자료형 타입까지 사용할 수 있어 RDBMS의 데이터 구조와 모델(객체) 사이의 간격을 좁힐 수 있다.
2) 단점
- ORM을 사용하는 데는 한계가 있다.
프로젝트 복잡성이 커질 수록 난이도가 올라가고 잘못된 구현은 속도저하 및 일관성을 무너뜨리는 문제를 발생시킬 수 있다. 또한, 대형 SQL문은 속도를 위해 별도의 튜닝이 필요하여 결국 SQL문이 필요할 수 있다.
3) 대표적인 ORM
- JPA/Hibernate ( JAVA ORM 기술 표준 인터페이스 )
- Sequelize(Node.js의 비동기 ORM)
- Django ORM
참고
https://geonlee.tistory.com/207
'ComputerScience > Database' 카테고리의 다른 글
[Database] 일반상식 (0) | 2021.06.23 |
---|---|
[Database] InnoDB (0) | 2021.06.22 |
[DataBase] 6. 조인(JOIN) (0) | 2021.06.03 |
[DataBase] 5. 파티셔닝/ 샤딩 (0) | 2021.06.03 |
[DataBase] 4. 정규화 (0) | 2021.06.03 |
댓글