iOS/Design Pattern

iOS/Design Pattern

[iOS/Design Pattern] 간단한 예제로 Clean Architecture를 설계해보자.

프로젝트에 클린 아키텍처를 적용하기 전에, 그 개념을 확실히 이해하고자 간단한 예제를 통해 클린 아키텍처를 설계해보고자 한다.  도메인 계층✔️ Entity유저 리스트를 보여주는 것이 주요 서비스이기 때문에 핵심 데이터는 유저이다. 그래서 Entity에는 유저 정보가 담겨있다. ✔️ UserUseCaseProtocolUseCase는 비즈니스 로직이다. 여기서 비즈니스 로직은 유저의 정보를 받아오는 것이다. 이 로직을 처리하기 위해서는 Data 계층에서 데이터를 가져와야하는데, Domain 계층이 Data 계층을 의존하게 될 경우 의존성 규칙을 위배하게 되는 것이므로, 직접 참조하지 않고 의존성 역전을 이용하여 참조한다.  ✅ 의존성 역전Repository Interface를 구현해서 UseCase가 이를..

iOS/Design Pattern

[iOS/Design Pattern] Clean Architecture를 알아보자.

클린 아키텍처?클린아키텍처란? 클린 아키텍처는 소프트웨어 설계 원칙으로, 로버트 C. 마틴이 제안한 개념이다. 클린 아키텍처의 주요 목표는 아래와 같다. 1. 프레임워크 독립성 : 시스템이 특정 프레임워크에 종속되지 않도록 한다.➡️ 처음에는 UIKit을 사용했지만, SwiftUI로 전환해야 할 상황이 생겼다. 비즈니스 로직을 UIKit과 독립적인 별도의 모듈로 구현한다. 이렇게 하면 나중에 SwiftUI로 전환하고자 할 때, UI레이어만 변경하면 되고 핵심 비즈니스 로직은 그대로 사용할 수 있다. 2. 테스트 용이성 : 비즈니스 로직을 외부 요소 없이 테스트할 수 있게 한다.➡️ '장바구니에 책 추가하기' 기능을 구현한다고 가정하자. 이 기능을 순수한 비즈니스 로직으로 구현하여, 필요한 외부 의존성(데..

iOS/Design Pattern

[iOS/Design Pattern] 코디네이터 패턴

iOS 앱 개발 환경이 점차 복잡해지면서, 기존의 아키텍처 패턴들이 직면한 한계를 극복하기 위해 코디네이터 패턴이 등장했다. 특히 MVC 패턴의 문제점이 두드러지게 나타났다. MVC패턴에서는 ViewController가 UI로직, 비즈니스 로직, 그리고 화면 전환 로직까지 모두 담당하게 되어 "Massive ViewController" 문제가 발생했다. 이로 인해 코드의 재사용성이 떨어지고, 유지보수가 어려워졌으며, 단위 테스트 작성도 복잡해졌다.  앱의 규모가 커지고 기능이 다양해지면서, 화면 간의 전환 로직도 복잡해졌다. 여러 화면을 가쳐가는 사용자 플로우를 관리하는 것이 점점 더 어려워졌고, 이는 코드의 가독성과 유지보수성을 저하시켰다. 또한, 앱의 각 부분을 독립적인 모듈로 개발하고 쉽게 확장할 ..

iOS/Design Pattern

[iOS/Design Pattern] MVVM에 대한 나의 고찰

왜이리 MVVM에 집착하는가?다른 디자인 패턴도 많은데 왜 MVVM 패턴에만 집착하는가?MVC 패턴은 간단하고 이해하기 쉬운 구조를 가지고 있지만 Controller의 부담이 커지기 쉽다는 단점이 있고, MVP 패턴은 View와 Presenter의 의존성이 높아진다는 단점이 있다. 물론 MVVM 패턴이 단점이 없는 것은 아니지만 MVC, MVP와 비교했을 때 MVVM이 제공하는 장점이 있기 때문에 많은 개발자들이 MVVM 패턴에 집착하는 것 같다. 내가 생각하는 MVVM의 장점은 아래와 같다.1. 데이터 바인딩 : MVVM은 View와 ViewModel 간의 데이터 바인딩을 통해 자동으로 UI를 업데이트 한다. 데이터 바인딩을 통해 코드를 간결하게 유지하고, UI와 데이터의 동기화를 자동으로 처리한다. ..

여성일
'iOS/Design Pattern' 카테고리의 글 목록