본문 바로가기
Swift

[iOS] 모듈화 하기 vs 그냥 살기. (주관적으로 느낀 모듈화 장점 3가지)

by 마라민초닭발로제 2024. 11. 22.

낙시성 제목 죄송합니다. 글은 오늘은 왜 모듈화를 해야 하는지에 대해서 이야기 할려 합니다. 이미 다른 글들에서 모듈화가 왜 좋은지에 대해서 잘 쓰여 있습니다.  글은 왜 모듈화를 해야하는지에 대해서 주관적으로 이야기 할려 합니다. 

 

 

1. 뒤처지는 컴퓨터 사양

개발을 하다보면 파일도 많아지고 사용하는 소스도 많아지게되면 계속해서 빌드시간이 늘어나게 됩니다. 빌드시간이 는다 라는 것은 생산성을 떨어뜨립니다. 사소한 변경을 보기 위해 오랜 빌드시간을 기다리는 자체가 고역입니다. 

Tuist로 모듈화를 한 이유는, 사소한 변경마다 10초 이상을 기다리는 스스로를 보았습니다. MacBook Air(M1)사용중이라 fan도 없어 항상 선풍기를 틀고 개발을 합니다. 맥북의 키보드 자판 위쪽 맨들맨들한 부분에 손을 가져다 대보면, CPU의 연산량을 몸소 느낄 수 있습니다. 가끔 노래 들으면서 개발하고 싶으면 휴대폰으로 틀고 개발합니다.

 

모듈화를 하게 되면, Build시간이 획기적으로 짧아집니다. build할 타겟을 설정하고 xcode가 indexing하는 범위도 자연스럽게 줄어들어 발열을 효과적으로 낮출 수 있었습니다. 

 

2. 모듈화 때문에 공부양이 두배. 피가되고 살이되는

객체지향에 익숙하지 않다면 모듈화를 적극 추천합니다. 모듈화가 시작되고 부터는 내가 작성하는 코드의 "접근제어자", "모듈간의 결합성", "모듈간의 응집성" 등 객체지향의 패러다임을 몸소 느끼기 시작합니다. 그리고 설계에 관한 고민 부터, 효과적인 코드 작성 방법 등 다양한 것들을 고민하게 됩니다. 이렇게 다양한 고민을 하다보면 gang of four 디자인패턴을 자연스럽게 접하게 되는데 이 때가 아마 객체지향적 분석 능력을 끌어올린 첫단계가 아닌가 싶습니다. 

 

 

3. 협업. 생산성있는 개발 환경 조성.

협업 관점에서 모듈화는 정말 좋았습니다. 협업하게 되면 한 사람당 Feature를 가져가서 작업하게 되는데, 독자적인 Feature단위에서 다른 사람에 의존성이 생기지 않았습니다. 또한 내가 작업한 Feature를 누가 가져다 쓸 때 오류 발생시 효과적인 디버깅을 제공했던 것 같습니다.

 

https://kr.freepik.com/free-vector/collaborative-concept-illustration_6052902.htm