: 객체 지향 패러다임을 사용하여 데이터베이스에서 데이터를 쿼리하고 조작할 수 있는 기술
: ORM 라이브러리는 데이터를 조작하는 데 필요한 코드를 캡슐화하는 선택한 언어로 작성된 완전히 일반적인 라이브러리이므로 더 이상 SQL을 사용하지 않음.
: 사용 중인 프로그래밍 언어로 개체와 직접 상호 작용
예를 들어, 책 클래스가 있고 저자가 "Linus"인 모든 책을 검색하고자 할때 수동으로 다음과 같이 할 수 있음
book_list = new List();
sql = "SELECT book FROM library WHERE author = 'Linus'";
data = query(sql); // I over simplify ...
while (row = data.next())
{
book = new Book();
book.setAuthor(row.get('author');
book_list.add(book);
}
Java
복사
: ORM 라이브러리를 사용하면 다음과 같이 표시
book_list = BookTable.query(author="Linus");
Java
복사
: ORM 라이브러리를 통해 자동으로 처리
장점과 단점
ORM을 사용하면 다음과 같은 이유로 많은 시간이 절약
•
DRY : 데이터 모델을 한 곳에만 작성하면 코드를 업데이트, 유지 관리 및 재사용하기 용이
•
데이터베이스 처리에서 I18N에 이르기까지 많은 작업이 자동으로 수행
•
MVC 코드를 작성하도록 강제하므로 결국 코드가 좀 더 깔끔해집니다.
•
잘못된 형식의 SQL을 작성할 필요가 없음
•
준비된 문이나 트랜잭션을 사용하는 것은 메서드를 호출하는 것만큼 쉽다
다음과 같은 이유로 ORM 라이브러리를 사용하는 것이 더 유연합니다.
•
무엇보다 프로그래밍 언어로 제공됨
•
DB 시스템을 추상화하므로 원할 때마다 변경 가능
•
모델은 애플리케이션의 나머지 부분에 약하게 바인딩되어 있으므로 변경하거나 다른 곳에서 사용 가능
•
데이터 상속과 같은 OOP 장점을 사용할 수 있습니다.
단점
•
배울 것이 아주 많다.
•
직접 설정해주어야 하는 부분이 많다.
•
일반적인 쿼리에 대해서는 성능이 괜찮지만 대규모 프로젝트에 대해 네이티브 쿼리의 성능이 더 낫다.
•
DB를 추상화하므로 전체적인 흐름을 잘 이해하고 있어야 한다