현문hyun답

[현문hyun답] ORM이란? JPA, Sequelize 등을 쓰는 이유는?

Hyun-danpung2 2022. 8. 18. 15:00
728x90
반응형

서론

스프링부트로 개발 할 때는 처음 배울 때 JPA로 배웠기 때문에 자연스럽게 JPA를 적용했다. 그런데 Node.js로 개인 프로젝트를 진행하다보니 데이터베이스 구축과 관리가 아니라 개발을 하면서 쿼리문을 쓰는게 낯설게 느껴졌고 새삼스럽게 ORM의 존재를 인식하게 되었다. Node.js에도 역시 Sequelize라는 ORM이 있었고 이번 기회를 통해 ORM에 대해 정리해보는 시간을 갖기로 했다.

 

Node.js의 Sequelize

 

ORM

ORM(Object Relational Mapping)은 객체 지향 프로그래밍에서 객체로 관계형 데이터베이스를 관리하는 기술이다. 스프링의 JPA가, 노드js의 Sequelize가 대표적인 예이다.

Spring의 JPA

 

 

ORM을 사용하는 이유?

기존 개발 방식은 SQL로 데이터베이스를 관리하는 것이었다. 이런 방식의 개발은 코드의 반복을 피하기 어려웠고, SQL을 확인하기 전까지는 Entity를 신뢰하기 어려웠다. 또한, 객체 지향 프로그래밍이라는 말에 걸맞지 않게, SQL에 의존적인 개발이 되곤 했다.

 

객체 지향 프로그래밍과 관계형 데이터베이스 설계를 각각 하고나면 중간에서 ORM이 매핑을 해주기 때문에 각 역할에만 집중할 수 있어 생산성에서 유리하며 유지보수 측면에서도 효율적이다.

 

주의점

ORM은 편리하다. 애초에 편하게 개발에 집중하기 위해 사용하는 것이다. 그렇기 때문에 SQL, 심지어는 데이터베이스와 멀어지게 되는 것을 경계해야한다. ORM은 데이터베이스에 대한 이해를 토대로 사용되어야 한다.

728x90
반응형