인프런 커뮤니티 질문&답변

강우석님의 프로필 이미지

작성한 질문수

스프링 DB 2편 - 데이터 접근 활용 기술

테스트 - 데이터베이스 분리

테스트 DB 방안에 대해

23.09.28 09:04 작성

·

480

0

안녕하세요~!

혹시 테스트 DB 단은 단순히 다음과 같이 명시하여

 

datasource:

url: jdbc:h2:mem:test;MODE=MySQL # Test 는 인메모리 사용

driver-class-name: org.h2.Driver

username: sa

password:

 

메모리 DB 를 사용하는 방법은 별로 추천하지 않으실까요?
별도의 DB 를 사용하는 것이 제일 좋은 방법일까요?

메모리 DB를 사용하는것이 빠르고 편할 것 같다고 생각헀는데, 보통 어떤 방식을 실무에서 사용하는지 궁금합니다!! 감사합니다 :)

 

(예를 들어, ci 및 build 서버에서 Test 수행시 외부 DB 서버 내 Test 전용 DB 를 통해 Test 를 한다)

답변 2

0

David님의 프로필 이미지

2023. 10. 01. 20:01

안녕하세요. 강우석님, 공식 서포터즈 David입니다.

테스트시, 인메모리 DB를 사용해도 좋습니다.

만약 인메모리 DB를 사용하지 않는다면, 도커와 같은 컨테이너를 띄워서 테스트 하는 방법도 있습니다.

이 방법은 아래 링크를 참고해 주세요.

https://testcontainers.com

감사합니다.

강우석님의 프로필 이미지
강우석
질문자

2023. 10. 02. 12:37

별도 DB, 컨테이너 띄워서 사용 등의 방법들이 있는것들은 알고 있습니다!

다만 어떤게 Best 인지, 강사님께서는 어떤걸 추천하시는지와 이유 등에 대해서 궁금했습니다 ㅎㅎ

David님의 프로필 이미지

2023. 10. 02. 13:19

최대한 운영과 동일한 환경을 구성하고 테스트하면 좋습니다.

이런 관점에서 인메모리 DB는 한계가 있습니다.

그래서 도커를 사용하여 운영과 동일한 DB를 손쉽게 구성하여 테스트하는 방법을 선호합니다.

0

인프런 AI 인턴님의 프로필 이미지

2023. 09. 30. 09:06

안녕하세요, 인프런 AI 인턴이에요. 테스트 DB에 대한 방안에 대해 궁금하신 거죠?
말씀하신 것처럼 메모리 DB를 사용하는 방법은 빠르고 편리하기는 하지만, 실무에서는 보통 별도의 DB를 사용하는 것이 일반적입니다.
실무에서는 외부 DB 서버에 테스트 전용 DB를 구성하여 테스트를 진행하는 방식이 많이 사용됩니다. 이 방식은 테스트 데이터의 저장과 관리가 용이하며, 실제 운영 환경과 유사한 설정을 사용하여 테스트를 진행할 수 있습니다. 또한, 여러 사람이 동시에 테스트를 수행할 수 있으며, 테스트 결과를 공유하고 분석하기도 용이합니다.
따라서 실무에서는 메모리 DB보다는 외부 DB를 사용하여 테스트를 진행하는 것이 더 좋은 방법이라고 할 수 있습니다.
추가로, CI 및 build 서버에서 테스트를 수행할 때에도 외부 DB 서버에 테스트 전용 DB를 사용하는 방식을 많이 활용하고 있습니다.
이렇게 외부 DB를 사용하는 것은 테스트 데이터의 안정성과 확장성을 보장하는 한편, 테스트 결과에 대한 신뢰도도 높일 수 있는 장점이 있습니다.
이에 대해 도움이 되셨으면 좋겠습니다. 추가로 궁금한 점이 있다면 언제든지 물어보세요! 감사합니다요.