ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ORM , SQLMapper
    SPRING 공부 2022. 1. 27. 09:07

    ORM, SQLMapper는 꼭 Spring에만 있는 기술이 아니다. 이점에 유념하자

     

    ORM

    Object Relational Mapping 직역하면 '객체 관계적 연결'로 SQL에 존재하는 Object와 애플리케이션 내에 존재하는

    Object를 관계 매핑을 해준다는 것이다. 

    예를 들어 쉽게 설명하자면, 

     

    우리가 코드로 생성한 Object를 SQL에서 생성한 테이블과 일치시키고, 그에 따른 CRUD를 자동 생성화 한다는 것이다.

    이 과정에서 우리가 직접 쿼리를 짤 필요성이 줄어든다는게 가장 큰 이유고, ORM에 존재하는 메서드화된 코드로

    긴 쿼리 작성없이 생산성을 높일 수 있다는 것이 크다.

    이렇게나 편한데 왜 사용을 모든 기업들은 JPA 도입을 하지 않을까???

    1. 학습곡선이 크다.   ( 앞으로 설명할 SQL Mapper에 비해서 어렵다.)

         이유는 단순하다. 기존 SQL Mapper는 SQL에 대해서만 공부만 하면 됬는데, JAVA의 경우 JPA라는 라이브러리에 

         대해서 공부해야한다. 

     

    2. 복잡한 쿼리문에 대해서 작성하기가 힘들어진다. 가령 검색조건이나, JOIN문이 들어가게 되는 경우 작성해야할

        난이도가 확 올라가게 된다.

     

    3. 유지보수성이 떨어진다 - ORM에 대해서 공부를 해야하니 이를 알고 있는 개발자는 비싸지고, 신입으로 가르치려니

                                        시간소요가 커진다. 위와 동일하게 복잡한 쿼리인경우 로직에 대한 이해가 오래걸린다.

     

     

    그럼에도 필요한 이유

    1. 생산성이 매우 높다. 개발일을 하면 단순 CRUD를 작성해야 할 일이 많은데, 이것에 대해서 일일히 SQL문을

       작성하자니 시간이 매우 아깝다. 이 시간을 줄일 수 있어 아주 좋다.

     

    2. DB를 객체지향적으로 설계 가능하다. 각종 SQL문을 메서드화 시켜서 사용하기 때문에, 각종 객체에 종속된

       SQL문을 통해 가독성을 높일 수 있다.

     

     

    SQL Mapper 

    개발언어의 객체와 관계형 DB의 데이터를 개발자가 작성한 SQL문으로 매핑시켜주는 프레임 워크이다.

    여기서 SQL문은 개발자가 직접작성하며, Mapping할 객체를 직접 선정해줘야한다.

    대표적인 SQL Mapper는 MyBatis가 있다.

     

    사용하는 이유

    1. 학습곡선이 매우낮다. SQL문만 사용할 줄 알고 , 설정만 해놓으면 누구든지 사용 가능하다.

     

    2. 복잡한 쿼리문을 해도 식별화가 쉽다.

     

    3. 유지보수성이 좋다. - 누구나 쉽게 쿼리문을 수정할 수 있다.

     

    단점

    1. DBMS에 따라 SQL문법이 달라서 DBMS에 맞춰서 SQL문을 공부하여 작성해야 한다.

     

    2. 단순 CRUD 같은 경우에도 SQL을 작성해야되기 때문에 시간 소요가 아까워진다.

     

    3. Mapper파일의 내용이 쿼리 복잡도에 따라 한없이 길어질 수 있다.

     

     

     

     

     

    'SPRING 공부' 카테고리의 다른 글

    스프링 캐시  (0) 2023.11.05
    REST , REST API  (0) 2022.01.25
Designed by Tistory.