본문 바로가기

서버개발스터디/1주차 (Spring\JPA\H2)

#02 ORM 이란?

내가 조금 오해했던 부분은 ORM관련 기술이 최근에 나온게 아니라는 사실이다. 또한 자바 에서만 사용하는 것도 아니고 C#, Ruby 등 다른 객체지향 언어 에서도 사용하고 있다. 이처럼 객체지향 언어와 관계형 DB와의 연결을 

개발자가 모두 관여해서 한땀한땀 SQL 문을 작성했고 이러다 보니 비지니스 로직이 DB쪽으로 많이 넘어가고

SQL문이 변경되면 서버의 로직도 당연히 그에 따라서 변경이 되는게 현실이고 사실 내가 사용하고 있는 시스템도

그에 해당된다.  또한 테이블의 변경에 대한 여러 SQL문을 하나하나 확인하고 변경된 컬럼을 넣어준다... 그리고 끝?? 

이 아니라 애플리케이션 쪽의 로직도 당연히 손봐야 한다... 객체지향은 우리가 잘 알듯이 SOLID를 잘 지쳐야 된다고 하는데 지금 이야기 한것 만으로도 OCP와 SRP,  어쩌면 DIP도 지키지 못하는 것 같다.   이렇게 커플링이 심한 부분에서 벗어 나고자 ORM이 등장 했다고 생각한다.

 

 

ORM이란 객체(Object)와 관계(Relation)를 연결(Mapping)해 주는 개념이다.

 

Object Relational Mapping

 

 

ORM 사용X  : 객체 와 RDBMS의 연결을 개발자가!! 직접 관여해서 진행.

ORM 사용O  : 객체 와 RDBMS의 연결은 내가 아니라 다른 누군가가(ORM framework) 해준다.

 

이게 단순히 정말 작은 시스템 이라면 크게 상관이 없을 것 같지만 시스템이 점점 커지고 유지보수를 하는 입장에서 

하나를 변경하면 기존 시스템에 영향이 없는지 하나하나 확인해야 하는 부분도 직접 해본 사람이라면 피곤하다... 

 

아! 조심해야 되는 부분도 있을 것 같다.  ORM이 모든 해답을 가져다 주지는 않고, 또한 ORM을 잘못 이해하고 

사용한다면 안쓰는것 보다 못하다는 사람들의 말도 있었다... (ORM을 아직 사용해보진 않아서 잘 모름...)

 

이번 포스팅 에서는 ORM을 깊게 다루진 않는다.  다만 ORM이 무엇이고 왜 나왔는지 간단히 알아보려고 한다. 그리고 ORM이 무엇인지 오해와 진실을 간단히 알았다면? 우리가 사용 하려는 JPA는 어떤 녀석인지 알아보는 #03을 확인해 보자.

 

 

'서버개발스터디 > 1주차 (Spring\JPA\H2)' 카테고리의 다른 글

#03 JPA의 등장  (0) 2021.05.12
#01 실습 정리!  (0) 2021.05.12
1주차 스터디 실습 & 포스팅 목록 정리  (0) 2021.05.12