Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
Tags
- table status
- 인프런워밍업클럽
- spring boot
- mycli
- 네트워킹데이
- MySQL
- 오일러 경로
- Less
- 이진탐색
- CS스터디
- zsh theme
- oh-my-zsh
- VI
- 욕심쟁이 방법
- 인프런
- 알고리즘
- 동적 프로그래밍 방법
- 데이크스트라
- mysql 표 출력
- mysql 표
- 터미널
- Pager
- 티스토리챌린지
- 맥
- 분할정복 방법
- 오블완
- cs
- 스터디2기
- 순차탐색
- zsh
Archives
- Today
- Total
Develop
MyBatis 본문
안녕하세요 .ᐟ
처음으로 앱 프로젝트 구상중인데 MyBatis-JPA-Spring Boot로 점차 업그레이드 해보려고 합니다.
해당 프레임워크들을 알아보고 각각 어떤 장단점이 있는지, 왜 바꿔야 하는지 등을 포스팅 해보겠습니다.
MyBatis
- JDBC를 좀 더 편하게 사용할 수 있도록 객체를 SQL이나 저장 프로시저와 매핑해주는 퍼시스턴스 프레임워크(Persistence Framework)이며, 한마디로 SQL Mapper라고 할 수 있다.
- ORM의 경우 자바 객체를 데이터베이스 테이블과 매핑을 하는데, 마이바티스는 SQL 구문을 자바 메서드와 매핑한다.
장점
- 다른 프레임워크들에 비해 간단하다.
- 소스코드와 SQL의 분리되어 DBA와 협업도 가능하다.(생산성, 작업분배)
- SQL을 직접 다룰 수 있다.(복잡한 쿼리, 함수, 저장 프로시저 등)
왜 JPA로 바꿔야 하는가?
- 생산성 (MyBatis에서 했던 반복적인 CRUD용 SQL을 개발자가 직접 작성하지 않아도 된다.)
- ex) Order, Items, OrderItem 테이블에서 각각 insert, update, delete 쿼리를 작성하지 않아도 된다.
- 유지보수의 편리성
- Item class에 category 필드가 새롭게 추가된 경우 MyBatis 이용 시 추가 된 컬럼 각각에 대해 insert, update, delete 각각 SQL문에 추가/수정된 컬럼을 일일이 수정해줘야 된다.
- JPA를 이용 시 JPA가 관리하는 엔터티에만 수정해주면 알아서 CRUD관련된 쿼리를 작성해주기 때문에 반복작업을 하지 않아도 된다.
- Spring Data JPA를 사용하면 interface 선언 만으로 쿼리 구현이 가능하기 때문에 관리 도구 등 에서 가볍게 사용할 수 있는 CRUD 쿼리를 손쉽게 대처할 수 있다.
- 데이터 접근 추상화와 벤더 독립성
- 데이터베이스 벤더(오라클, MySQL) 마다 데이터 타입이나 SQL 작성방법이 다른데, JPA를 이용하면 손쉽게 해결할 수 있다.
- SQL 중심개발에서 객체 중심 개발로 변경 가능
- JPA는 객체와 관계형데이터베이스 사이의 패러다임 불일치로 발생하는 문제(상속, 연관관계, 객체 그래프 탐색 등)를 해결할 수 있다.
출처 : NHN Cloud 유튜브, [2018] MyBatis에서 JPA로, https://www.youtube.com/watch?v=XQZY0yN9gz0