본문 바로가기

iOS

피시테일 파카와 인이어를 통해 알아보는 아키텍처 공부의 필요성

728x90

아키텍처, 왜 공부해야할까요?

아키텍처 적용의 장점에 대해 찾아보면 테스트 용이성, 의존성, 강한 결합 정말 많은 키워드가 나오는데요, 저는 처음 아키텍처를 공부했을 때 이런 키워드들이 정말 잘 와닿지 않았습니다.

 

보통 스토리보드에서 코드베이스로 넘어오면 viewController에서만 대부분의 작업을 하게되는것 같아요. 이런 방식은 간단하게 구현이 가능하다는 장점이 있지만 복잡한 뷰를 비효율적으로 짠다면 코드 양이 늘고, 디버깅을 하기도 어렵습니다.

 

저 또한 첫 프로젝트를 올리브영 앱을 클론코딩 했는데.. 뷰 컨트롤러 클래스가 천줄이 나오더라구요.. 하하

 

저는 이번 포스팅에서 우리가 일상생활에서 접할 수 있는 예시들을 활용하여 아키텍처 공부의 필요성에 대해 설명해보려고 합니다!


강한 결합.. 왜 문제일까요?

 

혹시 피시테일 파카라고 들어보셨나요?

디자인이 예쁘고 실용적이어서 저도 한동안 자주 입었었는데요 ㅎㅎ 보통 피시테일 파카는 내피와 모자를 분리할 수 있는 디자인으로 나와요. 

 

그렇다면 이 자켓에 모자 붙어있고 충전재가 자켓 안에 들어가있다면 어떨까요?

 

모자와 내피 탈착이 불가능한 디자인의 피시테일 파카는  모자 분리가 불가능하고 충전재를 옷 안에 내장을 해놓았기 때문에 스타일링 자유도가 줄어들죠!

 

 

 

 


모듈 개발이란?

 

원래 피시테일 파카의 근본 디자인은 모자 탈착 가능한데요,
이런 식으로 내피 탈부착을 가능하게 하게 옷을 제작하면 겨울 뿐만 아니라 간절기에도 다양한 스타일링을 할 수 있어요. 사진처럼 내피만 따로 입고 나갈수도 있구요 ㅎㅎ 

 

이런 형태로 각 기능별로 분리해서 개발하는 것을 모듈단위 개발이라고 합니다! 요즘 유행하는 노스페이스 같은 경우 대부분의 바람막이와 패딩 손목부분에 체결 버튼이 있어 다양한 조합으로 입을 수 있어요. 프로그래밍 용어로 재사용성이 좋은 구조인거죠!

 

근데 반대로 생각하면 '모듈화는 무조건 좋은 것인가?'에 대해서도 생각해볼 수 있습니다. 피쉬테일 파카를 사면서도, '나는 어차피 분리해서 입을 일이 없는데?'라고 생각하는 사람은 나눠진게 의미가 없을수도 있는거죠. 개발을 할때도 항상 상황에 맞게 사용하는 것이 좋다고 생각합니다.

 

 

 

 

 

 

 

 

 


테스트 용이성?

조금 더 프로그래밍과 가까운 예시를 들어보겠습니다.

인이어 이어폰을 예시로 들어볼건데요, 요즘은 무선이어폰을 많이들 쓰지만 가수들은 아직도 스테이지에서 이런 인이어를 사용합니다 ㅎㅎ


이어폰을 자세히 보시면 소리를 내어주는 유닛과 이어폰 선 사이에 틈이 있습니다. 유닛과 선이 분리가 가능한 구조죠.

 

또한 인이어처럼 부품이 나뉘어 제작이 되어있다면 고장이 났을 때 어디가 고장났는지 바로 알 수 있죠? 이런 것을 프로그래밍 용어로 테스트 용이성이 높다고 말합니다.

 

하지만 인이어 이어폰 말고 유닛과 이어폰 선이 분리가 되지 않는 일반 이어폰이 고장이 났다면, 어디서 고장이 난지 알수도 없고 이어폰 통째로 수리를 보내야합니다. 

 

이것을 프로그래밍에서는 테스트의 용이성이라고 해요. 코드의 일부가 독립적으로 동작하도록 만들면, 오류를 찾아내기 더 쉬워지는거죠.

 

 

 

마무리

제가 이해한 아키텍처 공부의 필요성은 코드의 유지보수성, 재사용성, 테스트 용이성을 향상시켜, 결국 더 효율적이고 관리하기 쉬운 코드를 작성하기 위함인 것 같아요.

 

객체지향 프로그래밍이든, 아키텍처, 디자인패턴 다 비슷한 것 같습니다.

 

iOS 앱개발에는 MVC, MVP, MVVM, VIPER, RIBS 등 정말 다양한 아키텍처가 있는데요, 저는 MVC, MVVM만 구현해봤습니다.. 테스트도 경험해보지 않아 테스트드도 작성해보고 싶고 다른 아키텍처도 빨리 공부를 해보고 싶네요!

 

이번 포스팅이 이런 아키텍처를 공부하기 전에 왜 공부 해야하는지 도움이 되었으면 좋겠습니다.

 

감사합니다.

'iOS' 카테고리의 다른 글

computed property로 코드 예쁘게 적는 법  (1) 2024.06.05