iOS

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/iOS

[iOS] FSCalendar를 사용해보자.

디자이너가 요청한 달력 디자인을 구현하려고 했다. 처음에는 iOS에서 기본으로 제공하는 달력을 사용하고자 했지만, 커스텀에 한계가 있어 직접 커스텀 캘린더 뷰를 구현해서 사용하고자 했다. 그러나 커스텀 캘린더 뷰를 구현하는 것이 생각보다 복잡했고, 구현하는 데 드는 코스트에 비해 리턴이 적다고 판단했다. 그래서 대안으로 FSCalendar를 사용하기로 결정했다. FSCalendar FSCalendar는 강력하고 유연한 캘린더 컴포넌트로, iOS 개발에서 손쉽게 사용할 수 있도록 설계되었다. 다양한 커스터마이징 옵션을 제공해 개발자와 디자이너의 요구 사항을 충족할 수 있으며, 구현 시간과 노력을 크게 절감할 수 있다.  📚 FSCalendar 주요 컴포넌트1. FSCalendar- calendar: FS..

iOS/Design Pattern

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

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

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