TDD 연습 프로젝트 1 - h2 데이터베이스 연동

zunzero·2022년 9월 5일
0

스프링, JPA

목록 보기
9/23

망나니 개발자님의 블로그를 참고하여 작성한 블로그입니다.
망나니 개발자님의 글을 보고 따라하면서 개인적으로 느낀 것들과 모든 과정들을 추가적으로 작성할 예정입니다.

프로젝트 생성

우선 프로젝트를 생성합니다.
https://start.spring.io/
해당 링크로 접속 후 다음과 같이 프로젝트 설정을 해주었습니다.

프로젝트 파일을 실행 후, build.gradle 파일에 다음과 같이 dependency를 추가해주었습니다.

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-web'
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	compileOnly 'org.projectlombok:lombok'
	runtimeOnly 'com.h2database:h2'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

h2 데이터베이스 설치

dependency로 외부에서 받아온 h2 database 라이브러리의 버전을 아래 사진에서 찾아, 해당 버전의 h2를 다운로드 받습니다.
https://h2database.com

저는 맥북을 사용하고 있기 때문에 h2 데이터베이스가 다운로드 된 위치로 이동해서 아래와 같은 작업을 진행했습니다.

접근 권한 등의 문제때문에 change mod 명령어를 사용했고, 홈페이지에서 설명한 것과 같이 .sh 파일을 실행해주었습니다.

파일 실행 후, 다음과 같은 화면이 되도록 해야 합니다.

  1. 접속이 되지 않을 경우
    url에 localhost 부분에 해당하는 부분이 일반적인 http 도메인 주소로 설정되어 있을 수 있습니다. (ex. 214.342.321.432)
    이를 localhost로 바꿔 주세요.

  2. JDBC URL
    jdbc url에 해당하는 부분이 처음에는 jdbc:h2:/~/test로 되어있을 겁니다.
    원하는 이름으로 바꾸어서, (저 같은 경우에는 jdbc:h2:/~/tdd로) 연결을 한 번 해주어야 합니다.
    바탕화면에 tdd.mv.db라는 파일이 생긴 것을 확인한 후, 사진에 해당하는 url로 다시 바꾸어서 접속합니다.
    이후 연결을 하게 될 url 주소입니다.

h2 데이터베이스 연동

application.properties 파일 대신 application.yml 파일을 사용해 프로젝트 환경설정을 해주겠습니다.
properties 파일은 key&value 형식으로 외부 구성의 속성을 사용할 수 있고, yml 파일은 계층적인 표현으로 외부 구성의 속성을 사용할 수 있다는 차이가 있습니다.
(심오한 차이는... 다음에!)

spring:
  datasource:
    url: jdbc:h2:tcp://localhost/~/tdd
    username: sa
    password:
    driver-class-name: org.h2.Driver

  jpa:
    hibernate:
      ddl-auto: create
    properties:
      hibernate:
        show_sql: true
        format_sql: true
logging:
  level:
    org.hibernate.SQL: debug

연동이 잘 되었는지 확인하기 위해 간단하게 Member 엔티티를 작성해서 확인해보겠습니다.

package hello.tdd.domain;

import lombok.Getter;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
@Getter
public class Member {

    @Id
    @GeneratedValue
    private Long id;

    private String name;
    private String username;
    private String password;

}

위와 같이 Memebr 엔티티가 잘 생성된 것을 확인할 수 있습니다.

profile
나만 읽을 수 있는 블로그

0개의 댓글