ORM이란 무엇인가요?

  • ORM(Object Relational Mapping)

  • 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해 주는 것을 말한다.

  • 객체 지향 프로그래밍은 클래스(객체)를 사용하고, 관계형 데이터베이스에서는 테이블을 사용한다.

  • 이때 객체 모델과 관계형 모델 간의 불일치가 존재한다.

  • ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결해준다.

ORM 장점

  • SQL을 직접 작성하지 않고 사용하는 언어로 데이터베이스에 접근할 수 있다.

  • 객체지향적으로 코드를 작성할 수 있기 때문에 더 직관적이고, 비즈니스 로직에 더 집중할 수 있다.

  • 재사용성 및 유지보수의 편리성이 증가한다.

    • 매핑하는 정보가 명확하기 때문에 ERD에 대한 의존도를 낮출 수 있다.

  • DBMS에 대한 종속성이 줄어든다.

    • 데이터베이스 시스템이 추상화 되어 있기 때문에 MySQL에서 PostgreSQL로 전환한다고 해도 추가로 드는 작업이 거의 없다.

ORM 단점

  • 완벽한 ORM 으로만 서비스를 구현하기가 어렵다.

  • 프로젝트의 복잡성이 커질수록 사용 난이도도 올라간다.

  • 복잡하고 무거운 쿼리는 ORM으로 해결이 불가능한 경우가 있다.

참고

Last updated