SQL ORM(Object Relational Mapping)
ORM이란?
객체지향언어에서 db에 접근하거나 사용할때 그 객체지향언어처럼 코드를 짜고 db에 직접적으로 적용할 수 있게끔 매핑해주는 것입니다.
객체 지향 프로그래밍언어(OOP)는 클래스라는 개념이 있고, RDBMS에는 테이블이라는 개념이 있습니다.
OOP를 사용해서 작성된 클라이언트 프로그램이 압도적으로 많습니다. OOP를 사용하는데 제약을 받지 않고, RDBMS를 이용하기 위한 프레임워크로 이해하면 됩니다.
예를 들면, 클래스로 스키마(Schema)를 매핑하고, 메소드(Method)로 쿼리(Query)를 작성하면, 객체로 이루어진 테이블을 가져올 수 있습니다.
ORM 장, 단점
장점
- 별도 SQL을 사용하지 않고 OOP언어 그대로를 사용할 수 있습니다.
- DB에 종속적이 아니라 애플리케이션에서 설계한 데이터모델이기 때문에 database와 상관없이 데이터모델을 통해 타dbms에도 호환성을 유지할 수 있습니다.
단점
- 직접 SQL을 사용하는 것보다 복잡할 수 있습니다.(자동으로 생성되는 쿼리 때문)
- 속도나 생산성이 저하될 수 있습니다.
ORM액세스용 드라이버(for MS SQL Server)
C# | Entity Framework Core |
---|---|
Java | Hidernate ORM |
PHP | Elpquent ORM, Laravel 설치에 포함되어 있습니다. |
Node.js | Sequelize ORM |
Python | Django |
Ruby | Ruby on Rails |