TCA 생각 정리
TCA 공부하고 정리해보면서 느낀 점들.
히스토리
- 2023.01.16
- TCA 0.40 버전
- ReactorKit을 주력으로 사용하고 있고 TCA가 핫하대서 이제 보기로 함.
- ReactorKit과 전반적으로 비슷한 느낌이라서 익숙한 패턴인데 빠르게 만들어지고 있는거 같음
- 모바일 개발자라 이해하기 어려운 부분이 많았는데 Redux에 대한 정리가 한번 있으면 좋대서 이거 한번 보고 보니까 훨씬 더 잘 이해되는 느낌.
- 현 시점에서는 도입보다는 트렌드? 정도로 시간될 때 적당히 학습하는걸로
- 2023.10.18
- TCA 1.0.0이 출시되었지만 변화의 폭이 너무 커서 오히려 현재 학습하는게 크게 도움될 거 같지가 않음.
- node.js 공부하고 싶었는데, 이거 보는게 개인적으로 가치가 더 높다고 느낌.
- 현 시점에서도 회사 서비스 아키텍처로 적용하기에 좋지 않다고 느낌. 하지만 여기서 알려주는 개념이나 철학은 도움이 많이 되는거 같음.
- TCA 1.0.0이 출시되었지만 변화의 폭이 너무 커서 오히려 현재 학습하는게 크게 도움될 거 같지가 않음.
- 2024.11.19
- TCA 1.16.0이 출시되었고, 기존 프로젝트의 마이그레이션 필요성으로 다시 학습을 고민 중
- 특히 1.7.0 버전에도 별도 마이그레이션 가이드가 있을 정도로, 변화가 메이저 버전에 가깝고 매우 빠름.
- 애플에서 SwiftUI의 발전 속도까지 고려하면, TCA 팀 규모로 이 속도를 따라갈 수 있을지 의문이 들기도 한다.
- 개인적으로 TCA 안쓰고 개발하는게 생산성이 더 좋다고 느껴지고 TCA의 장점을 챙기기엔 학습 비용이나 개인적인 관심도 (AI, 백엔드 개발)에 비해서 밀리는거 같음.
- 다른 것을 허용하기가 어려울 정도로 아키텍처에 너무 강하게 묶이는 느낌이라서 회사 서비스에는 도입하지 않는게 나을거 같음.
- 개인적으로 타겟의 익스텐션이나 WWDC 신기능 발표되었을 때 TCA에서 발생하는 몇가지 문제들로 인하여, 기능을 차선책을 활용해 개발하거나, 생산성이 크게 저하되는 것 같음.
- 적절한 자유도는 개발자 개인의 동기부여와도 연관되어 있다고 생각하는데 코드 퀄리티 향상으로 이어진다고 생각해서 TCA 아직까지 고민
- 또한 시간이 흐르면서 트렌드도 바뀔탠데 아키텍처 계속 보는거보다 그냥 다른 기술 확장하는게 더 나을거 같음.
- 포인트-프리에서 제시하는 개념이나 철학은 여전히 좋아서 이건 공부하면 도움이 되는듯
- 현 시점에 RIBs, MVVM, Clean Architecture, 모듈화 정도면 현재까지 충분하다고 느껴지는데 더 쉽고 단순해지려고 하는 SwiftUI에 TCA를 도입하는게 나은 선택인지 고민
- TCA 없이 SwiftUI를 사용하고 있는데 사내 서비스 운영에도 문제가 없음.
- 오히려 TCA 오픈소스를 버그를 파악하는데, 시간을 엄청 잡아 먹었던 기억이 있어서 안쓰는게 생산성도 더 좋다고 느낌
- 포인트-프리에서 TCA 강의가 유료라서 아키텍처를 팀원 전부가 알아야 하는 상황에서 도입한다는 건 별로 좋지 못한거 같음
- 사이드 프로젝트에서도 TCA 도입했었는데 TCA에서 오는 팀원들이 느끼는 피로감이 매우 큼.
- 사이드인 만큼 퇴근 후 최대 2시간 넘으면 안된다는 생각도 개인적으로 드는데, 오픈소스 까보는게 너무 힘듦
- 회사는 아키텍처 교과서를 만드는 조직이 아니고 서비스를 운영하는 조직이라서 TCA는 안쓰는게 더 서비스적으로나 팀적으로나 더 나은거 같음.
- 개인적으로 다른 아키텍처도 굳이 안쓰는게 나은거 같음. 그냥 개인에게 익숙한 MVVM 쓰는게 팀 전체 생산성 가장 좋다고 봄.
- 외부 모듈과는 인터페이스 제공해서 소통하고, 전역 이벤트 전달 방식이나 데이터 저장 등 몇몇 가지만 정해두고 각 작업자에게 익숙한 스타일로 작업하고, 익숙한 스타일인 만큼 테스트코드 작성도 훨씬 빠르고 많아짐.
'apple > TCA' 카테고리의 다른 글
[TCA] SharedState (1) | 2023.09.27 |
---|---|
[TCA] OptionalState (IfLetCase) (0) | 2023.09.27 |
[TCA] FocusState (0) | 2023.09.27 |
[TCA] Binding (0) | 2023.09.27 |
[TCA] Tutorial #5 (Multiple presentation destinations) (0) | 2023.09.24 |