최근 iOS 프로젝트에서 CI/CD 파이프라인을 직접 구축하면서 “왜 자동화가 필요한가?”에 대해 깊이 공감할 수 있는 경험을 했다.
1.0.0 ~ 1.0.4까지는 수동 배포에 익숙했고, “그냥 내가 직접 하면 되지 않을까?”라는 생각도 들었지만, 자동화 시스템을 도입하고 나니 개발 효율과 신뢰성이 얼마나 달라지는지 몸소 느낄 수 있었다.
내가 참여한 프로젝트는 tuist로 모듈화가 잘 되어 있었지만, 배포 과정만큼은 여전히 사람이 직접 모든 단계를 수행해야 했다. feature, test, cicd 브랜치에서 개발을 마치고 develop로 병합, 버전/빌드 넘버 수동 증가, main으로 병합, 그리고 아카이브 후 App Store Connect로 전송, 빌드 선택 및 배포까지… 이 모든 과정을 매번 반복하다 보니,
문제가 자주 발생했다.
무엇보다, 이런 반복적인 작업에 시간을 쏟다 보니 정작 중요한 개발에 집중하기 어려웠고, “이걸 자동화할 수 있다면 얼마나 좋을까?”라는 생각이 들었다.
이런 비효율을 해결하기 위해 Fastlane과 GitHub Actions를 도입해 CI/CD 파이프라인을 구축했다.
자동화된 배포 시스템을 통해
이제는 사람이 직접 배포에 관여하지 않아도, 브랜치 전략만 잘 지키면 신뢰성 있고 빠른 배포가 가능해졌다.
lane :beta do
# (1) 큰 업데이트 시 원하는 버전으로 직접 지정
increment_version_number(
version_number: "2.0.0",
xcodeproj: "ToMyongJi.xcodeproj"
)
# (2) 이후 자동 증가 로직(패치버전 +1)은 주석 처리하거나 삭제
# current_version = get_version_number(...)
# ...
sync_certificates
increment_build_number
build_ios_app(...)
upload_to_testflight(...)
end
이번 CI/CD 구축을 통해 iOS 앱의 배포 효율성과 신뢰성을 크게 높일 수 있었다. 특히 Fastlane과 GitHub Actions의 연동, 그리고 GitHub Secrets를 통한 민감 정보 관리의 중요성을 실전에서 체감할 수 있었다.
처음에는 인증, 환경변수, 브랜치 전략, 루비/번들러 버전, 빌드/테스트 타겟 등에서 어려움이 있었지만, 문제를 하나씩 해결하면서 자동화 파이프라인 구축에 대한 자신감도 함께 키울 수 있었다.
이 경험을 바탕으로 앞으로 더 복잡한 자동화, 다양한 배포 전략에도 유연하게 대응할 수 있을 것 같다. CI/CD 구축 경험은 iOS 개발자로서의 성장에 큰 자산이 될 것이다.