소프트웨어 전문지 마이크로소프트웨어의 최신호는 우리가 매일 접하는 웹 페이지, 모바일 등 프론트엔드(Front-End)를 주제로 담았습니다. 자바스크립트, 정적 타입, 리액트, 뷰, 앵귤러, 일렉트론, ESNext 등 마소 393호의 주요 기사들을 IT조선 독자에게도 소개합니다. [편집자주]
모바일 애플리케이션이 일상에 빼놓을 수 없는 존재로 되기까지 많은 개발자의 고민과 노력이 있었다. 특히, 애플리케이션 아키텍처는 중요한 주제였다. 커플 앱 비트윈(Between)을 사용하는 전 세계 2500만 커플을 위해 VCNC 개발자들도 아키텍처에 대해 깊이 고민했다. 코드를 효율적으로 작성해 유지보수를 편하게 하고, 테스트 가능한 코드를 작성해 버그를 최소화했다. 이 글을 통해 더 좋은 iOS 애플리케이션 아키텍처에 대한 비트윈 팀의 고민과 노력을 공유해본다.
MVC는 UI 연결 부분과 데이터 요청, 설정 등이 컨트롤러에 모여 있어 제품을 빠르게 만들기 좋다. 하지만 컨트롤러 안에서 거의 모든 기능을 처리하는 것은 컨트롤러를 비대해지게 만드는 원인이기도 하다. 제품이 커질수록 코드 파악이 어렵다. 실제 비트윈에는 3,000줄에 가까운 컨트롤러도 존재했다. 그래서 개발자 커뮤니티에서는 MVC를 Massive View Controller(거대한 뷰 컨트롤러)라 비꼬기도 한다. 또한 뷰와 컨트롤러가 밀접하게 연결돼 단위 테스트(Unit Test)를 작성하기가 어렵다는 문제도 있다. 테스트를 위한 뷰 껍데기를 만들거나 뷰의 수명을 관리해주기가 매우 까다롭기 때문이다.
MVC 패턴의 문제점을 해결하기 위해 다른 아키텍처를 조사했다. 가장 큰 목표는 컨트롤러의 역할을 줄이고, 클린 아키텍처(Clean Architecture)를 적용하는 것이었다.
김용성, 김남현 필자의 iOS 아키텍처에 대한 자세한 내용은 ‘마이크로소프트웨어 393호(https://www.imaso.co.kr/archives/3408)’에서 확인할 수 있다.