SlideShare a Scribd company logo
Let’Swift 2023
객체가 함수를 만났을때
- When Object met Function …
권문범 Brad
Let’Swift 2023
객체지향-함수형 아키텍처 만들기
권문범 Brad
Contents
1. 객체지향이란?
2. 함수형이란?
3. 객체지향 + 함수형
4. 직접 만들어보기
5. 사용해보기
6. 마무리
객체지향이란?
PIE
• Polymorphism
• Inheritance
• Encapsulation
객체지향이란
PIE
• Polymorphism
• Overloading, Generic 등
• Type을 열어 코드의 재사용 증대
객체지향이란
PIE
• Inheritance
• Class : super class
• Struct : protocol - extension
• 코드 재사용 및 구조화
객체지향이란
PIE
• Encapsulation
• private,
fi
leprivate
• public, open
• 데이터 / 알고리즘 은닉
• 가독성 및 side-e
ff
ect 감소
객체지향이란
효과
재사용 / 구조화 / 가독성 등
결과물
디자인 패턴 / 시스템 아키텍처 등
변경되는 단위를 캡슐화하여
내부 동작을 몰라도 설계가 쉽도록 지원
Class A Class B
Class C
• Singleton
• FileManager, URLSession 등
• Decorator
• UIScrollView - UITableView,
UICollectionView
• Composite
• UIView - addSubview
• Chain of Responsibility
• UIResponder - responder chain :
next,
fi
rstResponder
• Template Method
• UITableViewDataSource -
UITableViewDelegate
• UICollectionViewDelegateFlowLa
yout
이미 전반에 설쳐서 사용 중
함수형이란?
Function
• Pure function
• High-order function
• Functor / Monad
함수형이란
Function
• Pure function
• Same input - Same output
• 외부의 영향 X
• 파라미터에 따라서 항상 같은 결과
함수형이란
Function
• High-order function
• 함수를 파라미터 혹은 결과로 사용
• map,
fl
atMap, compactMap 등
함수형이란
Function
• Functor / Monad
• (Context + Value)
+ map /
fl
atMap
• Result, Optional 등
함수형이란
변경을 최소화하여 선언적으로 구현
실행 예측이 쉽도록 지원
변경되는 단위를 캡슐화하여
내부 동작을 몰라도 설계가 쉽도록 지원
변경을 최소화하여 선언적으로 구현
실행 예측이 쉽도록 지원
객체지향 + 함수형
객체지향
Class A Class B
Class C
함수형
객체지향 함수형
변경을 최소화하여 선언적으로 구현
실행 예측이 쉽도록 지원
변경되는 단위를 캡슐화하여
내부 동작을 몰라도 설계가 쉽도록 지원
객체지향 함수형
변경을 최소화하여 선언적으로 구현
실행 예측이 쉽도록 지원
변경되는 단위를 캡슐화하여
내부 동작을 몰라도 설계가 쉽도록 지원
UI
Data
File / Network
객체지향 함수형
변경을 최소화하여 선언적으로 구현
실행 예측이 쉽도록 지원
변경되는 단위를 캡슐화하여
내부 동작을 몰라도 설계가 쉽도록 지원
UI
Data
File / Network
Result / Optional
Combine
Functions
직접 만들어보기
MVVM 기반 아키텍처
결과에 따른 유연한 처리 지원
Flow 가시성
비동기 처리 지원
Apple first party API 활용
MVVM
객체지향
Make your own architecture
직접 만들어보기
ViewModel
ViewController
View
Data / Network
Make your own architecture
직접 만들어보기
ViewModel
ViewController
Data / Network
View / Interactor
UI 표시 및 상호 작용
Make your own architecture
직접 만들어보기
ViewModel
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
Make your own architecture
직접 만들어보기
ViewModel
Data
fl
ow 가시화 및 관리
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
Make your own architecture
직접 만들어보기
ViewModel
Data
fl
ow 가시화 및 관리
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
비동기적인 데이터 처리
Make your own architecture
직접 만들어보기
ViewModel
Data
fl
ow 가시화 및 관리
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
비동기적인 데이터 처리
POP
Protocol Oriented Programming
POP
Protocol Oriented Programming
객체 간의 인터페이스 선언
데이터 타입의 추상화
Class A Class B
Class C
Protocol A Protocol B
Protocol C
Make your own architecture
직접 만들어보기
ViewModel
Data
fl
ow 가시화 및 관리
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
비동기적인 데이터 처리
Make your own architecture
직접 만들어보기
ViewModel
Data
fl
ow 가시화 및 관리
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
비동기적인 데이터 처리
Make your own architecture
직접 만들어보기
ViewModel
Data
fl
ow 가시화 및 관리
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
비동기적인 데이터 처리
ViewControllerCon
fi
gurable
ViewModelCon
fi
gurable
InputMessage
OutputMessage
OutputSubject
Data / Network
Make your own architecture
직접 만들어보기
ViewModel
Data
fl
ow 가시화 및 관리
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
비동기적인 데이터 처리
Make your own architecture
직접 만들어보기
ViewModel
Data
fl
ow 가시화 및 관리
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
비동기적인 데이터 처리
Make your own architecture
직접 만들어보기
ViewModel
Data
fl
ow 가시화 및 관리
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
비동기적인 데이터 처리
Make your own architecture
직접 만들어보기
ViewModel
Data
fl
ow 가시화 및 관리
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
비동기적인 데이터 처리
ViewControllerCon
fi
gurable
ViewModelCon
fi
gurable
InputMessage
OutputMessage
OutputSubject
Data / Network
ViewInteractorCon
fi
gurable
ViewControllerCon
fi
gurable /
ViewContorllerInteractable
ViewModelCon
fi
gurable
InputMessage
OutputMessage
OutputSubject
Data / Network
InteractionMessage
Action /
Any Subject
Make your own architecture
직접 만들어보기
ViewModel
Data
fl
ow 가시화 및 관리
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
비동기적인 데이터 처리
Make your own architecture
직접 만들어보기
ViewModel
Data
fl
ow 가시화 및 관리
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
비동기적인 데이터 처리
결과에 따른 유연성
함수형
Make your own architecture
직접 만들어보기
ViewModel
Data
fl
ow 가시화 및 관리
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
비동기적인 데이터 처리
Make your own architecture
직접 만들어보기
ViewModel
Data
fl
ow 가시화 및 관리
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
비동기적인 데이터 처리
Make your own architecture
직접 만들어보기
Make your own architecture
직접 만들어보기
Make your own architecture
직접 만들어보기
Make your own architecture
직접 만들어보기
Make your own architecture
직접 만들어보기
Make your own architecture
직접 만들어보기
Make your own architecture
직접 만들어보기
Make your own architecture
직접 만들어보기
Make your own architecture
직접 만들어보기
결과에 따른 유연성
함수형
결과에 따른 유연성
+ Flow 가시성
함수형
결과에 따른 유연성
+ Flow 가시성
+ 비동기 처리
함수형
ViewControllerCon
fi
gurable /
ViewContorllerInteractable
ViewModelCon
fi
gurable
InputMessage
OutputMessage
OutputSubject
Data / Network
ViewInteractorCon
fi
gurable
InteractionMessage
Action /
Any Subject
ViewControllerCon
fi
gurable /
ViewContorllerInteractable
ViewModelCon
fi
gurable
InputMessage
OutputMessage
OutputSubject
Data / Network
ViewInteractorCon
fi
gurable
InteractionMessage
Action /
Any Subject
Async Task
사용해보기
마무리
ViewModel
Data
fl
ow 가시화 및 관리
ViewController
View bind 및 lifecycle
View / Interactor
UI 표시 및 상호 작용
Data / Network
비동기적인 데이터 처리
ViewControllerCon
fi
gurable /
ViewContorllerInteractable
ViewModelCon
fi
gurable
InputMessage
OutputMessage
OutputSubject
Data / Network
ViewInteractorCon
fi
gurable
InteractionMessage
Action /
Any Subject
Async Task
ViewControllerCon
fi
gurable /
ViewContorllerInteractable
ViewModelCon
fi
gurable
InputMessage
OutputMessage
OutputSubject
Data / Network
ViewInteractorCon
fi
gurable
InteractionMessage
Action /
Any Subject
Async Task
변경을 최소화하여 선언적으로 구현
실행 예측이 쉽도록 지원
객체지향 함수형
변경되는 단위를 캡슐화하여
내부 동작을 몰라도 설계가 쉽도록 지원
UI
Data
File / Network
Result / Optional
Combine
Functions
• Object Oriented Programming
• Design pattern
• Protocol Oriented Programming
• Pure function
• High-order function - First class
function
• Functor / Monad
• Result / Optional - Either
• Combine
• Async task - GCD / Actor
• Object Oriented Programming
• Design pattern
• Protocol Oriented Programming
• Pure function
• High-order function - First class
function
• Functor / Monad
• Result / Optional - Either
• Combine
• Async task - GCD / Actor
• Object Oriented Programming
• Design pattern
• Protocol Oriented Programming
• Pure function
• High-order function - First class
function
• Functor / Monad
• Result / Optional - Either
• Combine
• Async task - GCD / Actor
• Object Oriented Programming
• Design pattern
• Protocol Oriented Programming
• Pure function
• High-order function - First class
function
• Functor / Monad
• Result / Optional - Either
• Combine
• Async task - GCD / Actor
• Object Oriented Programming
• Design pattern
• Protocol Oriented Programming
• Pure function
• High-order function - First class
function
• Functor / Monad
• Result / Optional - Either
• Combine
• Async task - GCD / Actor
MBA kit
https://github.com/MBKwon/MBA-kit
MBA kit - Demo
https://github.com/MBKwon/MBA-Demo
Thank you

More Related Content

What's hot

DI Container를 이용하여 레거시와 모듈화를 동시에 잡기
DI Container를 이용하여 레거시와 모듈화를 동시에 잡기DI Container를 이용하여 레거시와 모듈화를 동시에 잡기
DI Container를 이용하여 레거시와 모듈화를 동시에 잡기
정민 안
 
Introduction to Spring's Dependency Injection
Introduction to Spring's Dependency InjectionIntroduction to Spring's Dependency Injection
Introduction to Spring's Dependency Injection
Richard Paul
 
introduction to Vue.js 3
introduction to Vue.js 3 introduction to Vue.js 3
introduction to Vue.js 3
ArezooKmn
 
What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...
What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...
What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...
Edureka!
 
Spring beans
Spring beansSpring beans
Spring beans
Roman Dovgan
 
Hibernate ORM over JDBC
Hibernate ORM over JDBCHibernate ORM over JDBC
Hibernate ORM over JDBC
Pratyush Katre
 
VueJS Introduction
VueJS IntroductionVueJS Introduction
VueJS Introduction
David Ličen
 
Hibernate ppt
Hibernate pptHibernate ppt
Hibernate ppt
Aneega
 
Introduction to jest
Introduction to jestIntroduction to jest
Introduction to jest
pksjce
 
20220716_만들면서 느껴보는 POP
20220716_만들면서 느껴보는 POP20220716_만들면서 느껴보는 POP
20220716_만들면서 느껴보는 POP
Chiwon Song
 
SwiftUI and Combine All the Things
SwiftUI and Combine All the ThingsSwiftUI and Combine All the Things
SwiftUI and Combine All the Things
Scott Gardner
 
XCUITest Introduction: Test Automation University
XCUITest Introduction: Test Automation University XCUITest Introduction: Test Automation University
XCUITest Introduction: Test Automation University
Shashikant Jagtap
 
Self-issued OpenID Provider_OpenID Foundation Virtual Workshop
Self-issued OpenID Provider_OpenID Foundation Virtual Workshop Self-issued OpenID Provider_OpenID Foundation Virtual Workshop
Self-issued OpenID Provider_OpenID Foundation Virtual Workshop
Kristina Yasuda
 
Top java script frameworks ppt
Top java script frameworks pptTop java script frameworks ppt
Top java script frameworks ppt
Omkarsoft Bangalore
 
Angular
AngularAngular
Angular
LearningTech
 
Swift in SwiftUI
Swift in SwiftUISwift in SwiftUI
Swift in SwiftUI
Bongwon Lee
 
Intro to vue.js
Intro to vue.jsIntro to vue.js
Intro to vue.js
TechMagic
 
Nakov - .NET Framework Overview - English
Nakov - .NET Framework Overview - EnglishNakov - .NET Framework Overview - English
Nakov - .NET Framework Overview - English
Svetlin Nakov
 
TypeScript - An Introduction
TypeScript - An IntroductionTypeScript - An Introduction
TypeScript - An Introduction
NexThoughts Technologies
 
Angular 2.0 forms
Angular 2.0 formsAngular 2.0 forms
Angular 2.0 forms
Eyal Vardi
 

What's hot (20)

DI Container를 이용하여 레거시와 모듈화를 동시에 잡기
DI Container를 이용하여 레거시와 모듈화를 동시에 잡기DI Container를 이용하여 레거시와 모듈화를 동시에 잡기
DI Container를 이용하여 레거시와 모듈화를 동시에 잡기
 
Introduction to Spring's Dependency Injection
Introduction to Spring's Dependency InjectionIntroduction to Spring's Dependency Injection
Introduction to Spring's Dependency Injection
 
introduction to Vue.js 3
introduction to Vue.js 3 introduction to Vue.js 3
introduction to Vue.js 3
 
What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...
What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...
What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...
 
Spring beans
Spring beansSpring beans
Spring beans
 
Hibernate ORM over JDBC
Hibernate ORM over JDBCHibernate ORM over JDBC
Hibernate ORM over JDBC
 
VueJS Introduction
VueJS IntroductionVueJS Introduction
VueJS Introduction
 
Hibernate ppt
Hibernate pptHibernate ppt
Hibernate ppt
 
Introduction to jest
Introduction to jestIntroduction to jest
Introduction to jest
 
20220716_만들면서 느껴보는 POP
20220716_만들면서 느껴보는 POP20220716_만들면서 느껴보는 POP
20220716_만들면서 느껴보는 POP
 
SwiftUI and Combine All the Things
SwiftUI and Combine All the ThingsSwiftUI and Combine All the Things
SwiftUI and Combine All the Things
 
XCUITest Introduction: Test Automation University
XCUITest Introduction: Test Automation University XCUITest Introduction: Test Automation University
XCUITest Introduction: Test Automation University
 
Self-issued OpenID Provider_OpenID Foundation Virtual Workshop
Self-issued OpenID Provider_OpenID Foundation Virtual Workshop Self-issued OpenID Provider_OpenID Foundation Virtual Workshop
Self-issued OpenID Provider_OpenID Foundation Virtual Workshop
 
Top java script frameworks ppt
Top java script frameworks pptTop java script frameworks ppt
Top java script frameworks ppt
 
Angular
AngularAngular
Angular
 
Swift in SwiftUI
Swift in SwiftUISwift in SwiftUI
Swift in SwiftUI
 
Intro to vue.js
Intro to vue.jsIntro to vue.js
Intro to vue.js
 
Nakov - .NET Framework Overview - English
Nakov - .NET Framework Overview - EnglishNakov - .NET Framework Overview - English
Nakov - .NET Framework Overview - English
 
TypeScript - An Introduction
TypeScript - An IntroductionTypeScript - An Introduction
TypeScript - An Introduction
 
Angular 2.0 forms
Angular 2.0 formsAngular 2.0 forms
Angular 2.0 forms
 

Similar to [LetSwift 2023] 객체지향-함수형 아키텍처 직접 만들기

[NEXT] Andorid에 MVC 패턴 적용하기
[NEXT] Andorid에 MVC 패턴 적용하기[NEXT] Andorid에 MVC 패턴 적용하기
[NEXT] Andorid에 MVC 패턴 적용하기
YoungSu Son
 
HOONS닷넷 오픈소스 프로젝트 Part1.
HOONS닷넷 오픈소스 프로젝트 Part1.HOONS닷넷 오픈소스 프로젝트 Part1.
HOONS닷넷 오픈소스 프로젝트 Part1.
Hojin Jun
 
Java script 강의자료_ed13
Java script 강의자료_ed13Java script 강의자료_ed13
Java script 강의자료_ed13
hungrok
 
Planning poker with jetpack
Planning poker with jetpackPlanning poker with jetpack
Planning poker with jetpack
SooHwan Ok
 
Jpa 쿼리 포함 자료
Jpa 쿼리 포함 자료Jpa 쿼리 포함 자료
Jpa 쿼리 포함 자료
Hyosang Hong
 
Jpa 쿼리 포함 자료
Jpa 쿼리 포함 자료Jpa 쿼리 포함 자료
Jpa 쿼리 포함 자료
Hyosang Hong
 
MVVM Pattern for Android
MVVM Pattern for AndroidMVVM Pattern for Android
MVVM Pattern for Android
taeinkim6
 
복잡한 RecyclerView, 군더더기 없이 데이터로 표현하기
복잡한 RecyclerView, 군더더기 없이 데이터로 표현하기복잡한 RecyclerView, 군더더기 없이 데이터로 표현하기
복잡한 RecyclerView, 군더더기 없이 데이터로 표현하기
Lake Kim
 
React js 1
React js   1React js   1
React js 1
JaeKwang Jung
 
04.실행환경 교육교재(화면처리)
04.실행환경 교육교재(화면처리)04.실행환경 교육교재(화면처리)
04.실행환경 교육교재(화면처리)
Hankyo
 
2.Spring IoC & DI (ioc container)
2.Spring IoC & DI (ioc container)2.Spring IoC & DI (ioc container)
Sql 중심 코드 탈피 발표자료
Sql 중심 코드 탈피 발표자료Sql 중심 코드 탈피 발표자료
Sql 중심 코드 탈피 발표자료
ssuser776e2d
 
Sql 중심 코드 탈피
Sql 중심 코드 탈피Sql 중심 코드 탈피
Sql 중심 코드 탈피
ssuser776e2d
 
아이폰 앱 패턴
아이폰 앱 패턴아이폰 앱 패턴
아이폰 앱 패턴조 용구
 
자바 웹 개발 시작하기 (4주차 : MVC)
자바 웹 개발 시작하기 (4주차 : MVC)자바 웹 개발 시작하기 (4주차 : MVC)
자바 웹 개발 시작하기 (4주차 : MVC)
DK Lee
 
Data-binding AngularJS
Data-binding AngularJSData-binding AngularJS
Data-binding AngularJS
EunYoung Kim
 
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
Taekyu Lim
 
2조 프로젝트 보고서 김동현
2조 프로젝트 보고서 김동현2조 프로젝트 보고서 김동현
2조 프로젝트 보고서 김동현
kdh24
 
Citrine소개서
Citrine소개서Citrine소개서
Citrine소개서
logeo
 
Rx for iOS App. RxMVVM-DataCenter!
Rx for iOS App. RxMVVM-DataCenter!Rx for iOS App. RxMVVM-DataCenter!
Rx for iOS App. RxMVVM-DataCenter!
SUNGCHEOL KIM
 

Similar to [LetSwift 2023] 객체지향-함수형 아키텍처 직접 만들기 (20)

[NEXT] Andorid에 MVC 패턴 적용하기
[NEXT] Andorid에 MVC 패턴 적용하기[NEXT] Andorid에 MVC 패턴 적용하기
[NEXT] Andorid에 MVC 패턴 적용하기
 
HOONS닷넷 오픈소스 프로젝트 Part1.
HOONS닷넷 오픈소스 프로젝트 Part1.HOONS닷넷 오픈소스 프로젝트 Part1.
HOONS닷넷 오픈소스 프로젝트 Part1.
 
Java script 강의자료_ed13
Java script 강의자료_ed13Java script 강의자료_ed13
Java script 강의자료_ed13
 
Planning poker with jetpack
Planning poker with jetpackPlanning poker with jetpack
Planning poker with jetpack
 
Jpa 쿼리 포함 자료
Jpa 쿼리 포함 자료Jpa 쿼리 포함 자료
Jpa 쿼리 포함 자료
 
Jpa 쿼리 포함 자료
Jpa 쿼리 포함 자료Jpa 쿼리 포함 자료
Jpa 쿼리 포함 자료
 
MVVM Pattern for Android
MVVM Pattern for AndroidMVVM Pattern for Android
MVVM Pattern for Android
 
복잡한 RecyclerView, 군더더기 없이 데이터로 표현하기
복잡한 RecyclerView, 군더더기 없이 데이터로 표현하기복잡한 RecyclerView, 군더더기 없이 데이터로 표현하기
복잡한 RecyclerView, 군더더기 없이 데이터로 표현하기
 
React js 1
React js   1React js   1
React js 1
 
04.실행환경 교육교재(화면처리)
04.실행환경 교육교재(화면처리)04.실행환경 교육교재(화면처리)
04.실행환경 교육교재(화면처리)
 
2.Spring IoC & DI (ioc container)
2.Spring IoC & DI (ioc container)2.Spring IoC & DI (ioc container)
2.Spring IoC & DI (ioc container)
 
Sql 중심 코드 탈피 발표자료
Sql 중심 코드 탈피 발표자료Sql 중심 코드 탈피 발표자료
Sql 중심 코드 탈피 발표자료
 
Sql 중심 코드 탈피
Sql 중심 코드 탈피Sql 중심 코드 탈피
Sql 중심 코드 탈피
 
아이폰 앱 패턴
아이폰 앱 패턴아이폰 앱 패턴
아이폰 앱 패턴
 
자바 웹 개발 시작하기 (4주차 : MVC)
자바 웹 개발 시작하기 (4주차 : MVC)자바 웹 개발 시작하기 (4주차 : MVC)
자바 웹 개발 시작하기 (4주차 : MVC)
 
Data-binding AngularJS
Data-binding AngularJSData-binding AngularJS
Data-binding AngularJS
 
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
 
2조 프로젝트 보고서 김동현
2조 프로젝트 보고서 김동현2조 프로젝트 보고서 김동현
2조 프로젝트 보고서 김동현
 
Citrine소개서
Citrine소개서Citrine소개서
Citrine소개서
 
Rx for iOS App. RxMVVM-DataCenter!
Rx for iOS App. RxMVVM-DataCenter!Rx for iOS App. RxMVVM-DataCenter!
Rx for iOS App. RxMVVM-DataCenter!
 

[LetSwift 2023] 객체지향-함수형 아키텍처 직접 만들기