React Native 모바일 앱 CI/CD 파이프라인 구축기
주어진 상황에 맞는 자동화
이번에 회사에서 React Native를 사용해 만든 모바일 앱의 CI/CD 파이프라인을 구축해 보았습니다. 고도의 통합이나 테스트 자동화같은건 없고 거의 그냥 배포 자동화 정도만 구현한 상태라서 CI/CD라고 하기엔 좀 거창한 감이 있습니다..ㅎㅎ
CI/CD 파이프라인의 설계, 구현 과정을 이 포스팅에 정리해보고자 합니다! 사용한 기술들(github actions, fastlane, React Native)의 상세한 면면보다는 회사가 제공하는 서비스의 어떤 문제를 해결하려 했고, 해결했고, 어떤 문제가 남았는지 과정의 흐름과 결과 위주로 정리하는 글이 될 것 같습니다.
CI/CD 도입 목적
CI/CD를 도입한 목적은 크게 3가지였습니다. 후술할 모예 모바일 앱의 문제점을 해결하기 위해서였습니다.
- 복잡하고 시간도 오래 걸리는 모바일 앱 빌드 과정을 사람이 수행할 때 발생하는 휴먼에러와 리소스를 최소한으로 줄인다.
- Code Push 사용으로 인해 발생하는 추가적인 리소스를 줄인다. (Code Push를 사용할 수 있는지 판단 + 꼬이는 버저닝)
- 인력이 부족해 효과적으로 수행하지 못했던 QA를 원할하게 수행할 수 있는 파이프라인을 구축한 다.
모예 모바일 앱의 문제점
1. 사람이 하면 실수하기 쉬운 복잡한 빌드과정
우선, 모예 앱의 프로덕션 빌드가 유난히 복잡한 이유에 대한 설명이 필요합니다.