SSAFY11th-book-study / book-study

0 stars 0 forks source link

[7.5.2] 내장형 데이터베이스 #85

Open sootudio opened 2 months ago

sootudio commented 2 months ago

629페이지에서는, ConcurrentHashMap 대신 내장형 DB를 사용해서 SQL을 저장하고 수정한다고 합니다. 여기서 내장형 DB라는 개념을 처음 들어봤는데, 몇 가지 궁금한 점이 생겨 여기 여쭤봅니다.

sootudio commented 2 months ago

바쁜대로... GPT에게 그대로 물어본 답변 올립니닷...!


내장형 DB란 무엇인가?

내장형 DB(Embedded Database)는 애플리케이션 내에 포함되어 함께 실행되는 데이터베이스입니다. 일반적인 데이터베이스와는 달리 별도의 데이터베이스 서버를 독립적으로 실행할 필요가 없고, 애플리케이션의 라이브러리로 포함되어 동작합니다.

내장형 DB의 용도

  1. 개발 및 테스트:

    • 내장형 DB는 개발 및 테스트 환경에서 주로 사용됩니다. 개발 중에 간단한 데이터 저장 및 조회를 위해, 또는 단위 테스트에서 데이터베이스 의존성을 최소화하기 위해 사용됩니다.
    • 예를 들어, 스프링 부트에서는 H2, HSQLDB, Derby 등의 내장형 DB를 쉽게 사용할 수 있습니다. 이를 통해 개발자는 복잡한 데이터베이스 설정 없이도 쉽게 데이터베이스 기능을 테스트할 수 있습니다.
  2. 경량 애플리케이션:

    • 내장형 DB는 경량 애플리케이션에서 사용되기도 합니다. 예를 들어, 작은 규모의 데스크탑 애플리케이션이나 모바일 애플리케이션에서 사용할 수 있습니다.

내장형 DB의 현재 사용 여부

내장형 DB는 현재도 많이 사용되고 있으며, 특히 스프링 부트와 같은 프레임워크에서 쉽게 설정하고 사용할 수 있습니다. 스프링 부트에서는 개발과 테스트를 위해 기본적으로 H2 데이터베이스를 내장형으로 포함하고 있습니다.

내장형 DB의 설정과 사용 예

스프링 부트 애플리케이션에서 내장형 DB를 사용하는 예제를 살펴보겠습니다.

  1. 의존성 추가:

    • pom.xml 또는 build.gradle에 H2 데이터베이스 의존성을 추가합니다.

      <!-- pom.xml -->
      <dependency>
       <groupId>com.h2database</groupId>
       <artifactId>h2</artifactId>
       <scope>runtime</scope>
      </dependency>
  2. 설정 파일 수정:

    • application.properties 또는 application.yml 파일에서 내장형 DB 설정을 추가합니다.

      # application.properties
      spring.datasource.url=jdbc:h2:mem:testdb
      spring.datasource.driverClassName=org.h2.Driver
      spring.datasource.username=sa
      spring.datasource.password=password
      spring.h2.console.enabled=true
    • 위 설정은 H2 데이터베이스를 메모리 모드로 사용하고, H2 콘솔을 활성화하여 브라우저에서 데이터베이스를 확인할 수 있게 합니다.

  3. H2 콘솔 접근:

    • 애플리케이션을 실행한 후, http://localhost:8080/h2-console로 접근하면 H2 데이터베이스 콘솔을 사용할 수 있습니다.

요약