H2 데이터베이스를 설치하고 아래와 같이 테이블을 생성합니다.
drop table if exists member CASCADE;
create table member
(
id bigint generated by default as identity,
name varchar(255),
primary key (id)
);
DB 연동 방법
1. 순수 Jdbc
SpringConfig에서 memberRepository의 반환 값만 수정하면 데이터베이스를 사용할 때 MemoryMemberRepository에서 JdbcMemberRepository로 쉽게 변경할 수 있다. 순수 Jdbc는 현재 사용하지 않으므로 참고로 알면 좋을 듯하다. 객체 지향의 장점은 이렇게 DI(Dependency Injection)을 이용하여 Repository를 쉽게 교체할 수 있어서 마치 조립장난감처럼 원하는 부품만 넣었다 뺏다 할 수 있다는 점인 것 같다.
스프링 통합 테스트
@SpringBootTest, @Transactional Annotation을 통해 데이터베이스와 연동하여 테스트를 진행하였다.
JdbcTemplate을 이용한 Repository 개발
순수 Jdbc에 비해서 코드의 양은 줄었지만 SQL 쿼리는 직접 입력해야 한다. 아직 실무에서 많이 사용하는 방식이라고 한다.
자세한 문법들은 이후 추가로 공부할 예정
JPA
Jdbc Template와 비교하면 Primary key 기반의 쿼리는 직접 작성 안 해도 되므로 코드를 더 줄일 수 있다. 하지만 Primary key 기반 쿼리가 아닌 경우에는 직접 작성해야 한다.
스프링 데이터 JPA
리포지토리에 구현 클래스 없이 인터페이스 만으로 개발을 완료할 수 있습니다. 반복 개발해온 CRUD 기능도 스프링 데이터 JPA가 제공합니다.
'웹 개발 > Back End' 카테고리의 다른 글
실전! 스프링 부트와 JPA 활용1 - 프로젝트 환경설정 (0) | 2022.01.05 |
---|---|
스프링 입문 - AOP (0) | 2022.01.03 |
스프링 입문 - 웹 MVC 개발 (0) | 2022.01.02 |
스프링 입문 - 스프링 빈과 의존관계 (0) | 2022.01.02 |
스프링 입문 - 회원 관리 예제 (0) | 2022.01.01 |
댓글