[iOS] Architecture Pattern

Eugenie·2022년 5월 10일
0

[iOS] Architecture

목록 보기
1/5

Architecture

Architecture
최적화를 목표로 두고
시스템 구성과 동작원리, 시스템의 구성환경 등을
설명 및 설계하는 '청사진' 또는 '설계도' 를 말한다.

Why Architecture

좋은 디자인을 가진 소프트웨어는
새로운 기능을 더 빠르게 많이 추가할 수 있다.

👍🏻 Good Architecture

균형 잡힌 분배 [Balanced Distribution]

객체지향 원칙 중,
Single Responsibilty 에 기반한다.

각 모듈들의 독립성이 떨어지면 테스트가 어렵다.

➡ 단일 책임 원칙 : 하나의 객체는 하나의 역할만 가진다.

테스트 가능성 [Testablity]

테스트를 시스템적으로 수행할 수 있도록
소프트웨어에 미리 준비되게 한다.

cf.
모든 이슈를 다루기 보다는
현실적으로 많이 겪게 되는 상황과 연관된 이슈만을 다루도록 한다.

사용 편의성 [Ease of Use]

코드가 적을수록 버그도 줄어든다.

코드를 적게 쓰려는 욕구가
개발자의 게으름만으로 설명되어서는 안된다.
유지관리 비용을 절감하는 방법의 시작이 될 수 있다.


❗️ 위의 조건을 모두 충족하는 완벽한 Architecture 는 존재하지 않는다.
💡 프로젝트에 따라 적절한 Architecture 도입이 필요하다.

iOS Arhitecture Pattern

세 가지 계층으로 각 코드의 책임과 역할을 나눈다.

Model

데이터 혹은 데이터를 조작하는 데이터 접근 레이어를 위한 부분

View

사용자에게 보여지는 시각적인 부분 ➡ UI

Controller / Presenter / ViewModel

Model 과 View 사이에서 중재하는 부분

  1. View 를 통해 발생한 사용자의 액션에 따라 동작하고
  2. Model 에게 값의 조정을 요청하며,
  3. Model 값의 변화에 맞게 View 를 갱신한다.

📚 Reference
아키텍처란 무엇인가?
iOS Architecture Patterns
소프트웨어 아키텍처란 왜 중요할까?
Testability의 이해와 향상 방안

profile
🌱 iOS developer

0개의 댓글