본문 바로가기
won2dev-log
HomeArchiveTagsCategoriesAboutProjects
HomeArchiveTagsCategoriesAboutProjects
won2dev-logwon2dev-logwon2dev-log

비전공 개발자의 로그 | won2dev-log

Navigation
  • Home
  • Archive
  • About
  • Projects
Categories
  • Docs
  • TIL
  • Automation
  • Git · GitHub
  • Project
Tags
  • TIL
  • Java
  • Spring
  • Backend
  • n8n
더보기
About

기록을 거름 삼아 공유는 성장을 만든다.

LicensePrivacy
© won2dev 2026. All rights reserved.
Home›Docs›H2? 컵라면처럼 간편한 DB였다
Docs

H2? 컵라면처럼 간편한 DB였다

won2dev·2025년 07월 07일
#DB#DevNote

🗄️ H2 데이터베이스 라는건 무엇일까?

📌 H2 = 가벼운 내장형 DB

개발과 테스트 환경에서 많이 쓰는 경량형 데이터베이스다.

즉, 무겁고 복잡한 대형 DB 대신 간단하고 빠르게 돌려볼 수 있는 DB라고 생각하면 이해하기 쉽다.

설치가 간단하고, 자바 애플리케이션과 호환성도 좋다,

H2는 크게 인메모리 / 임베디드 / 서버 모드 3가지 방식으로 구동할 수 있다.

필자는 컵라면 조리 방식에 비유해 설명했다.

🍜 예시로 이해하기 (컵라면 조리)

컵라면을 조리한다고 가정해보자.

DB도 컵라면처럼 데이터(국물)와 DB 엔진(물 끓이는 기계) 이 어디 있느냐에 따라 종류가 나뉜다.

모드비유설명
Server Mode편의점 뜨거운 물외부 기계(엔진)가 따로 있고, 데이터도 거기에 저장
In-Memory Mode즉석 컵라면애플리케이션 안에서만 임시로 끓여먹고 다 먹으면 끝
Embedded Mode집에서 끓여먹는 라면애플리케이션 안에서 조리하지만 국물(데이터)은 따로 저장

📝 H2 모드별 특징 요약

모드엔진 위치데이터 저장특징용도
Server외부 엔진파일(로컬)애플리케이션과 분리, 여러 프로그램이 같이 쓸 수 있음배포
In-Memory애플리케이션 내부메모리종료 시 데이터 사라짐테스트
Embedded애플리케이션 내부파일(로컬)종료해도 데이터 유지개발

🛠️ 스프링 설정

  • 공통 드라이버
    plain text
    driver-class-name=org.h2.Driver
    username=root
    password=
    driver-class-name=org.h2.Driver
    username=root
    password=
  • in-memory
    plain text
    jdbc:h2:mem:{DB이름}
    jdbc:h2:mem:{DB이름}
  • embedded
    plain text
    jdbc:h2:{경로}
    jdbc:h2:{경로}

✍️ 한 줄 마무리

조금더 빠른 이해를 위해서 컵라면 조리에 비유해보니까 의외로 쉽게 이해됐다. 비유로 이해 하니까 훨신 빠르게 이해 되었다.

H2는 아래처럼 기억하자

H2란? 가볍게 쓸 수 있는 개발/테스트용 DB

H2 모드란? 데이터와 엔진을 어디에 두느냐를 구분한 것

왜 구분하나? 상황에 맞게 효율적으로 데이터를 관리하려고

공유하기
이전 글예전엔 그냥 외웠다… 이번엔 진짜로 이해한 CRUD다음 글 Spring_day_Project - 일정 관리 앱 개발

목차

  • 🗄️ H2 데이터베이스 라는건 무엇일까?
  • 📌 H2 = 가벼운 내장형 DB
  • 🍜 예시로 이해하기 (컵라면 조리)
  • 📝 H2 모드별 특징 요약
  • 🛠️ 스프링 설정
  • ✍️ 한 줄 마무리

카테고리

Docs

태그

#DB#DevNote

최근 글

Git 요약 (1) - Rebase, Stash, Squash MergeTIL - MSA 핵심 요소 정리TIL - (4) Spring 어노테이션 정리: Mockito를 활용한 단위 테스트TIL - (3) Spring 어노테이션 정리: Lombok Getter, Setter와 생성자TIL - (2) Spring MVC와 WebFlux의 차이: 블로킹과 논블로킹