CI 란?

<aside> 💡 현대 애플리케이션 개발에서 여러 개발자들이 동일한 애플리케이션의 각기 다른 기능을 동시에 작업할 수 있도록 하는 것을 목표로 한다.

기존에 merge day를 정해 코드를 병합하는 경우, 수많은 작업 내용들이 충돌이 발생할 수 있다. 따라서 병합에 소모하는 시간과 리소스가 커지게된다.

이를 CI (지속적 통합)을 통해 병합의 주기를 줄여 작업을 더욱 수월하고, 자주 수행할 수 있다. 자동화된 병합과정과 테스트 과정을 통해 발생하는 버그와 충돌을 자주 해결할 수 있다.

</aside>

기술


목표


과정


<aside> 💡 정확한 테스트 환경과 개발에 몰두하기 위한 자동화를 목표로 두었다.

</aside>

CI 환경 구성하기

  1. H2 인메모리 DB를 이용한 테스트
  2. 서버 DB를 이용한 테스트
  3. CI 환경에 MySQL 컨테이너를 띄운 테스트

따라서 최종적으로 3번 GitHub Actions를 이용한 CI 환경에 MySQL 컨테이너를 띄워 테스트를 진행했습니다!