Written by
doremin
on
on
[iOS] 내가 Tuist를 선택한 이유
내가 Tuist를 선택한 이유
Tuist를 이용한 모듈화 장단점
장점
- 빌드 성능 최적화
- 변경된 모듈만 빌드되어 전체 빌드 시간 단축
- 병렬 빌드를 통한 빌드 시간 최적화
- 캐시를 통한 빌드 성능 향상
- 기능별 모듈 분리
- 모듈별 독립적인 테스트 가능
- 기능별 명확한 경계로 디버깅 용이
- 모듈 재사용성 향상
- 문제 발생 시 해당 모듈만 집중 디버깅 가능
- 협업 효율성
- project 파일을 Tuist로 생성하여 xcodeproj 파일의 git conflict 방지
- 팀원간 책임 영역을 명확하게 나눌 수 있다.
xcodeproj 파일에서 conflict가 발생하면 해결하는 과정이 많이 번거로움..
단점
- 초기 설정 복잡성
- 기존 Xcode 관리 방식과 다른 패러다임 적응 필요
- 팀원 전체의 학습 시간 필요
- 프로젝트 초기 설정에 많은 시간 소요
- 설정 변경 시 Tuist 파일을 직접 수정해야 하는 번거로움
- 지속적인 관리 부담
- Tuist 버전 업데이트에 따른 마이그레이션
- 설정 파일 관리라는 추가 작업 발생
- 팀원들의 동일한 Tuist 버전 유지 관리 필요 (이 문제는 mise를 통해서 해결한다고 공식 문서에서 있음)
- 외부 라이브러리 호환성 이슈
- 특정 라이브러리와의 통합 문제 발생 가능
- 호환성 문제 해결을 위한 추가 작업 필요
그럼에도 Tuist를 선택한 이유
이러한 단점들에도 불구하고 Tuist를 선택한 주된 이유는 Tuist가 내가 겪었던 불편함을 해결해줄 수 있는 도구라고 생각했기 때문이다.
이전에 iOS 앱을 개발하면서 다음과 같은 불편함이 있었다.
- 긴 빌드 시간 그렇게 큰 프로젝트가 아니었음에도 빌드 시간은 10분이 넘어가기 일수였고, 하루에 3번만 빌드해도 30분이 의미없이 사라졌다.
- project 파일 conflict 여러명이 함께 개발하다보면 심심치않게 xcodeproj에서 conflict가 발생했고, 이 것을 해결하는 과정이 불편했다. project 파일을 열어서 직접 수정하는 과정이 실수가 발생하기도 쉽고 의미없는 시간이라고 생각했다.
이러한 불편함을 Tuist가 해결해줄 수 있기에 이번에 프로젝트를 진행하면서 Tuist를 학습할 겸 도입했다.