ORM의 개념과 종류, 활용 방안
ORM의 개념 #
- ORM Object Relational Mapping은 객체로 연결을 해준다는 의미로, 어플리케이션과 데이터베이스 연결 시 SQL 언어가 아닌 어플리케이션 개발 언어로 데이터베이스를 접근할 수 있게 해주는 툴이다.
- ORM은 SQL문법 대신 어플리케이션의 개발 언어를 그대로 사용할 수 있게 함으로써, 개발 언어의 일관성과 가독성을 높여준다.
ORM의 활용 방향 #
ORM은 백엔드 개발에 있어 개발언어의 일관성과 가독성을 높여주는 강력한 장점이 있다.
다만, ORM만으로는 SQL의 모든 부분을 다루기가 어렵기 때문에 백엔드 개발 시 SQL 쿼리에 대한 지식과 경험이 바탕이되어야 더 효과적인 백엔드 개발이 가능하다는점을 염두해주면 좋다.
ORM 장점 😃 #
- 객체 지향적 코드로 인해 더 직관적이고 비즈니스 로직에 집중할 수 있도록 도와준다.
- CRUD을 위한 긴 SQL 문장을 작성할 필요가 없다.
- 각 객체(Model)별로 코드를 작성하여 가독성을 높여 준다.
- SQL의 절차적 접근이 아닌 객체적인 접근으로 생산성을 높여준다.
- 재사용 및 유지보수의 편리성이 증가한다.
- 매핑 정보가 명확해, ERD를 보는 것에 대한 의존도를 낮출 수 있다.
- ORM은 독립적으로 작성되어 있고 해당 객체들은 재사용이 가능하다.
- DBMS에 대한 종속성이 줄어든다.
- 대부분의 ORM은 DB에 종속적이지 않다.
- 개발자는 Object에 집중함으로써 DBMS를 교체하는 극단적인 작업에도 비교적 적은 리스크와 시간이 소요된다.
- 종속적이지 않다는 것은 구현 방법 뿐만 아니라 많은 솔루션에서 자료형 타입까지 유효하다.
종속성: 프로그램 구조가 데이터 구조에 영향을 받는 것을 의미함
ORM 단점 🥲 #
- 완벽한 ORM만으로는 구현하기가 어렵다.
- 사용하기엔 편하지만 설계에는 매우 신중해야 한다.
- 프로젝트의 복잡성이 높아질 경우 난이도 또한 올라갈 수 있다.
- 잘못 구현된 경우 속도 저하 및 심한 경우 일관성이 무너지는 문제점이 생길 수 있다.
- 프로시저 많은 시스템에서는 ORM의 객체 지향적인 장점을 활용하기 어렵다.
- 이미 프로시저가 많은 시스템에서는 다시 객체로 바꿔야 하며, 그 과정에서 생산성 저하 혹은 리스크가 발생할 수 있다.
프로시저: 특정 작업을 위한 프로그램 일부, 함수와 같은 의미