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

minwoo Jeon님의 프로필 이미지

작성한 질문수

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

테스트 - 스프링 부트와 임베디드 모드

실무에서의 test DB 구성 방식이 궁금합니다.

해결된 질문

작성

·

1K

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]

기존 질문 답변을 모두 읽어 보았지만, 실무에서의 테스트 db 세팅 방법의 정확한 방향이 잡히지 않아 질문드립니다.

테스트 db 환경을 로컬로도 구축하신다는 의미가 예를 들어 mysql을 사용하는 경우 로컬 mysql db에 실운영 mysql db 스키마를 등록하고 이를 test db로 사용하신다는 의미로 이해해도 될까요??

h2 임베디드 db 만을 신뢰하여 통합테스트와 같은 테스트를 실행하기에는 test의 신뢰도가 떨어진다는 내용들을 봐서 실제 사용하는 db를 쓰는 것이 맞을 것 같기는 한데 위와 같은 방식으로 하면 배보다 배꼽이 더 커질 것 같아 걱정입니다.

배민과 같은 좋은 기준을 가진 회사의 방식이 궁금하고 이를 적용하고 싶은데 답변만으로 어려우시다면 추후 테스트 코드 강의에 이를 반영하여 주시길 바라는 마음에서도 질문 남겨봅니다.(테스트 코드 강의 나오면 바로 구매할께요!)

답변 1

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. minwoo Jeon님

상황에 따라서 다르지만 다음과 같이 설정할 수 있습니다.

  • 로컬 환경 - H2 또는 mysql

  • 개발 환경 - mysql

  • 운영 환경 - mysql

개발 환경 개발 서버가 실행되어 있고, 개발 서버가 개발 환경의 db에 접근합니다. 여러 개발자가 그곳에 함께 배포하고 실제 운영환경에 배포가 나가기 전에 테스트 하는 용도로 이해하시면 됩니다.

로컬 환경은 내가 혼자가 개발한 것들을 검증하는 용도로 사용하는 환경입니다. 보통 IntelliJ에서 실행한다고 보시면 됩니다. 로컬 환경에 H2를 사용하기도 하고, 필요한 경우 mysql을 설치해서 사용하기도 합니다.

예를 들어서 네이티브 쿼리를 작성했는데 이 기능이 mysql에서만 동작한다면 그래서 이 기능을 확인해보려면 로컬 PC에 mysql을 설치해야겠지요?

감사합니다.

minwoo Jeon님의 프로필 이미지
minwoo Jeon
질문자

아래 글을 더 찾아보니 운영과 가장 유사한 스테이징 환경의 db를
테스트 db로 활용하는 방법이 눈에 들어와서 추후 활용을 고려중입니다!

바쁘신 와중에 답변 진심으로 감사드립니다.