You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
drop table if exists member CASCADE;
create table member
(
id bigint generated by default as identity,
name varchar(255),
primary key (id)
);
를 통해 멤버 테이블 생성 generated by default as identity 는 값이 들어오지 않으면 자동으로 채워넣는다.
2. 순수 JDBC
자바를 DB와 연결하려면 기본적으로 jdbc 드라이버는 꼭 필요하다.
JdbcMemberRepository 생성
코드가 엄청 길다. 이렇게 직접 코딩하는 것은 20년전 이야기이므로 가볍게 이해하고 넘어가자고 하셨다!
SpringConfig 수정
MemberRepository에 MemoryMemberRepository를 주입했던 과거의 내용을 Jdbc로 바꾸고 dataSource만 추가해주면 설정만으로 구현 클래스를 변경할 수 있다.
@Configuration
public class SpringConfig {
private final DataSource dataSource;
public SpringConfig(DataSource dataSource) {
this.dataSource = dataSource;
}
@Bean
public MemberService memberService() {
return new MemberService(memberRepository());
}
@Bean
public MemberRepository memberRepository() {
// return new MemoryMemberRepository();
return new JdbcMemberRepository(dataSource);
}
성공! 8080을 통해 이름을 입력하면 회원목록과 h2 db에서 모두 정상적으로 확인할 수 있다.
3. 스프링 통합 테스트
과거에 했던 회원 리포지토리 테스트, 회원 서비스 테스트 등은 순수한 자바 영역에서의 테스트이다.
이제는 스프링과 엮어서 테스트를 진행해 보자
@Configuration
public class SpringConfig {
private final MemberRepository memberRepository;
public SpringConfig(MemberRepository memberRepository) {
this.memberRepository = memberRepository;
}
@Bean
public MemberService memberService() {
return new MemberService(memberRepository);
}
}
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
섹션6. 스프링 DB 접근 기술
1. H2 데이터 베이스 설치
를 통해 멤버 테이블 생성
generated by default as identity 는 값이 들어오지 않으면 자동으로 채워넣는다.
2. 순수 JDBC
자바를 DB와 연결하려면 기본적으로 jdbc 드라이버는 꼭 필요하다.
JdbcMemberRepository 생성
코드가 엄청 길다. 이렇게 직접 코딩하는 것은 20년전 이야기이므로 가볍게 이해하고 넘어가자고 하셨다!
SpringConfig 수정
MemberRepository에 MemoryMemberRepository를 주입했던 과거의 내용을 Jdbc로 바꾸고 dataSource만 추가해주면 설정만으로 구현 클래스를 변경할 수 있다.
성공! 8080을 통해 이름을 입력하면 회원목록과 h2 db에서 모두 정상적으로 확인할 수 있다.
3. 스프링 통합 테스트
과거에 했던 회원 리포지토리 테스트, 회원 서비스 테스트 등은 순수한 자바 영역에서의 테스트이다.
이제는 스프링과 엮어서 테스트를 진행해 보자
단위 테스트 : 순수한 java 코드로 최소한의 단위로 빠르게 진행하는 테스트
통합테스트 : DB까지 연결한 스프링 단의 테스트
@SpringBootTest
스프링 컨테이너와 테스트를 실행할 때 사용
@transactional
테스트 시작 전에 트랜잭션을 시작하고, 테스트 완료 후 항상 롤백하여 다음 테스트에 영향을 주지 않게 할 수 있다.
4. 스프링 JdbcTemplate
JDBC API의 반복 코드를 대부분 제거해준다. 하지만 SQL문은 직접 작성해야 한다.
JdbcTemplateMemberRepository 생성 후 SpringConfig를 수정하고 통합테스트를 실행해보았다.
테스트가 잘 실행되고 transaction과 롤백도 실행되었음을 확인할 수 있다.
5. JPA
show-sql : JPA가 생성하는 SQL 출력
ddl-auto : 테이블을 자동으로 생성하는 기능
6. 스프링 데이터 JPA
스프링 부트 + JPA 위에 스프링 데이터 JPA 까지 사용한다면 훨씬 수월하게 개발할 수 있다!! 구현 클래스 없이 인터페이스만으로 개발이 가능하다.
주의할 점! 꼭 JPA 먼저 공부 후 스프링 데이터 JPA를 공부하기
스프링 데이터 JPA 회원 리포지토리
SpringConfig
정말 간단하게 코드 작성이 완료되는 걸 볼 수 있다.
All reactions