앱 아키텍처
MVC부터 MVVM, TCA와 RIBs까지 선택 기준을 봅니다.
BUILD · 15 ARTICLES
iOS 앱을 오래 운영할 때 부딪히는 구조와 도구의 문제를 다룹니다. 화면 구현을 넘어 아키텍처 선택, 상태와 의존성, 모듈 경계와 빌드 전략을 실무 관점에서 연결합니다.
주제 지도
MVC부터 MVVM, TCA와 RIBs까지 선택 기준을 봅니다.
UI 프로그래밍 모델과 상태·의존성 관리를 다룹니다.
SPM, Tuist와 빌드 성능을 실제 문제로 이해합니다.
Xcode와 Apple 플랫폼 도구를 앱 개발 흐름에 연결합니다.
처음 읽기
기초 개념에서 다음 단계로 자연스럽게 이어지는 글을 골랐습니다.
iOS 아키텍처 시리즈를 여기까지 따라오셨다면, 이제 선택지는 다 펼쳐졌습니다. MVC, MVVM, MVP, VIPER, 클린 아키텍처, MV, TCA까지요.
읽어보기iOS 개발 공부를 하다 보면 어느 시점에 반드시 RxSwift나 Combine이라는 벽을 만나게 됩니다. 채용 공고에는 빠지지 않고 등장하는데, 막상 코드를 열어보면 map, flatMap, sink가 줄줄이 이어지는 낯선 문법에 당황하기 쉽습니다. "그냥 클로저랑…
읽어보기전체 글
반복 NSTimer는 target을 강하게 참조해 invalidate() 전까지 뷰컨트롤러가 해제되지 않습니다. 순환 참조가 만들어지는 구조와 블록 기반 API, 생명주기 invalidate, weak proxy 세 해법을 정리했습니다.
읽어보기RIBs는 앱을 화면이 아니라 비즈니스 로직 단위로 쪼갭니다. 화면 없는 조각이 존재한다는 전제와 초대형 조직에서만 쓰이는 이유, VIPER와 무엇이 다른지를 정리했습니다.
읽어보기ReactorKit은 UIKit과 RxSwift 조합에서 단방향 데이터 흐름을 표준처럼 만든 프레임워크입니다. View와 Reactor 두 역할, Mutation이라는 중간 단계가 필요한 이유, TCA와의 차이를 정리했습니다.
읽어보기SwiftUI 시대의 아키텍처 논의에서 빠지지 않는 이름이 하나 있습니다. Point-Free가 만든 TCA(The Composable Architecture)입니다.
읽어보기채용 공고나 기술 블로그에서 "클린 아키텍처 기반"이라는 문구를 자주 보게 됩니다. 그런데 막상 코드를 열어보면 팀마다 모습이 제각각이에요. UseCase가 있는 곳도 있고 없는 곳도 있고, Repository의 역할도 다 다릅니다.
읽어보기iOS 아키텍처 이야기에서 VIPER만큼 평가가 극단적으로 갈리는 패턴도 드뭅니다.
읽어보기프로토타이핑 도구로 만든 화면은 그럴듯하게 "보이기만" 합니다. 버튼을 눌러도 미리 연결해 둔 화면으로 넘어갈 뿐, 데이터가 실제로 저장되지도, 서버와 통신하지도 않죠. 그래서 아이디어를 검증하려면 결국 누군가 코드를 짜야 했습니다.
읽어보기SwiftUI 소개 문서 첫 줄에는 어김없이 "선언형(declarative) 프레임워크"라는 말이 나옵니다. React도, Jetpack Compose도 자신을 선언형이라 부르죠.
읽어보기지난 편에서 Massive View Controller가 생기는 이유를 다뤘습니다. 뷰컨트롤러가 View와 Controller를 겸하는 바람에, 갈 곳 없는 코드가 전부 그리로 몰린다는 이야기였죠.
읽어보기