안녕하세요 불망입니다, 이번에 사이드 프로젝트를 진행하게 되었는데 iOS 부분을 모두 혼자 담당하게 되었습니다
이번 프로젝트에서 TCA + Tuist + Combine을 활용하려고 합니다. 직접 사용해보면서 어떤 장점이 있고 어떤 단점이 있는지 알아보려고 합니다. 오늘은 TCA 패턴에 대해 간단하게 서치해봤습니다.
디자인 패턴
- 코드가 특정 문제를 해결할 때, 정형화된 하나의 규칙을 제안하는 것
아키텍처 패턴
- 정리된 코드들을 더 추상화된 비즈니스적 문제 해결 관점으로 정리하는 규칙
TCA 패턴
The Composable Architecture을 활용한 아키텍처 패턴에 대해 설명
SwiftUI는 선언형 UI로 구현하는 환경에서 MVVM 패턴이 자주 사용되었습니다.
그 외 비즈니스 로직, 기업의 개발 환경 및 기능 설계에 따라 RIBs, VIPER, MVP, Clean등의 아키텍처 패턴이 보편적으로 사용된다고 합니다.
MVC에서 View의 로직을 처리하는 책임 객체, Controller가 ViewModel로 변화하였고 MVVM 아키텍처가 등장했습니다.
하지만 ViewModel 객체의 존재 이유였던 State-Binding이 SwiftUI의 선언형 UI에 이미 반영되어 있다는 점, Reactive Programming을 구성하기 위해 곧잘 활용되었던 RxSwift 환경에서, 데이터를 바인딩하고 처리하는 로직을 책임진 것이 바로 ViewModel 객체입니다.
그러나 비동기 처리를 위한 데이터 바인딩을 View에서 처리할 수 있는 SwiftUI가 나오며 ViewModel에 의미를 잃었다고 합니다,,!
TCA는 값 타입에 기반하여 각 개체를 모듈화하고 애플리케이션 전체의 상태를 일관적으로 관리가 가능합니다. 최소 기능 단위로 구성된 각 Unit 객체는 다른 기능으로 결합, 분리를 쉽게할 수 있다고합니다.
TCA는 일관적인 방식으로 상태를 관리하고, 테스트의 유연성을 확보 가능하다고 합니다.
The Composable Architecture의 특별한 장점들
- 값 타입에 기반한 안정적인 State의 변형
- 유저 행동에 대한 로직을 처리하는 Action과 Effect의 일관성
- 객체 간 결합과 분리의 유용성
- 비교적 편리한 테스트
'SwiftUI > 정리' 카테고리의 다른 글
[SwiftDataStructure&Algorithms] 기본 데이터 구조(세트, 튜플) (0) | 2024.03.15 |
---|---|
[SwiftDataStructure&Algorithms] 기본 데이터 구조(배열, 딕셔너리) (0) | 2024.03.13 |
[SwiftDataStructure&Algorithms] 데이터 구조 (1) | 2024.03.12 |
XCODE IOS 프로파일링 디버깅 하는 방법 (1) | 2024.01.07 |
[SwiftUI] 아키텍처 고민 (0) | 2024.01.06 |