ORM이란?
- Object Relatinal Mapping의 약자로 객체 관계형 매핑. 객체와 RDB 테이블를 연결해주는 도구이다.
- 객체와 테이블은 둘의 호환가능성을 두고 만들어진 개념이 아니기에 ORM을 이용하여 SQL문을 자동 생성하여 연결을 돕는다. 결국 따로 SQL문을 생성할 필요가 없기에 객체를 통해 간접적으로 DB조작이 가능해진다.
- MVC 패턴에서 모델(Model) 부분을 기술하는 도구이다.
(MVC란? https://hanamon.kr/mvc%eb%9e%80-mvc-design-pattern/ )
ORM을 왜 쓰는데?
- ORM을 이용하면 DB접근을 자신이 쓰는 프로그래밍 언어의 관점에서 만들 수 있다.
- 객체 간의 관계를 바탕으로 sql문을 자동 생성하여 엔티티를 객체로 표현할 수 있다.
- 간접적으로 DB를 다룰 수 있다.
장/단점
- 장점
- SQL Query문이 아닌 메서드로 데이터를 조작할 수 있다.
- 원하는 객체로 프로그래밍 할 수 있어 코드의 가독성을 높여준다.
- SQL의 절차/순차적인 접근 대신 객체지향적인 관점만 고려하면 된다.
- ORM은 기존 객체와 독립적으로 작성되었기에 재사용/유지보수 편리성이 증가한다.
- DBMS에 쓰는 시간을 줄여준다.
- 단점
- ORM은 편리하지만 프로젝트의 복잡성이 커질수록 난이도가 높아진다. 또한 부족한 설계로 속도 저하나 일관성을 무너뜨리는 문제를 야기할 수 있다.
- 객체와 RDB 테이블의 관계를 연결시켜줬다고 하지만 간격을 좁힌 것일 뿐 일치하지는 않는다.
- 문제가 발생했을 때, 어디서 일어난 것인지 찾기 힘들다.(DB는 불타고 있는데 ORM은 방관잼...그리고 나는 쿼리문을 모르니깐...)
'back-front end' 카테고리의 다른 글
[항해99] require() (0) | 2022.07.30 |
---|---|
[항해99] Express.js의 미들웨어 (0) | 2022.07.30 |
[항해 99] Javascript의 특성 (0) | 2022.07.18 |
세션, JWT토큰 - 쿠키 (까먹을 때 보면 좋은 글) (0) | 2022.07.15 |
[Chapter 1] E-3조 S.A(Starting Assignment) (0) | 2022.07.11 |
댓글