ORM: 객체와 데이터를 연결하는 다리

나루·2022년 9월 14일
0

TIL

목록 보기
1/1
post-thumbnail

🚀 개요

백엔드 서버를 운용할 때, SQL문을 직접 서버에 전달하여 쿼리를 처리하더라도 당연히 문제는 없다. 쿼리문을 깔끔하게 작성할 수 있다면 오히려 권장되는 사항일지도 모른다.

그렇다면 우리는 왜 ORM을 사용하고 있는 걸까? 그것은 바로 코드에서의 객체와 DB에서의 데이터 사이의 차이를 줄이기 위해서이다.


🤔 근데 ORM이 뭔가요?

우선 용어부터 설명하고 넘어가도록 하자. ORM이란 무엇일까?

Object Relational Mapping: 객체의 관계형 맵핑

즉, 객체와 관계형 DB의 데이터를 자동으로 연결해주는 도우미라는 것이다.

조금 더 자세히 서술하자면, 사용자가 SQL문을 직접 작성하여 실행시키는 대신 객체 사이의 관계를 바탕으로 어떤 작업을 수행할 SQL문을 대신 작성해주는 도구이다.

ORM을 활용할 경우, 코드에서 활용하던 객체를 통하여 간접적으로 DB의 데이터에 접근할 수 있게 되는 것이다.

그럼 ORM에 대한 간단한 설명은 여기까지 하고, 이것이 어떠한 장점과 단점을 가지는지 알아보자.


🙆 ORM을 사용할 때의 장점

ORM을 사용할 때의 장점은 대체로 코드 내의 객체를 통하여 DB에 접근할 수 있다는 점에 기인하게 된다. 이는 아래와 같다.

  1. 직관적인 이해가 가능하다.

    사용자 입장에서 SQL문을 따로 활용할 필요 없이 기존에 사용하던 언어를 통하여 순수 객체지향적인 코드를 작성할 수 있게 되어 통일성과 생산성이 증가한다. 또한, SQL문을 활용하기 위하여 사용하던 다른 부차적인 것들을 줄일 수 있다.

  2. 재사용 및 유지보수가 편리하다.

    ORM을 통해 작성한 객체를 여러 번 사용할 수 있고, SQL문을 사용할 때보다 뭔가 수정사항이 생겼을 때 따로 고려해야 할 것들이 줄어든다.

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

    객체간의 관계를 바탕으로 ORM이 대신 SQL문을 생성해주므로, 객체의 자료형 타입과 서버에서 사용하는 언어의 다양한 기능들을 바탕으로 객체를 가공할 수 있다. 또한 DB를 관리할 때 ORM이 DB에 종속적이지 않으므로 DBMS에 대한 종속성이 더더욱 줄어들게 된다.

🙅 ORM을 사용할 때의 단점

ORM을 사용할 때의 단점은 ORM을 활용하여 모든 것을 만들수는 없다는 점에서 기인한다.

  1. ORM이 모든 것을 해결해주진 않는다.

    프로젝트가 복잡해질수록 다양한 쿼리를 사용하게 되고, 여러 복잡한 쿼리문들에서 구현 방식에 따라 속도가 저하되는 경우가 있을 수 있다. 이런 경우 쿼리를 튜닝하는 작업이 수반되는데, 이 때 순수 SQL을 사용하는 것이 더 효율적이게 된다.


⭐ 결론

ORM은 서버단에서 DB에 접근할 때 데이터를 객체로 취급시켜주어 생산성을 늘려주는 좋은 도구이다.

허나 이러한 도구를 그저 사용하는 것에 그치지 않고, 어떠한 상황에서 ORM을 활용하며 어떤 상황에서는 SQL문을 활용하는 것이 더 효율적인지 사용자가 판단할 필요가 있겠다.

profile
SMU CS '17

0개의 댓글