[내일배움캠프] 260401 TIL - 프로젝트 아키텍처 결정 논의

Bambu·2026년 4월 1일

내배캠 TIL

목록 보기
49/52

개발 기본사항 - 아키텍처, 활용 라이브러리에 관해 논의함


의견

  • MVVM - 이견 없음
  • Coordinator 패턴
    • 기획안 고려 시 잦은 화면 전환 발생 가능성 있음 → 부모 컨트롤러의 호출을 통한 화면 전환을 지양하기 위해 Coordinator 패턴 사용이 제안됨
  • RxSwift Input Output 패턴
    • 기존 과제에 활용했던 패턴이라 익숙함
    • ReactorKit과의 큰 차이점이 없어보임
    • 코드가 깔끔하지 못함
  • Reactor Kit
    • 기업에서 많이 쓰고 있는 기술로 활용해보고 싶음
    • 최근에는 사용 빈도가 낮아졌다는 소문
  • DI(Dependency Injection) Container (protocol 기반)
    • VC의 결합도 약화 가능
    • 테스트 용이

결과

  • MVVM 채택
  • Coordinator 패턴 사용 - RxFlow 활용 예정
  • ReactorKit 채택
  • Swift Dependency 라이브러리를 사용한 의존성 약화

선정 이유

  • MVVM
    • 테스트 용이성
    • Massive ViewController 이슈 방지
    • UI / 비즈니스 로직의 분리
      • 파일을 깔끔하게 관리 가능
      • 병렬 개발 가능
  • Coordinator 패턴
    • Navigation 기능의 분리로 Parent Controller의 Navigation Controller에 직접 접근하는 위험성 방지
  • Reactor Kit
    • Input Output 패턴의 최대 단점 - 상태 관리가 어려움 ⇒ 코드가 깔끔하지 못했던 이유! → 코드 흐름 추적의 어려움
    • 버그 발생 가능성을 낮출 수 있음 (코드 흐름의 추적이 비교적 쉬우므로)
    • SwiftUI에서 많이 쓰이는 TCA와 비슷한 구조 → 추후 TCA 학습 시에 Reactor Kit에 대한 이해가 도움을 줄 수 있음 (흐름을 익히기 쉬움)
  • Swift Dependency
    • 주입 객체를 상수로 선언하지 않으므로 사이드 이펙트를 줄일 수 있음
    • preview에서 실제로 동작하기 힘든 부분을 mock up 데이터를 사용한 객체로 임시 실행 가능

  • ReactorKit 학습 필요
  • RxFlow 학습 필요: 튜터님이 주신 repo 공부하기
  • Supabase 장점: 백엔드 개발자 없이도 API에서 제공하는 코드를 통해 바로 DB 접근 가능
    -> 단, 보안에 신경써주어야 함
profile
안녕하세요, iOS 개발을 공부하고 있는 Bambu입니다. (프로필: Swifticons)

0개의 댓글