토스 SLASH23 | 레고처럼 조립하는 토스 앱

torinunna·2023년 7월 28일
0

SLASH23

목록 보기
1/2
post-thumbnail

🚧 기존 계층 구조

Foundation - Network - Service - Feature - App

많은 Feature layer의 생성 + 모듈간 의존성 ⬆

▶️ 홈/인증/송금/소비와 같은 Feature layer의 모듈들이 서로 의존하지 않고 하위 layer(Service layer)의 모듈만 의존했으나 하나의 Feature가 점점 발전하면서 다른 Feature의 코드를 사용하는 경우가 증가
▶️ 모듈간 의존관계가 꼬이면서 구조 파악이 어려워짐
▶️ 빌드 속도가 느려지고 순환 참조의 발생 증가

🔑 해결

Microfeatures Architecture 채택

  • Feature: 기능 구현
  • Interface: 해당 기능 중 외부에 공개되어야 하는 인터페이스
  • Testing: 인터페이스 모듈의 Mocking 제공
  • Tests: 단위 테스트
  • Example: 해당 기능을 제공할 수 있는 앱 타겟

어려움

  • 하나의 모듈을 다섯 개의 모듈로 분리 x 수백 개의 모듈에 적용
  • conflict 발생
  • resource 부족

➡️ 반복 작업: Tuist에서 제공하는 Template, Scaffold 활용

Why?

Example 앱: 일부 기능만 예시로 보여주는 가벼운 앱

  • UI 관련 개발에 용이
  • 빌드가 빠름 ▶️ 앱 전체가 아니라 일부만 빌드
    코드 수정 ▶️ 빌드 ▶️ 화면체크 과정 반복
  • 사내 배포 가능 ▶️ 협업에 용이

▼ 출처
https://toss.im/slash-23/session-detail/B2-3

profile
ios가 궁금해!

0개의 댓글