DI - 의존성 주입
객체 간의 의존관계를 설정해두면 스프링이 의존관계를 자동으로 연결해줍니다.
-> 직접 의도하는 객체를 생성하거나 검색해서 가져올 필요가 없어서 결합도가 낮아집니다.
IoC - 제어의 역전
제어권이 사용자가 아닌 프레임워크에 있는 것입니다.
필요에 따라서 사용자의 코드를 호출하게되는 방식입니다. 인스턴스의 생성부터 소멸까지 컨테이너에서 관리합니다.
JPA - Java Persistance API
ORM을 위해 자바에서 제공하는 API 입니다.
자바 객체와 DB 테이블을 매핑하는데, 구현체로는 하이버네이트가 있습니다.
JPA가 제공하는 API를 사용하면 객체를 DB에 저장하고 관리할 때, 개발자가 직접 SQL을 작성하지 않아도 됩니다.
JPA가 개발자 대신 적절한 SQL을 생성해서 DB에 전달하고 객체를 자동으로 Mapping 해줍니다.
* ORM
관계형데이터베이스를 OOP언어로 변환해주는 기술입니다. 비즈니스 코드가 DB 테이블에 바로 접근할 수 있도록 도와주어 객체중심 개발이 가능해집니다.
애플리케이션 class와 RDB테이블을 매핑하는 것입니다.
SQL Mapper
Object와 SQL 필드를 매핑하여 데이터를 객체화 하는 기술
- 객체와 테이블 간의 관계를 매핑하는 것이 아님
- DBMS에 종속적
- SQL문을 이용해서 RDB에 접근, 데이터를 객체화 시켜줌
- 쿼리문을 xml로 분리가능
- 복잡한 쿼리문 작성 가능
JPA vs iBatis / 데이터를 객체화하는 방법
JPA -> ORM : object와 DB테이블을 mapping
iBatis -> SQL Mapper : object와 SQL필드를 mapping
JPA 장단점
@ 장점
RDB 종류와 관계없이 사용가능하기 때문에 DB변경이 있어도 코드 재활용이 가능하다.
기본적인 CRUD 제공과 페이징 처리 등 구현되어있는 것이 많아 비즈니스 로직에 집중할 수 있다.
테이블 생성, 변경 등 엔티티 관리가 간편하다.
쿼리를 직접 작성할 필요없이 Java 코드로 간편하게 사용할 수 있다.
JPA는 쿼리 수정되어 데이터 정보가 바뀌면 객체만 바꾸면 된다.
@ 단점
배우기 위한 난이도가 있다.
MyBatis 장단점
@ 장점
JPA에 비해 쉽다.
SQL 쿼리를 그대로 사용하기 때문에 복잡한 Join, 튜닝등을 편하게 작성할 수 있다.
SQL 쿼리의 세부 내용을 변경 시 수월하다.
@ 단점
DB 설정 변경 시 수정할 부분이 많아진다.
특정 DB에 종속적이며 DB가 바뀌면 DB문법에 맞게 mapper를 전부 수정해야한다.
'IT정보 > 프로그래밍언어' 카테고리의 다른 글
[JavaScript][VSCode] 오늘은 웹 시작임 (0) | 2023.01.19 |
---|---|
[JAVA][SQL] JDBC 연결 / select, insert (0) | 2023.01.18 |
[JAVA][SQL] JDBC 연동 (0) | 2023.01.18 |