MyBatis
SQL 중심 개발
장점
- 겁내 쉬워요.
- SQL의 강점과 특징을 그대로 쉽게 활용할 수 있음
- 어떤 시스템이든 무난하게 평균 효율을 낼 수 있음
단점
- SQL을 직접 작성하여 반복되는 작업이 존재
- SQL로 모든 문제의 해결을 쉽게 할 수 있어서 테이블 설계에 소홀해지는 경우가 많음
JPA
Object 중심 개발
장점
- DBMS 벤더에 종속되지 않도록 개발 가능
- 기본적인 CRUD 쿼리를 반복적으로 작성하지 않아도 됨
- 수정사항이 발생하였을 때 수정해야 할 코드가 적음
- 빌드 과정에서 오류 발생
- Type-Safe
단점
- 겁내 어려워요.
- 복잡한 쿼리를 사용해야 할 때에 불리, 복잡한 쿼리를 지양하며 꼭 필요한 경우 Querydsl이나 jOOQ와 같은 라이브러리 사용을 권장
JPA 사용하면 불리한 경우
- 이미 설계된 DB를 사용하는 프로젝트 (우수하게 설계되지 않은)
JPA는 특정 경우를 제외하면 대부분의 측면에서 MyBatis보다 높은 효율을 낼 수 있다고 봅니다.
다만, 러닝 커브가 상당한 수준이라 Java와 SQL에 익숙하더라도 JPA를 모르면 많은 숙련이 필요해요.
튜토리얼 조금 겪고 와 괜찮네?라고 생각하고 실제 프로젝트에 도입한다면 지옥을 맛보게 될거에요.
적어도 몇 달은 꾸준히 숙달해야 장점을 제대로 느낄 수 있는 것 같네요.
제가 멍청한 걸수도...
'Backend > Spring' 카테고리의 다른 글
Spring Boot Banner.txt (프로젝트 타이틀 콘솔 출력) (0) | 2020.03.13 |
---|---|
No identifier specified for entity (JPA) (0) | 2020.01.02 |
Spring Boot 메일 발송 (gmail, naver, daum, nate) (4) | 2019.12.13 |
Spring Boot 파일 다운로드 (Controller) (8) | 2019.12.12 |
자바 파일 복사 (+ Spring) (0) | 2019.12.04 |