2F(IT)/Spring Boot

JPA구조, Mybatis 구조의 차이

백화점장 2025. 1. 1. 16:56
반응형
※ 실제 프로젝트를 진행하며 얻은 지식을 정리한 내용입니다.
※ 이론적인 내용보단 실무에서 사용하는 방식 위주로 작성하였습니다.
※ 잘못된 내용이 있다면 댓글로 지적 부탁드리겠습니다.

1. 글 소개

    1) 필자는 Mybatis구조만 사용해보고 JPA 구조는 실제 사용해본적은 없습니다.

    2) JPA의 내용은 프로젝트를 하며 다른 개발자분들에게 얻은 지식 + 인터넷 검색으로 만들어졌습니다.


2. JPA구조? Mybatis 구조?

    1) JPA 구조

        1. 객체와 데이터베이스 간의 매핑을 자동화 하는 ORM(Object-Relational-Mapping) 방식입니다.

        2. 쉽게 이해해보자면, Java에서 객체를 통해 데이터를 조작한다! 라고 볼 수 있습니다.

        3. 자바객체를 DB테이블과 연결하여 쿼리 작성 없이 DB와 상호작용 합니다.

        4. 보통 파일 구조는 Controller + Service + Entity + Repository로 구성됩니다.

    2) Mybatis 구조

        1. Mybatis는 데이터베이스와 직접 상호작용하는 SQL 중심 프레임워크로 SQL 작성을 필요로합니다.

        2. 파일구조는 Controller + Service + Mapper.java + Mapper.xml로 구성됩니다.

        3. Mybatis는 XML 파일 또는 어노테이션을 사용해 쿼리를 매핑하며, SQL을 세밀하게 제어할 수 있습니다.


3. JPA와 Mybatis의 장단점

    1) JPA 장점 및 단점 

        1. 장점 : 쿼리 작성이 자동화되어 코드가 깔끔하고 데이터베이스와의 상호작용을 간단하게 할 수 있습니다.

        2. 단점 : 복잡한 쿼리 작성이나 성능 최적화가 어려울 수 있습니다.

        3. 일반적으로 CRUD 위주의 간단한 프로젝트에서 많이 사용됩니다.

    2) Mybatis 장점 및 단점

        1. 장점 : SQL을 직접 작성하므로 성능 최적화나 복잡한 쿼리 처리에 강점이 있습니다.

        2. 단점 : SQL작성이 필요하며, 쿼리문을 반복적으로 작성해야 하기 때문에 코드가 복잡해질 수 있습니다.

        3. 일반적으로 비즈니스로직이 많고 업무가 복잡한 프로젝트에서 많이 사용됩니다.


4. 결론

    1) JPA는 객체 지향적인 개발에 유리하고, 간단한 CRUD 작업을 빠르게 처리할 수 있어 빠른 개발과 유지보수가 가능합니다.

         하지만 복잡한 쿼리에는 한계가 있을 수 있습니다.

    2)  Mybatis는 복잡한 SQL 쿼리와 성능 최적화가 필요한 경우 유리하며, 세밀한 제어가 가능하지만,

          쿼리 작성과 유지보수 측면에서 더 많은 노력이 필요합니다.

    3) 프로젝트의 성격에 따라 JPA와 Mybatis를 적절히 선택하여 사용하면 됩니다.

 


반응형