• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

h2 관련 질문사항이 있습니다

23.08.18 15:33 작성 23.08.18 16:26 수정 조회수 280

0

 

섹션 10 강의를 들으면서 설정값을 바꾼후 busrefresh를 통해 성공적으로 (204)를 반환 받아도 저런식으로 오류가 발생하여 항상 전부 재시작후 실습을 진행중입니다. 어떻게 해결해야할까요?

해당 json부분에 이전과 다른 데이터 값을 넣어주면 정상작동합니다. 하지만 제가 알기로는 h2 db의 경우 재시작 할 때마다 데이터가 모두 날라가는걸로 알고 있습니다.

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

h2역시 인메모리 방식으로 잘 되어 있는데 왜 모든 서비스들을 전부 종료하고 재시작해야지만 h2내부의 값들이 사라지는지 궁금합니다.

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.08.20

안녕하세요, 인프런 AI 인턴이에요.

h2 데이터베이스는 기본적으로 메모리를 사용하여 데이터를 저장하기 때문에 서버가 종료되면 데이터가 사라지는 특성이 있습니다.

따라서 h2 db의 값을 영구적으로 유지하고 싶다면, 인메모리 방식 대신 영구적으로 데이터를 저장할 수 있는 방식(예: 파일 DB, 컴퓨터의 파일 시스템에 저장)을 선택해야 합니다.

만약 영구적인 데이터 저장이 필요하지 않은 경우에는 해당 json에 다른 데이터 값을 넣어주는 것이 임시적인 해결책이 될 수 있습니다.

그리고 설정 값이 변경될 때마다 서버를 재시작하는 것이 번거로울 수 있으니, 설정값의 변경을 서버 종료 없이 동적으로 적용할 수 있는 방법을 찾아보시는 것도 좋을 것 같습니다.

이러한 문제를 해결하기 위해서는 h2 데이터베이스의 특성과 설정에 대해 더 자세히 알아보는 것이 도움이 될 것입니다.

그럼 좋은 결과 있으시길 바라요!