ORM이란?
Object-Relational Mapping
객체와 관계형 데이터베이스 간의 데이터를 변환 및 상호 작용하는 기술 또는 도구
관계형 데이터베이스는 테이블 형태로 데이터를 저장하고 관리하는 반면, 타입스크립트와 같은 객체 지향 프로그래밍 언어는 객체 형태로 데이터를 다룬다.
ORM은 이러한 두 가지 다른 데이터 모델 간의 간극을 극복하여 객체와 데이터베이스 사이의 변환을 자동화해준다.
- 데이터베이스의 테이블과 행을 객체로 매핑하고, 객체를 데이터베이스의 테이블과 행으로 저장, 검색, 수정, 삭제할 수 있게 도와준다.
장점
- SQL 쿼리를 작성하지 않아도 되기 때문에 개발 생산성이 향산된다.
- 대부분의 개발자들이 이해하기 쉽고 가독성이 높다.
- 데이터베이스 스키마 변경 시 ORM 라이브러리가 자동으로 매핑을 처리하므로, 코드 수정이 줄어들어 유지 보수가 용이하다.
- ORM은 여러 데이터베이스 시스템을 지원하여 데이터베이스의 독립성을 제공한다. 프로젝트를 다른 데이터베이스로 전환하는 경우, ORM 설정만 변경하면 되므로 유용하다.
단점
- 일부 복잡한 쿼리와 데이터베이스 조인 작업에서는 직접 SQL쿼리를 작성하는게 ORM보다 빠를 수 있다. 특히 대량의 데이터 처리와 최적화된 쿼리가 필요한 경우에는 ORM의 성능이 떨어질 수 있다.
- 특정 상황에서 ORM으로는 복잡한 쿼리를 구현하기 어려울 수 있다.