모바일 아키텍처로 해결할 수 없는 문제🤔

Swift 언어는 OOP, POP, FP 등을 지원하는 멀티 패러다임 언어입니다. 하지만 여전히 OOP가 중요하다고 확신합니다. 그렇기 때문에 OOP를 지킬 수 있는 아키텍처를 선택하고 테스트할 수 있는 구조가 어느 정도 강제된 앱 아키텍처를 선택하는 것이 좋다고 생각합니다. 물론 빠르게 프로토타입을 만들어 내야 하는 상황에는 MVC와 같은 아키텍처가 더 좋을 수도 있고 MVC를 사용하더라도 OOP를 지킬 수는 있지만 쉽지 않기 때문에 좀 더 객체의 역할이 명확하게 나누어진 아키텍처를 선택하곤 합니다. Ribs 아키텍처를 깊게 경험해보지 못했지만 UIKit 기반 앱 개발에서는 Ribs가 정말 좋은 아키텍처라고 생각하고 SwiftUI 기반 앱 개발에서는 TCA가 정말 좋은 아키텍처라고 생각합니다. 이유는 너무 많겠지만 OOP를 잘 지킬 수 있게끔 객체 역할이 명확하게 나눠어져 있고 그 결과 테스트할 수 있는 코드를 작성하기가 좋은 아키텍처이기 때문입니다. 하지만 어떤 아키텍처를 쓰든 아키텍처 도입만으로 내가 작성하는 코드가 좋아지지 않습니다. 커리어리 큐레이터이신 노수진님의 의견을 빌리자면, “모바일 개발 환경에서는 아키텍처의 손이 뻗지 않은 그 외 15~20% 정도의 코드에서만 개발자의 설계 역량이 중요한 것 같다. 그런데 그 15~20%의 코드가 매우 중요하다. 앱의 디자인이나 기능과 유사하게 코드도 템플릿화돼 쉽게 복사되고 퍼진다. 어느 정도 코드 베이스가 쌓이면 완전히 새로운 설계를 하게 되는 경우는 드물고 기존에 있는 비슷한 기능을 하는 코드를 찾아 쓰게 된다. 그리고 대부분의 사람은 기존의 코드를 손쉽게 복사해 붙여넣어서 가져간다.” 결국엔 개발자의 진짜 실력은 아키텍처로 해결할 수 없는 15~20%의 설계 역량에서 드러난다는 것입니다. SwiftUI + TCA 와 같은 탁월한 조합을 선택하더라도 결국 기본으로 돌아가서 협력의 관점에서 역할이 뚜렷하게 나누고 독립적으로 테스트하기 좋은 설계를 하는 것이 무엇보다 중요한 것 같습니다. SwiftUI + TCA는 여러 제품팀에서 사용하고 있지만 여전히 좋은 설계 방법에 대한 레퍼런스는 부족합니다. 올해 큰 목표가 있다면 SwiftUI + TCA를 사용한 좋은 설계 데모 앱을 만들어 많은 사람이 손쉽게 가져갈 수 있는 코드를 배포하고 싶습니다🥸

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 1월 9일 오전 2:45

 • 

저장 6조회 1,893

댓글 0