[Database] ORM이 뭔가요?
in Devstudy / Devstudy
![[Database] ORM이 뭔가요?](../../assets/img/thumbnail/orm.png)
Object Relational Mapping
ORM이 뭔가요?
서버(객체지향)에서는 클래스 개념을 사용하고 디비에서는 테이블 개념을 사용한다. 그렇다면 어떻게 서버에서 데이터베이스를 조작할 수 있을까?
ORM은 객체 관계에서 SQL문을 만들어내는 역할을 한다. 그래서 서버에서 데이터베이스를 다룰 수 있게 된다.
java의 JPA, Hibernate javascript의 typeORM 등이 ORM에 속한다.
장점
재사용성
ORM은 원래 객체와 독립적!으로 작성된 객체기 때문에 재사용이 가능하고 유지보수 효율이 좋다.
생산성 증가
원래는 객체 지향적 방식 + SQL 중심의 절차적, 순차적 접근 방식 의 혼합된 방식이 필요했는데 ORM을 사용해서 그럴 필요가 없고 객체 지향적 방식으로만 집중할 수 있다.
또한 ORM은 구현, 자료형 등에 있어서 데이터베이스에 종속적이지 않다. 즉, 개발자는 객체에만 집중 할 수 있고 DBMS 수정 작업 비용도 줄어들게 된다.
단점
완벽하지 않다
자주 사용하는 대형 쿼리의 경우는 직접 SQL문을 써주는게 더 빠른 경우도 있다. (다양한 join이 필요한 경우.. ORM은 기본적으로 outer join을 사용한다. 모든 정보가 있지만 가장 비효율적인!)
마치며
서버 개발 할 때 ORM을 사용할 줄 아는것은 중요하다! 하지만 그렇다고 SQL문을 모르는 건 안된다.