분류 전체보기
-
Server-Driven UIiOS 2025. 3. 7. 18:08
안녕하세요. 그린입니다 🍏이번 포스팅에서는 Server-Driven UI에 대해 톺아보겠습니다 🙋🏻Server-Driven UI?서버 드리븐 UI라는건 앱의 UI를 서버에서 동적으로 정의하고, 클라이언트는 이걸 해석해서 화면을 구성하는 방식을 말해요 😃즉, 화면을 구성하는 컴포넌트 요소들을 JSON 등의 형식으로 서버에서 내려주면 클라이언트가 이를 해석해서 UI를 동적으로 렌더링합니다.결국 지향하는 목표는 앱 배포 없이 UI 변경이 자유롭고, A/B 테스트 등에 용이하다는 특징이 있죠! 그럼 서버에서 어떻게 내려주는건지 한번 살펴볼께요. JSON 기반 UI 정의서버는 UI 요소들을 JSON 형태로 정의해서 클라이언트에 전달해줍니다. 아래 서버 리스폰스 예를 볼까요? { "title": "메인 화..
-
Factory PatterniOS 2025. 3. 3. 19:25
안녕하세요. 그린입니다 🍏이번 포스팅에서는 Factory Pattern에 대해 iOS를 기준으로 간단히 정리해보려 합니다 🙋🏻Factory Pattern?Factory Pattern은 객체 생성을 중앙 집중화해 관리하는 Creational(생성) 디자인 패턴입니다.Factory Pattern을 통해서 객체 생성 로직을 한 곳에 모을 수 있고, 변경이 필요할 때 최소한의 수정으로 유지보수 할 수 있다는 장점이 있죠! Factory Pattern의 핵심 개념은 몇가지가 있어요 😃 1️⃣ 객체 생성을 캡슐화해 클라이언트 코드에서 객체 생성 로직을 숨김2️⃣ 객체의 구체적인 구현을 숨기고 인터페이스 (Protocol)을 통해 사용3️⃣ 객체 생성 방식을 변경해도 클라이언트 코드에 영향을 주지 않음 그럼 ..
-
Swift Protocol 다중 채택Swift 2025. 2. 26. 19:54
안녕하세요. 그린입니다 🍏이번 포스팅에서는 Swift Protocol과 다중 채택에 대해 정리해보겠습니다 🙋🏻 사실, 내용 자체는 기초적이고 간단하지만 처음 개발을 시작하고 Swift를 배우시는 분들은 헷갈려 하거나 의문을 품는 지점이 간혹 있어 한번 쉽게 정리해보려고 합니다!Protocol?Swift에서 프로토콜은 특정 요구사항을 정의하는 청사진이죠.클래스, 구조체, 열거형이 해당 프로토콜을 채택하면 프로토콜이 정의한 요구사항을 충족해야 합니다. protocol Greetable { var name: String { get } func greet() -> String}struct Person: Greetable { var name: String func greet() -> S..
-
RxSwift - withUnretainedRxSwift 2025. 2. 21. 07:54
안녕하세요. 그린입니다 🍏이번 포스팅에서는 RxSwift의 withUnretained에 대해 정리해보겠습니다 🙋🏻RxSwift를 사용하면서 메모리 누수 혹은 강한 순환 참조 문제를 만날 수 있는 상황이 많습니다.물론 이를 위해 weak self를 사용하여 해결할 수 있지만, 귀찮잖아요..?그래서 보다 가독성이 좋고 편리하게 withUnretained를 사용할 수 있습니다. 그럼 한번 withUnretained가 무엇이고 어떻게 사용하는지 알아볼까요? withUnretained?withUnretained는 RxSwift에서 weak self 패턴을 보다 명확하고 안전하게 사용할 수 있도록 도와주는 연산자입니다.즉, 기존 weak self 사용 시 발생시키는 옵셔널을 처리하는것에 대해 동일하게 처리를 ..
-
RxSwift/RxCocoa - TraitsRxSwift 2025. 2. 17. 08:49
안녕하세요. 그린입니다 🍏이번 포스팅에서는 RxSwift의 Traits에 대해 정리해 보겠습니다 🙋🏻Traits?우선 RxSwift에서 Observable은 매우 유용한 스트림이지만, 때로는 특정한 액션을 강제하고 싶을때가 있을 수 있습니다.Traits이 이런 특정한 패턴을 따르는 Observable의 변형으로 그 역할을 해줍니다.즉, Observable로는 원래 onNext, onError, onCompleted 등을 다 처리했다면 Traits은 필요한것만 처리할 수 있죠. RxSwift와 RxCocoa에서는 다음과 같은 Traits들을 제공합니다 😃 1️⃣ Single2️⃣ Completable3️⃣ Maybe4️⃣ Driver5️⃣ Signal6️⃣ ControlProperty7️⃣ Cont..
-
RxSwift/RxCocoa - subscribe vs bind vs driveRxSwift 2025. 2. 14. 11:19
안녕하세요. 그린입니다 🍏이번 포스팅에서는 RxSwift에서의 bind, subscribe, drive의 역할과 어떤 차이가 있는지에 대해 알아보겠습니다 🙋🏻오늘 정리해볼 이 subscribe, bind, drive는 각각 목적과 특징이 다르기에 적절히 사용하는것이 좋습니다. 그렇기에 이 세가지에 대해 차이점을 확실히 알고 어떤 상황에서 어떤걸 사용할지 체크해보죠! 👯♂️ 그전에 하나 짚고 가볼께요. RxSwift에서의 핵심 개념은 Observable과 Observer죠.여기서 Observable은 데이터를 방출하는 스트림이고, Observer는 방출된 데이터를 수신하고 처리하는 객체 역할을 합니다.이 두 개념을 통해서 우리는 반응형 프로그래밍을 구현하는것이죠.여기서 subscribe, bind..
-
Hot Observable vs Cold ObservableRxSwift 2025. 2. 11. 10:24
안녕하세요. 그린입니다 🍏이번 포스팅에서는 Rx에서의 Hot/Cold Observable에 대해 정리해보겠습니다 🙋🏻 먼저, RxSwift에서 Observabled은 데이터 스트림을 다루는 핵심적인 요소이며, Observable의 성격에 따라서 Hot / Cold 종류로 나눠지게 됩니다.이 두가지는 구독 시점과 데이터 생성 방식에 따라 차이를 가지고 있어요 🤔 그래서, 이번 포스팅에서는 Hot / Cold Observable의 개념부터 내부 동작 방식과 성능적인 부분 그리고 예시까지 한번 담아보겠습니다! Hot ObservableHot Observable은 구독자가 추가되더라도 기존 스트림을 공유하는 Observable입니다.즉, 데이터 생성이 특정 이벤트나 외부 트리거에 의해 시작되며, 구독자가..
-
RxSwift/RxCocoa - Driver & BehaviorRelayRxSwift 2025. 2. 6. 09:44
안녕하세요. 그린입니다 🍏이번 포스팅에서는 Driver와 BehaviorRelay에 대해 알아보며 연관 관계에 대해 정리해보겠습니다 🙋🏻 그전에, BehaviorRelay에 대해 알고 있는것이 더 편리해요. RxSwift - BehaviorSubject vs BehaviorRelay안녕하세요. 그린입니다 🍏이번 포스팅은 RxSwift에서 BehaviorSubject와 BehaviorRelay의 차이에 대해 학습해보겠습니다 🙋🏻 RxSwift를 사용하여 상태를 관리할 때 두 개념 모두 자주 사용되는데요.두green1229.tistory.com 해당 포스팅을 사전에 먼저 보시는게 좋습니다 😃DriverDriver는 RxCocoa에서 제공하는 특수한 Observable 타입으로, 주로 UI 바..