프로젝트 복기 - 초기설정 yml

c.Hano·2025년 2월 20일

프로그래머스

목록 보기
2/5

데이터베이스는 프로젝트 때 사용했던 것 과 동일하게 h2를 사용할 것이다.

생성된 mv.db파일을 사용할 것인가, 어플리케이션이 작동될 때마다 h2데이터베이스를 생성할 것인가. 고려해봤을 때,

각각의 장단점이 있다.

  • 매번 새 데이터를 테스트하고 싶을때
    프로젝트를 빠르게 실행하고 초기 데이터를 넣어 테스트할 때
    운영 환경이 아닌 개발환경에서만 사용할때 -> 스프링 시작 시 h2 데이터베이스가 생성되도록 설정.

  • 기존 데이터(mv.db)를 유지하면서 개발을 이어가야 할 때
    프로젝트 재시작 후에도 데이터가 유지되어야 할 때
    운영환경과 비슷한 방식으로 개발하고 싶을 때 -> 기존 데이터베이스를 사용. mv.db.


프로젝트 때에도 어플리케이션 생성 시 db파일이 생성되었던 것 같다. 첫번째 방법으로 진행하자.

개발시엔 어플리케이션 실행시에만 접근이 가능한 embedded 타입으로

첫번째 방법으로 진행하려면 application.yml 파일에 설정값을 입력하여야 한다.

src/main/resources/application.yml

spring:
  datasource:
    url: jdbc:h2:mem:testdb
    driver-class-name: org.h2.Driver
    username: sa
    password:

  jpa:
    show-sql: true
    database-platform: org.hibernate.dialect.H2Dialect
    hibernate:
      ddl-auto: update # 애플리케이션 실행 시 자동으로 테이블 업데이트

  h2:
    console:
      enabled: true
      path: /h2-console
  • url : jdbc:h2:mem:testdb
    • mem은 메모리 버전의 테스트 db파일을 사용한다. (어플 중지 시 db가 사라짐)
    • file이나 기존에 있는 db를 tcp방식으로 사용하려면,
      • url : jdbc:h2:file:~/h2-database/testdb
      • url : jdbc:h2:tcp://localhost/~/h2-database/testdb 를 입력하여야 한다.
    • driver-class-name : org.h2.Driver
      • h2드라이버를 사용하겠다는 의미. sql이나 다른 툴을 사용시 해당 코드가 변경되어야 한다.

  • jpa : database-platforn: org.hibernate.dialect.H2Dialect
    • h2드라이버를 사용하겠다는 의미. sql이나 다른 툴을 사용시 해당 코드가 변경되어야 한다.
    • hibernate: ddl-auto: update
      • 어플리케이션 실행 시 자동으로 테이블이 업데이트가 된다. true, none, 등등 다른 값들이 있지만 나중에 필요하면 알아보자.

  • h2:
    • console : enable: true
      • 기존 값은 false이다. 브라우저에서 h2 콘솔에 접속하게 해주었다.
    • path: /h2-console
      • localhost:8080/h2-console에 접속 시 h2 콘솔에 접근이 가능하다.

이제 서버 실행 후 브라우저 url에 localhost:8080/h2-console 에 접속 후 url 복붙하면 정상적으로 데이터베이스를 볼 수 있다.


테스트시엔 테스트 실행시 db가 생성되고 테스트가 끝나면 db가 사라지는 mem 방식으로 데이터베이스를 구분하였다.

profile
꼬질이

0개의 댓글