[SpringBoot] MyBatis

윤경·2021년 11월 23일
0

Spring Boot

목록 보기
56/79


ORM

: Object Relational Mapping

ORM이란?

Object: 객체지향 언어의 객체
Relational: 관계형 데이터베이스 (Relational DataBase)의 데이터
Mapping: 객체지향 언어의 객체와 관계형 데이터를 서로 변환해줌을 의미

즉, "ORM이란 관계형 데이터베이스에서 조회한 데이터를 Java 객체로 변환해 리턴해주고, Java 객체를 관계형 데이터베이스에 저장해주는 라이브러리 혹은 기술" 을 의미힌다.

Java ORM 기술의 유명한 예는 JPA, Hibernate등이 있다.

그리고 MyBatis는 JDBC로 처리하는 상당 부분의 코드와 파라미터 설정 및 결과 매핑을 대신해준다.
하지만 직접 쿼리를 작성해 명시해야 하기 때문에 ORM으로 보기 힘들다.


MyBatis

  • 객체지향 언어인 자바의 관계형 데이터베이스 프로그래밍을 좀 더 쉽게 할 수 있도록 도와주는 개발 프레임워크
  • 쿼리 기반 웹 애플리케이션을 개발할 때 가장 많이 사용되는 SQL 매퍼(Mapper) 프레임워크
  • 복잡한 JDBC 코드를 걷어내 깔끔한 소스코드를 유지할 수 있음
  • 자바의 객체(object)와 SQL 사이에서 자동 매핑을 도와주는 프레임워크
  • XML 형태로 쓰인 JDBC 코드라고 생각해도 될만큼 JDBC의 모든 기능을 제공

✔️ JDBC를 이용해 프로그래밍을 할 경우

  • 클래스나 JSP와 같은 코드 안에 SQL문을 작성하는 방식
  • 따라서 SQL의 변경 등이 발생할 경우 프로그램을 수정해야 한다.
    ➡️ 유연성이 떨어지고 코드가 복잡해 가독성도 떨어짐

✔️ MyBatis를 사용하지 않고 JDBC를 직접 이용할 경우

  • 개발자가 반복적으로 작성해야 할 코드가 많아지고, 서비스 로직 코드와 쿼리를 분리하기 어려워진다.
  • 또한, 커넥션 풀의 설정 등 개발자가 신경 써야 할 부분이 많아 여러가지 어려움이 있다.

따라서, 일반적으로 JDBC를 이용해 직접 개발하기 보단 MyBatis같은 프레임워크를 사용한다.

📌 JDBC
: Java Database Connectivity
자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API
(데이터베이스 종류에 상관없음)

JDBC 드라이버 로드 > DB 연결 > DB에 데이터를 읽거나 쓰기 (SQL문) > DB 연결 종료


profile
개발 바보 이사 중

0개의 댓글