본문 바로가기

컨테이너2

Testcontainers에서 MySQL 사용해보기 (테스트 환경에서 자동으로 MySQL 컨테이너 띄우고 내리기) 이 글은 이전 글 Testcontainers 사용하기까지 에서 이어졌습니다. 잘못된 내용이나 의견 있다면 편하게 말씀해주세요 🙏🏻 Testcontainers 간단 소개 Testcontainers 라이브러리는 도커 컨테이너를 자바 코드로 조작할 수 있다. 다시 말해 자바 코드로 특정 도커 이미지를 실행하고 끌 수 있다. 일반 도커 컨테이너와 마찬가지로 네트워크 통신, 스토리지 조작, 환경변수 설정을 할 수 있다. 이를 DB 테스트 환경에 도입하면 다음과 같다. 인메모리 DB로 테스트하는 것이 아닌 실제 운영 DB와 동일한 환경을 외부 인스턴스에 띄우지 않고 로컬 도커 컨테이너에서 테스트할 때마다 DB 컨테이너를 띄우고 테스트가 끝나면 컨테이너를 내리는 작업을 자동화할 수 있다. CI 환경에 도커만 설치되어.. 2022. 6. 23.
[의사결정] Testcontainers 사용하기까지 잘못된 내용이나 의견 있다면 편하게 말씀해주세요 🙏🏻 사건의 개요 Spring 프로젝트를 했다. DB와 관련된 통합 테스트 작성하였고 모두 통과하였다. 실제 운영 DB 설정을 위해, 테스트 코드에서 작성한 더미 데이터 스크립트(. sql)를 사용하지 못해 재작성하였다. 사건의 원인 테스트 DB 환경 : 인메모리(H2) DB 실제 운영 DB 환경 : MySQL 8.0 테스트와 배포 DB 환경이 달랐다. JPA가 제공해주는 Dialet(방언) 기능을 사용하면 두 DB 간 문제가 없었지만, 방언 기능을 사용하지 않는 퓨어 .sql 스크립트에서 문제가 발생했다. (더미 데이터 .sql 스크립트 재사용 못함) 방언 기능을 사용하지 않는 SQL은 없었지만 만약 있었다고 한다면 문제가 발생할 수 있다.(사실 몇 문제.. 2022. 6. 21.