일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- @environmentobject 프로퍼티 래퍼
- react modal
- zustand
- react-quill
- BFS
- react상태관리라이브러리
- react fsd
- 리액트최적화
- gitbub desktop
- C++
- accesstoken 재발급
- 비동기함수
- featured-sliced-design
- modal 관리
- react-router-dom
- jwt프론트
- @observedobject 프로퍼티 래퍼
- 동기 함수 내에서 비동기 함수 호출
- jwt로그아웃
- 페이지이동함수
- zustand란
- git
- 원격저장소 연결
- finddomnode경고
- CSS
- 리렌더링최적화
- react-quill 경고메세지
- @published 프로퍼티 래퍼
- 컴퓨터네트워크
- react hook
- Today
- Total
leebaek
[iOS] TCA - The Composable Architecture 에 대해 알아보자 (1) 정의, 개념 본문
GitHub - pointfreeco/swift-composable-architecture: A library for building applications in a consistent and understandable way,
A library for building applications in a consistent and understandable way, with composition, testing, and ergonomics in mind. - pointfreeco/swift-composable-architecture
github.com
■ TCA란 ?
복잡한 애플리케이션의 상태 관리 및 비지니스 로직을 보다 쉽게 구성하고 테스트할 수 있도록 설계된 라이브러리
- 단방향 아키텍쳐
■ TCA의 주요 개념
□ State
기능이 논리를 수행하고 UI를 렌더링하는데 필요한 데이터를 설명함
애플리케이션의 모든 상태를 단일 구조체에 모아서 관리함
-> 앱의 다양한 상태 한눈에 파악 가능
□ Action
State를 변경시키는 이벤트임
-> 사용자 작업, 알림, 이벤트 소스 등 기능에서 발생할 수 있는 모든 작업을 나타냄
□ Reducer
Action이 발생했을 때 State를 어떻게 변화시킬지 정의함(순수 함수)
현재 상태와 액션을 입력으로 받아 새로운 상태를 출력으로 반환함
- 앱의 현재 상태를 특정 작업에 따라 다음 상태로 발전시키는 방법을 설명하는 함수
- Effect 값을 반환하여 수행할 수 있는 API 요청과 같이 실행해야 하는 모든 효과를 반환하는 역할 담당
□ Store
실제로 기능을 구동하는 부분임
-> 모든 사용자 작업은 스토어로 보내짐
스토어는 상태를 저장하고, 액션을 디스패치하여 리듀서를 통해 상태를 업데이트함
-> 뷰는 스토어를 구독하여 스토어에서 상태 변화를 반영함
□ Environment
애플리케이션이 의존하는 외부 서비스나 데이터를 주입하는데 사용됨
-> 테스트를 용이하게 하고, 의존성을 분리해줌
이와 같은 개념을 조합하여 작은 모듈로 나누고, 이를 다시 조합하여 복잡한 애플리케이션을 구성함
-> 애플리케이션의 유지보수성을 높임
-> 테스트 가능성을 향상시킴
■ TCA의 장점
예측 가능한 상태 관리: 모든 상태 변화가 액션을 통해 이루지므로, 상태 변화를 추적하고 디버깅하기 쉬움
모듈화: 앱의 각 부분을 독립적인 모듈로 구성하여 재사용성과 유지보수성을 높임
테스트 가능성: 리듀서와 상태, 액션을 조합한 테스트가 용이해지며, 비즈니스 로직 테스트가 쉬움
'개발 > iOS' 카테고리의 다른 글
[iOS][DorunDorun] 온보딩 화면 - 안내문구 enum으로 관리, 화면전환 (0) | 2025.03.09 |
---|---|
[iOS][DorunDorun] 닉네임 유효성 검사 - 코드 개선 (1) | 2025.03.02 |
[iOS][DorunDorun] 닉네임 설정화면 UI 구현 및 닉네임 유효성 검사 (4) | 2025.02.23 |
[SwiftUI] 가로, 세로 회전 기능 설정 방법 (1) | 2024.02.16 |