정의
•
객체 지향 프로그래밍 언어와 관계형 데이터베이스 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법
•
관계형 데이터베이스의 테이블은 객체 지향 언어에서 클래스와 매핑되며, 테이블의 레코드는 클래스의 인스턴스나 객체에 패밍
•
ORM은 개발자가 SQL 쿼리 없이도 데이터베이스 작업을 수행할 수 있게 해줍니다.
장점
1.
생산성 향상
SQL 쿼리를 직접 작성하는 대신 고수준 언어를 사용하여 코드를 작성할 수 있습니다.
2.
유지보수 용이
데이터 모델을 변경해야 할 때 ORM 시스템은 일부 변경 사항을 자동으로 처리해주므로 유지보수 가 더 쉬워집니다.
3.
데이터베이스 독립성
ORM은 다양한 종류의 DBMS에 대한 호환성을 제곱하니다. 따라서 애플리케이션 코드 변경 없이 다른 DBMS로 전환할 수 있습니다.
단점
1.
복잡한 쿼리 작성 어려움
복잡하고 최적화된 쿼리를 작성하는 것은 종종 ORM에서 어렵거나 비효율적일 수 있습니다.
2.
애플리케이션 성능 저하
자동화된 쿼리 생성과 추가 계층 때문에 성능 저하가 발생할 가능성도 있습니다.
예시
•
Java : Hibernate
•
Python : SQL Alchemy