레고처럼 조립하는 토스 앱
이준석/송범근 토스 · 토스 기술 블로그
AI 핵심 요약
수백 개의 서비스가 들어간 토스 iOS 앱은 기존 계층 구조에서 Feature 모듈 간 의존성이 복잡해지고 순환 참조와 구조 파악의 어려움을 겪었다. 이를 해결하기 위해 각 서비스를 Feature, Interface, Testing, Tests, Example의 다섯 모듈로 나누는 Microfeatures 아키텍처를 도입하고, 서비스 간에는 구현체가 아닌 Interface에 의존하도록 바꿨다. 대규모 모듈 분리 과정의 작업량과 충돌을 줄이기 위해 Tuist 템플릿과 Scaffold를 활용했으며, iOS 챕터 전체가 전환에 참여했다. Example 앱은 전체 앱보다 빠르게 기능과 UI를 확인하고 사내에 배포할 수 있어 개발 및 협업에도 도움이 됐다.
- 서비스 간에는 구현 모듈 대신 공개 인터페이스를 제공하는 모듈에 의존하게 해 결합도를 낮출 수 있다.
- Microfeatures는 기능, 인터페이스, 테스트용 코드, 테스트, 예제 앱을 분리해 서비스 단위로 관리한다.
- Tuist의 Stencil 템플릿과 Scaffold를 활용하면 반복적인 모듈 생성 작업을 자동화할 수 있다.
- Example 앱은 필요한 기능만 빌드해 UI를 빠르게 확인하고, 디자이너·기획자와 결과물을 공유하는 데 유용하다.
소개
수많은 서비스를 담고 있는 대규모 iOS 앱에 어울리는 아키텍처는 무엇일까요? 프로젝트 간의 의존성과 모듈 간의 결합도를 낮춰, 더 효율적인 서비스 개발, 관리를 이뤄낸 과정을 소개합니다.
비슷한 학습 자료
컨퍼런스 SLASH
토스ㅣSLASH 23 - 레고처럼 조립하는 토스 앱
컨퍼런스 SLASH
수많은 서비스를 담고 있는 대규모 iOS 앱에 어울리는 아키텍처는 무엇일까요? 프로젝트 간의 의존성과 모듈 간의 결합도를 낮춰, 더 효율적인 서비스 개발, 관리를 이뤄낸 과정을 소개합니다. 이준석, 송범근 / 토스 iOS Developer 발표 자료 👉🏻 https://bit.ly/3J33r5k 토스 개발자 컨퍼런스 SLASH에 대한 자세한 정보는 👉🏻 https://bit.ly/43kW3tO 컨퍼런스 및 세션에 대한 문의는 👉🏻 slash@toss.im 토스에 합류하고 싶다면 👉🏻 https://toss.im/career/jobs #microfeaturesarchitecture #microfeatures #iosdeveloper #토스 #개발자컨퍼런스 #SLASH *본 발표자료의 저작권은 연사에 있으며, 저작권자의 사전 서면 동의 없이 자료의 일부 또는 전부를 이용하거나 배포할 수 없습니다. *또한 해당 자료를 복제하여 SLASH 행사 홈페이지를 제...
모바일 앱 개발
문서 차영훈
토스의 디바이스 팜 만들기
문서 이지윤
크고 복잡한 제품, 과감하게 갈아엎기
문서 고현선