모둥이의 일지

[스프링] 입문 : 섹션6~7 정리 본문

IT/Spring

[스프링] 입문 : 섹션6~7 정리

모둥이_ 2024. 4. 1. 16:50
김영한 선생님의 스프링 강의 입문 섹션6부터 7까지의 내용을 정리해보았습니다.

 

H2 데이터베이스 설치

  • 더보기
    개발이나 테스트 용도로 가볍고 편리한 DB로 웹 화면을 제공한다.
  • 더보기
     https://www.h2database.com  다운로드 및 설치
    (버전은 스프링 부트 버전에 맞춘다.)
  • 더보기
    권한 주기 : chmod 755 h2.sh
  • 더보기
    실행 : ./h2.sh 
  •  데이터베이스 파일 생성 방법
    - jdbc:h2:~/test (최초 한번)

    - ~/test.mv.db 파일 생성 확인
    - 이후부터는 `jdbc:h2:tcp://localhost/~/test` 이렇게 접속

 


순수 JDBC

  • Java Database Connectivity의 줄임말로, 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API이다.
  • JDBC는 데이터베이스에서 자료를 쿼리하거나 업데이트 하는 방법을 제공한다.

build.gradle에 jdbc와 h2database 라이브러리 추가

 

application.properties에 스프링부트 database 연결 설정 추가

 


스프링 통합 테스트

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


스프링 JdbcTemplate

  • 순수 Jdbc와 동일한 환경설정을 하면 된다.
  • 스프링 JdbcTemplate과 MyBatis 같은 라이브러리는 JDBC API에서 본 반복 코드를 대부분 제거해준다.
    하지만, SQL은 직접 작성해야 한다.
  • 순수 Jdbc와 다르게 DataSource를 직접 사용하는 것이 아닌, JdbcTemplate 인스턴스를 사용해서 DB에 접근한다.


JPA vs Spring Data JPA

  • JPA(Java Persistence API)
    - 자바 애플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스와 어노테이션의 표준 집합을 정의한다.
    - 특정 기능을 하는 라이브러리가 아닌 인터페이스이다.

  • Hibernate
    - 인터페이스를 직접 구현한 라이브러리
    - JPA의 모든 기능을 지원하며, 객체와 관계형 데이터베이스 간의 매핑을 자동으로 처리하여 개발자가 하나하나 sql 쿼리를 작성하지 않도록 도와준다.
    - JPA의 구현체로, JPA를 사용하기 위해서 반드시 hibernate만을 사용할 필요가 없다.

  • Spring Data JPA
    - Spring에서 제공하는 모듈 . 중하나로, JPA 위에 추가적인 기능을 제공하여 JPA기반 애플리케이션 개발을 보다 간편하게 만드는 라이브러리/프레임워크이다.
    - Repository라는 인터페이스를 제공함으로써, 사용자가 Repository 인터페이스에 정해진 규칙대로 method를 입력하면, Spring이 알아서 해당 method이름에 적합한 쿼리를 날리는 구현체를 만들어서 Bean으로 등록해준다.

 

JPA -> Entity Manager를 사용하여 데이터베이스 기능을 사용해야한다.
Spring Data JPA -> Repository 인터페이스를 사용하여 EntityManager 대신에 사용할 수 있다.

 

'IT > Spring' 카테고리의 다른 글

[스프링] "겨울이 지나가고 봄이 왔다" 🌸  (0) 2024.04.08
[스프링] 입문 - InteliJ 오류  (1) 2024.01.13