※ 실제 프로젝트를 진행하며 얻은 지식을 정리한 내용입니다.
※ 이론적인 내용보단 실무에서 사용하는 방식 위주로 작성하였습니다.
※ 잘못된 내용이 있다면 댓글로 지적 부탁드리겠습니다.
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를 적절히 선택하여 사용하면 됩니다.
'2F(IT) > Spring Boot' 카테고리의 다른 글
| ResponseEntity란? (0) | 2025.03.02 |
|---|---|
| Spring Boot 어노테이션 - 컨트롤러 데이터 및 화면 호출 (0) | 2025.02.17 |
| Spring Boot 어노테이션(annotation) 기본 (5) | 2025.01.02 |
| STS Navigator 설정(Project Explorer) (6) | 2024.12.27 |
| REST API란 (3) | 2024.12.06 |