Home ORM 이란 무엇일까?
Post
Cancel

ORM 이란 무엇일까?

ORM 이란?

요즘 같은 세상에 실제 상용 애플리케이션을 구현하려면 데이터베이스는 필수이다.

그런데 우리는 Java와 Spring을 사용하는 개발자다.

SQL을 어느정도 알지만 잘 알지는 못해서 이것저것 다루다보면 너무 버겁다..

그렇기 때문에 내가 주로 쓰는 언어로 데이터베이스를 다룰 수 있으면 엄청 편하겠지?

게다가 Java의 특징인 객체지향을 녹여낼 수 있다면?

위와 같은 역할을 해주는 것이 ORM(Object Relational Mapping)이다.

ORM 을 활용하면 데이터베이스에 데이터를 넣고, 읽고, 수정하고, 삭제 할때 SQL을 작성하지 않아도 된다.

Spring 에서는 JPA 를 구현한 RedHat에서 제작한, Hibernate가 주로 쓰인다.


내가 익숙한 코드로 DB까지 다룬다면,, ORM 의 단점이 있을까?

난이도 - 단점이자 장점

ORM 을 제대로 쓰려면, 해당 플랫폼에 대한 ORM을 제대로 공부해야한다.

그치만 어렵다. 시간이 많이 소요될 것이고 어설프게 썼다간 이도저도 아니게 될 수도 있다.

또한 MySQL 과 같은 매핑 시키고자하는 RDBMS 를 알긴 해야한다. DB가 어떻게 동작하는지 모른다면

ORM을 정확하게 활용할 수 있는 방법을 알지 못하게 된다.

복잡성 - 단점이자 장점

데이터베이스 내용과 객체지향 코드가 일치하지 않아 추가적인 작업을 해줘야 할 필요도 생긴다.

이로인해 코드의 복잡도가 증가하게 된다.

또한 ORM 내부 동작에 의한 성능 문제가 발생할 수 있다.


그럼에도 불구하고 쓸 수 밖에없는 이유

난이도 - 장점이자 단점

Java 언어 환경에서, 순수 MySQL Query 혹은 순수 JDBC 코드로 작성하여 DB 와 소통하는 것 보다

ORM의 도움을 받는게 훨씬 쉽다.

복잡성 - 장점이자 단점

위에서 언급한 원시적인 방법에 비해, 복잡한 프로세스를 숨기고 상위 구현수준에서 다루기 때문에 간결하다.


결론

ORM 되도록이면 쓰자 어지간한 SQL Injection 도 방어해주는 보안적인 측면도 좋고

단점으로 인한 영향을 장점이 덮어줄만큼 생산성이 뛰어나다.

대신, 확실하게 해당 ORM 에 관하여 공부하고 사용하자!

This post is licensed under CC BY 4.0 by the author.