지속적 통합 (CI)은 개발자가 코드 변경사항을 중앙 저장소에 자주 병합한 후 자동 빌드와 테스트가 실행되는 소프트웨어 개발 방식입니다.
기본 CI 시스템을 설정하여 병합 후 빌드를 손상시키는 새로운 변경사항을 방지할 수 있습니다. 고급 CI 시스템을 프로그래밍하여 앱을 자동으로 테스트하고 API 수준, 화면 크기, 플랫폼과 같은 다양한 환경에서 예상대로 작동하는지 확인할 수 있습니다.
이 문서에서는 개발자가 Android 프로젝트에 효과적인 CI 시스템을 설정하기 위해 사용하는 일반적인 전략을 보여줍니다. 이 가이드라인은 일반적이며 대부분의 솔루션에 적용됩니다.
일반적인 예
일반적인 CI 시스템은 다음과 같은 워크플로 또는 파이프라인을 따릅니다.
- CI 시스템은 일반적으로 개발자가 '변경 목록' 또는 '병합 요청'이라고도 하는 pull 요청을 만들 때 코드 변경을 감지합니다.
- 워크플로를 실행할 서버를 프로비저닝하고 초기화합니다.
- 필요한 경우 Android SDK 또는 에뮬레이터 이미지와 같은 도구와 코드를 가져옵니다.
- 주어진 명령어(예:
/gradlew build
)를 실행하여 프로젝트를 빌드합니다. - 특정 명령어(예:
/gradlew test
)를 실행하여 로컬 테스트를 실행합니다. - 에뮬레이터를 시작하고 계측 테스트를 실행합니다.
- 테스트 결과 및 APK와 같은 아티팩트를 업로드합니다.
CI의 이점
CI의 장점은 다음과 같습니다.
- 소프트웨어 품질 향상: CI는 문제를 조기에 식별하고 해결하여 소프트웨어 품질을 개선하는 데 도움을 줄 수 있습니다. 이렇게 하면 소프트웨어 출시에서 버그 수를 줄이고 전반적인 사용자 환경을 개선할 수 있습니다.
- 손상된 빌드 위험 감소: CI로 빌드 프로세스를 자동화하면 프로세스 초반에 문제를 해결하여 손상된 빌드를 더 효과적으로 방지할 수 있습니다.
- 출시 신뢰도 향상: CI는 각 버전이 안정적이고 프로덕션에 즉시 사용 가능한지 확인하는 데 도움이 될 수 있습니다. CI는 자동화된 테스트를 실행하여 잠재적 문제를 일반에 공개하기 전에 식별할 수 있습니다.
- 커뮤니케이션 및 공동작업 향상: CI는 개발자가 코드와 테스트 결과를 공유하는 중앙 장소를 제공하여 개발자 및 다른 팀 구성원이 더 쉽게 협업하고 진행 상황을 추적할 수 있도록 도와줍니다.
- 생산성 향상: CI는 시간이 많이 걸리고 오류가 발생하기 쉬운 작업을 자동화하여 개발자 생산성을 높이는 데 도움이 될 수 있습니다.
추가 자료
지속적 통합을 사용하여 앱 개발을 개선하는 방법에 관한 자세한 내용은 다음 페이지를 참고하세요.