Spring/[강좌]스프링 입문-코드로 배우는 스프링 부트(김영한)

[강좌] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - chap 6. 스프링 DB 접근 기술 - (2) 순수 JDBC

ysk223 2020. 8. 11. 02:18

쉬어가는 타임..

[강좌] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - chap 6. 스프링 DB 접근 기술 - (2) 순수 JDBC

순수 JDBC

환경 설정

build.gradle 파일에 jdbc, h2 데이터베이스 관련 라이브러리 추가

implementation 'org.springframework.boot:spring-boot-starter-jdbc'
runtimeOnly 'com.h2database:h2'
  • 자바는 기본적으로 DB랑 연동하려면 JDBC 드라이버가 필요하다.

스프링 부트 데이터베이스 연결 설정 추가

resources/application.properties 파일에 다음 내용을 입력

spring.datasource.url=jdbc:h2:tcp://localhost/~/test
spring.datasource.driver-class-name=org.h2.Driver

JDBC 레포지토리 구현

주의! 이렇게 JDBC API로 직접 코딩하는 것은 20년 전 이야기이다. 따라서 고대 개발자들이 이렇게 고생 하고 살았구나 생각하고, 정신건강을 위해 참고만 하고 넘어가자.

스프링의 특징

  • 개방-폐쇄 원칙(OCP, Open-Closed Principle)
    • 확장에는 열려있고, 수정, 변경에는 닫혀있다.
  • 스프링의 DI (Dependencies Injection)을 사용하면 기존 코드를 전혀 손대지 않고, 설정만으로 구현 클
    래스를 변경할 수 있다.

스프링 부트 통합 테스트

  • @SpringBootTest : 스프링 컨테이너와 테스트를 함께 실행한다.
  • @Transactional : 테스트 케이스에 이 애노테이션이 있으면, 테스트 시작 전에 트랜잭션을 시작하고, 테스
    트 완료 후에 항상 롤백한다. 이렇게 하면 DB에 데이터가 남지 않으므로 다음 테스트에 영향을 주지 않는다.