반응형
ORM
객체지향 프로그래밍(Object Oriented Programming)과 관계형 데이터베이스(Relational Database) 사이의 호환되지 않는 데이터를 변환하는 기술
관계형 데이터베이스의 2차원 테이블을 어플리케이션 Class에, 테이블 안에 저장된 행을 애플리케이션의 인스턴스에 각각 매핑해주는 역할
->프로그래밍 언어를 사용해서 선언한 클래스와 인스턴스를 이용해서 데이터베이스 내부 자료 속성에 접근할 수 있다.
ORM 사용의 장점
- 부수적인 코드가 사라지면서 개발의 생산성이 향상된다.
- ORM을 이용해서 문법 실수 없이 잘 짜여진 SQL 쿼리문을 사용할 수 있기 때문에 버그와 실수가 감소한다.
- 개발자 친화적인 간결하고 직관적인 코드작성이 가능하다 -> 가독성 향상
- 대부분의 ORM이 다양한 데이터베이스 시스템에 연결이 가능하기 때문에 데이터베이스 시스템이 아닌 데이터 객체에 집중해서 개발할 수 있다.
ORM 사용의 단점
- 미세한 수정이나 디버깅이 상대적으로 어려워진다.
- ORM에서 미리 선언해놓은 패턴에 따른 SQL 쿼리 명령만 사용할 수 있기 때문에 복잡한 쿼리문을 작성해야 할때 원래 의도보다 복잡한 쿼리가 만들어질 수 있다.
- DB에 직접 명령을 내리지 않고 중간단계를 한번 거치기 때문에 Raw쿼리문에 비해 실행속도가 느리다. (mysqlclient, mysql2같은 데이터베이스 드라이버를 한번 추상화하고, 이를 다시 추상화한다.)
- 내부에서 실제로 어떤 쿼리를 실행하는지 파악하기 어렵다.
- 사용하는 ORM에 따른 문법을 매번 익혀야 한다.
반응형
'기타' 카테고리의 다른 글
데이터베이스 | 트랜잭션 동시성 제어 - 락 기반 규약 (0) | 2022.11.03 |
---|---|
npm install 패키지명 "--save"를 꼭 해야할까 (0) | 2022.09.30 |
In-memory DB | Redis, Memcached (0) | 2022.09.28 |
node.js 개발툴 | nodemon으로 서버 변경사항 바로 적용하기 (0) | 2022.09.27 |
GitHub 꾸미기 | waka-box : 프로필에 코딩시간 표시하기 (0) | 2022.09.25 |