SlideShare a Scribd company logo
1 of 78
한국카카오은행안정민
MVC, MVVM, ReactorKit, VIPER를
거쳐 RIB 정착기
Architecture 이야기
• 現 한국카카오은행 iOS 개발자 (16.10 ~ )
• 블로그 운영 : minsone.github.io
소개
• 기존 아키텍처에 왜 만족 못했는가?
• RIBs 아키텍처 도입까지 과정
• RIBs 아키텍처를 선택할 수 밖에 없었던 이유
• 기존 프로젝트를 RIBs로 바꿀 수 있을까?
• QnA
목차
기존 아키텍처에
왜 만족 못했는가?
MVC
MVVM
MVP
ReactorKit
VIPER
Flux
Clean
Architecture
RIBs
MVVM-
C
코드 표준화
재사용성
비즈니스
로직 단
순화
명확한
코드 위
치
테스트코
드
격리
화
수정 용이
함
기존 아키텍처에 왜 만족 못했
는가?
• 기존 기능 수정 및 확장 어려움
• 화면 단위가 아닌 프로세스 단위로 유연한 개
발 필요
• 더 확실한 안정화 필요
기존 아키텍처에 왜 만족 못했
는가?
• 기존 기능 수정 및 확장 어려움
• Swift 2버전부터 개발로 당시 Swift 이해도 낮음
• 당시 아키텍처의 표준화된 틀이 없음.
• 유연하지 않은 설계로 인한 기능 확장의 어려움.
• 16년 10월 : 3명 -> 19년 10월 16명
기존 아키텍처에 왜 만족 못했
는가?
• 기존 기능 수정 및 확장 어려움
• 화면 단위가 아닌 프로세스 단위로 유연한 개
발 필요
• 더 확실한 안정화 필요
기존 아키텍처에 왜 만족 못했
는가?
• 화면 단위가 아닌 프로세스 단위로 유연한 개발
필요
• Viewless 아키텍처가 필요.
• 자체 아키텍처 제작
• ReactorKit, Redux, Coordinator 등 아키텍처 참고
• 한 곳에서 많은 로직을 처리하게 코드가 변질됨.
• 재사용 어렵고, 새로운 비즈니스 로직을 넣기 어려움.
• 자체 제작 아키텍처의 유지보수 어려움.
기존 아키텍처에 왜 만족 못했
는가?
• 기존 기능 수정 및 확장 어려움
• 화면 단위가 아닌 프로세스 단위로 유연한 개
발 필요
• 더 확실한 안정화 필요
기존 아키텍처에 왜 만족 못했
는가?
• 더 확실한 안정화 필요
• 앞의 이유로 인한 테스트 코드 작성 시늉도 어려움
.
• 바쁘다는 핑계로 테스트를 제대로 못했던 문제
• 테스트 코드 템플릿 또는 가이드가 있는 아키텍처
가 거의 없음.
• 체계화된 테스트 코드 작성 방식이 필요
RIBs 도입까지
아키텍처 여정
적용했던 아키텍처 여정
• MV(C)
• MVVM
• ReactorKit
• VIPER
적용했던 아키텍처 여정
• MV(C)
• MVVM
• ReactorKit
• VIPER
적용했던 아키텍처 여정 -
MV(C)
출처 : developer.apple.com
적용했던 아키텍처 여정 -
MV(C)
• 장점
• 기존에 익숙하던 구조
• 비즈니스 로직이 거의 없는 단순한 화면에만 적용
• 단점
• 화면의 기능이 확장되면 코드가 잘 정리되지 않고
깔끔하게 작성하기 쉽지 않음.
적용했던 아키텍처 여정
• MV(C)
• MVVM
• ReactorKit
• VIPER
적용했던 아키텍처 여정 -
MVVM
출처 : Medium - iOS Architecture Patterns
적용했던 아키텍처 여정 -
MVVM
• 장점
• MVC보다는 코드가 정리되는 느낌적인 느낌
• 단점
• 복잡해질수록 ViewModel이 빠르게 비대해짐.
• 표준화된 틀이 존재하지 않아 사람마다 이해가 다름.
• 테스트 코드 작성이 가능하면서도 어려움.
• Rx의 허들 및 디버깅
적용했던 아키텍처 여정
• MV(C)
• MVVM
• ReactorKit
• VIPER
출처 : Github - ReactorKit
적용했던 아키텍처 여정 - ReactorK
• 장점
• 상태가 단방향으로 정리되어 View와 관계된 로직
이 깔끔함.
• 저자가 전수열님 - 언제든지 한국어로 물어볼 수
있음.
• 단점
• 프로세스 단위의 아키텍처가 아니라서 아쉬움.
적용했던 아키텍처 여정 - ReactorK
적용했던 아키텍처 여정
• MV(C)
• MVVM
• ReactorKit
• VIPER
적용했던 아키텍처 여정 - VIPER
출처 : Medium - iOS Architecture Patterns
적용했던 아키텍처 여정 - VIPER
• 장점
• V, I, P, E, R 역할이 명확하게 구분됨.
• 단점
• VIPER 아키텍처 설계가 여러 곳으로 난립함.
• 명확한 가이드, 테스트 코드 템플릿이 제대로 갖춰
지고 유지보수 되는 곳이 없음.
RIBs 아키텍처를 선택
할 수 밖에 없었던 이유
RIBs Architecture
출처 : Github - RIBs
Related Sessions
• RxRIBs, Multiplatform architecture with Rx Session Let’Swift 2018
RIBs 아키텍처를 선택할 수 밖에 없었던
이유
• 템플릿화된 코드 및 테스트 작성
• (강제)프로토콜 지향 프로그래밍
• 의존성 주입 DI
• Viewless RIB을 통한 비즈니스 로직 정리
RIBs 아키텍처를 선택할 수 밖에 없었던
이유
RIBs 아키텍처를 선택할 수 밖에 없었던
이유
O Own corresponding view
O Adds Storyboard file
O Own corresponding view
X Adds Storyboard file
X Own corresponding view
X Adds Storyboard file
O Own corresponding view
O Adds Storyboard file
O Own corresponding view
X Adds Storyboard file
X Own corresponding view
X Adds Storyboard file
RIBs 아키텍처를 선택할 수 밖에 없었던
이유
RIBs 아키텍처를 선택할 수 밖에 없었던
이유
RIBs 아키텍처를 선택할 수 밖에 없었던
이유
• 템플릿화된 코드 및 테스트 작성
• 기본적인 테스트 코드 추가
RIBs 아키텍처를 선택할 수 밖에 없었던
이유
• 템플릿화된 코드 및 테스트 작성
• 기본적인 테스트 코드 추가
• 테스트 관련 Mock 샘플 파일이 Tutorial2에서 제공
Tutorial2/TicTacToeTests/TicTacToeMocks.swift
RIBs 아키텍처를 선택할 수 밖에 없었던
이유
• 템플릿화된 코드 및 테스트 작성
• 기본적인 테스트 코드 추가
• 테스트 관련 Mock 샘플 파일이 Tutorial2에서 제공
• RIB 파일을 SourceKitten을 이용해 분석하여 Mock
코드 생성 스크립트 작성
RIBs 아키텍처를 선택할 수 밖에 없었던
이유
• 템플릿화된 코드 및 테스트 작성
• (강제)프로토콜 지향 프로그래밍
• 의존성 주입 DI
• Viewless RIB을 통한 비즈니스 로직 정리
Router Interactor
View
Routing
Interactable
Interact
or
Router Interactor
View
Routing
Interactable
Router
Router Interactor
View
Routing
Interactable
View
Router Interactor
View
Routing
Interactable
Router
Interact
or
View
Router
Interact
or
Child RIB
Parent RIB
Rx Observable Listener
Router
Interact
or
View
Router
Interact
or
Child RIB
Parent RIB
Rx Observable Listener
Router
Interact
or
View
Router
Interact
or
Router
Interact
or
Router
Interact
or
View
RIBs 아키텍처를 선택할 수 밖에 없었던
이유
• 템플릿화된 코드 및 테스트 작성
• (강제)프로토콜 지향 프로그래밍
• 의존성 주입 DI
• Viewless RIB을 통한 비즈니스 로직 정리
RIBs 아키텍처를 선택할 수 밖에 없었던
이유
• 의존성 주입 DI
• 해당 RIB에서 필요한 속성을 Dependency에 정의.
Dependency 확장
name, nickName 필요
RIBs 아키텍처를 선택할 수 밖에 없었던
이유
• 의존성 주입 DI
• 해당 RIB에서 필요한 속성을 Dependency에 정의.
• Dependency에 정의된 요소들을 구현 필요.
• Dependency가 확장되면 컴파일 에러 발생
• 해당 RIB을 사용하는 곳은 모든 곳에서 다 작성해
야 함.
RIBs 아키텍처를 선택할 수 밖에 없었던
이유
• 템플릿화된 코드 및 테스트 작성
• (강제)프로토콜 지향 프로그래밍
• 의존성 주입 DI
• Viewless RIB을 통한 비즈니스 로직 정리
RIBs 아키텍처를 선택할 수 밖에 없었던
이유
• Viewless RIB을 통한 비즈니스 로직 정리
• 복잡한 로직을 작은 단위의 RIB을 엮어 만듬.
RIBs 아키텍처를 선택할 수 밖에 없었던
이유
개설 가
능
대상자
조회
예금 개
설
시작
개설 가
능
상품 여
부
조회
상품 소
개
거래 제
한
해제
약관 목
록
예금 신
청서
작성
RIBs 아키텍처를 선택할 수 밖에 없었던
이유
개설 가
능
대상자
조회
예금 개
설
시작
거래 제
한
해제
개설 가
능
상품 여
부
조회
상품 소
개
약관 목
록
예금 신
청서
작성
RIBs 아키텍처를 선택할 수 밖에 없었던
이유
개설 가
능
대상자
조회
예금 개
설
시작
개설 가
능
상품 여
부
조회
상품 소
개
거래 제
한
해제
약관 목
록
예금 신
청서
작성
RIBs 아키텍처를 선택할 수 밖에 없었던
이유
개설 가
능
대상자
조회
예금 개
설
시작
개설 가
능
상품 여
부
조회
상품 소
개
거래 제
한
해제
약관 목
록
예금 신
청서
작성
기존 프로젝트를 RIBs
로 바꿀 수 있을까?
가능합니다.
지금 바꾸고 있으니까요.
어떻게 기존 프로젝트에 RIBs을 적용
할까?
• 신규 화면 또는 비즈니스 로직을 RIB으로 변경
• Packaging
어떻게 기존 프로젝트에 RIBs을 적용
할까?
• 신규 화면 또는 비즈니스 로직을 RIB으로 변경
• 비즈니스 로직만 처리하는 RIB을 호출하는 경우
어떻게 기존 프로젝트에 RIBs을 적용
할까?
• 신규 화면 또는 비즈니스 로직을 RIB으로 변경
• 비즈니스 로직만 처리하는 RIB을 호출하는 경우
어떻게 기존 프로젝트에 RIBs을 적용
할까?
• 신규 화면 또는 비즈니스 로직을 RIB으로 변경
• 비즈니스 로직만 처리하는 RIB을 호출하는 경우
• 화면 모듈을 RIB으로 연결하는 경우
어떻게 기존 프로젝트에 RIBs을 적용
할까?
• 신규 화면 또는 비즈니스 로직을 RIB으로 변경
• Packaging
어떻게 기존 프로젝트에 RIBs을 적용
할까?
• Packaging
• 프로젝트를 별도로 만들어 패키징하고 RIB을 작
게 시작.
• 코드 작성 및 테스트 코드 작성이 쉬워짐.
Related Sessions
• Static, Dynamic Framework 그리고
Encapsulation
Session
Letusgo 2019
Fall
• 프레임워크 주도 개발 Session
Letusgo 2019
Spring
어떻게 기존 프로젝트에 RIBs을 적용
할까?
• 신규 화면 또는 비즈니스 로직을 RIB으로 변경
• 격리화 & 패키징
• 찾아가는 서비스(고기 필요)
요약
요약 - RIB Architecture
• 장점
• 좀 더 템플릿화가 잘 되어 있음.
• 프로토콜 지향 프로그래밍을 할 수 밖에 없는 구조.
• 복잡한 로직 흐름을 모듈화 및 재사용에 강함.
• 단점
• 프로토콜 지향 프로그래밍으로 꼭 해야하지 하는 이해의 문
제
• 파일이 많이 생성되는 문제.
Reference
• LetsSwift 2018 - VCNC RIBs
• Github : Uber/RIBs
• Uber Engineering Blog
QnA
MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기

More Related Content

What's hot

Let'Swift 2023 iOS 애플리케이션 개발 생산성 고찰
- 정시 퇴근을 위해 우리는 어떻게 해야할 것인가?
Let'Swift 2023 iOS 애플리케이션 개발 생산성 고찰
- 정시 퇴근을 위해 우리는 어떻게 해야할 것인가? Let'Swift 2023 iOS 애플리케이션 개발 생산성 고찰
- 정시 퇴근을 위해 우리는 어떻게 해야할 것인가?
Let'Swift 2023 iOS 애플리케이션 개발 생산성 고찰
- 정시 퇴근을 위해 우리는 어떻게 해야할 것인가? 정민 안
 
LetSwift 2017 - 토스 iOS 앱의 개발/배포 환경
LetSwift 2017 - 토스 iOS 앱의 개발/배포 환경LetSwift 2017 - 토스 iOS 앱의 개발/배포 환경
LetSwift 2017 - 토스 iOS 앱의 개발/배포 환경Mintak Son
 
fastlane을 이용하여 iOS/Mac 앱 관리하기
fastlane을 이용하여 iOS/Mac 앱 관리하기fastlane을 이용하여 iOS/Mac 앱 관리하기
fastlane을 이용하여 iOS/Mac 앱 관리하기정민 안
 
Google Mobile Vision과 OpenCV로 card.io를 확장한 범용 카드번호인식 개발
Google Mobile Vision과 OpenCV로 card.io를 확장한 범용 카드번호인식 개발Google Mobile Vision과 OpenCV로 card.io를 확장한 범용 카드번호인식 개발
Google Mobile Vision과 OpenCV로 card.io를 확장한 범용 카드번호인식 개발Hyukjae Jang
 
SwiftUI와 TCA로 GitHub Search앱 만들기
SwiftUI와 TCA로 GitHub Search앱 만들기SwiftUI와 TCA로 GitHub Search앱 만들기
SwiftUI와 TCA로 GitHub Search앱 만들기규영 허
 
생산성을 높여주는 iOS 개발 방법들.pdf
생산성을 높여주는 iOS 개발 방법들.pdf생산성을 높여주는 iOS 개발 방법들.pdf
생산성을 높여주는 iOS 개발 방법들.pdfssuserb942d2
 
Angular Dependency Injection
Angular Dependency InjectionAngular Dependency Injection
Angular Dependency InjectionNir Kaufman
 
RxSwift Testing 같이 시작하기 feat. RxBlocking, RxTest
RxSwift Testing 같이 시작하기 feat. RxBlocking, RxTestRxSwift Testing 같이 시작하기 feat. RxBlocking, RxTest
RxSwift Testing 같이 시작하기 feat. RxBlocking, RxTestByeongchan Lee
 
Letswift19-clean-architecture
Letswift19-clean-architectureLetswift19-clean-architecture
Letswift19-clean-architectureJung Kim
 
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023Steve Pember
 
React Js Simplified
React Js SimplifiedReact Js Simplified
React Js SimplifiedSunil Yadav
 
SwiftUI and Combine All the Things
SwiftUI and Combine All the ThingsSwiftUI and Combine All the Things
SwiftUI and Combine All the ThingsScott Gardner
 
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) 마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) Amazon Web Services Korea
 
Pipeline based deployments on Jenkins
Pipeline based deployments  on JenkinsPipeline based deployments  on Jenkins
Pipeline based deployments on JenkinsKnoldus Inc.
 

What's hot (20)

Let'Swift 2023 iOS 애플리케이션 개발 생산성 고찰
- 정시 퇴근을 위해 우리는 어떻게 해야할 것인가?
Let'Swift 2023 iOS 애플리케이션 개발 생산성 고찰
- 정시 퇴근을 위해 우리는 어떻게 해야할 것인가? Let'Swift 2023 iOS 애플리케이션 개발 생산성 고찰
- 정시 퇴근을 위해 우리는 어떻게 해야할 것인가?
Let'Swift 2023 iOS 애플리케이션 개발 생산성 고찰
- 정시 퇴근을 위해 우리는 어떻게 해야할 것인가?
 
LetSwift 2017 - 토스 iOS 앱의 개발/배포 환경
LetSwift 2017 - 토스 iOS 앱의 개발/배포 환경LetSwift 2017 - 토스 iOS 앱의 개발/배포 환경
LetSwift 2017 - 토스 iOS 앱의 개발/배포 환경
 
fastlane을 이용하여 iOS/Mac 앱 관리하기
fastlane을 이용하여 iOS/Mac 앱 관리하기fastlane을 이용하여 iOS/Mac 앱 관리하기
fastlane을 이용하여 iOS/Mac 앱 관리하기
 
Google Mobile Vision과 OpenCV로 card.io를 확장한 범용 카드번호인식 개발
Google Mobile Vision과 OpenCV로 card.io를 확장한 범용 카드번호인식 개발Google Mobile Vision과 OpenCV로 card.io를 확장한 범용 카드번호인식 개발
Google Mobile Vision과 OpenCV로 card.io를 확장한 범용 카드번호인식 개발
 
React hooks
React hooksReact hooks
React hooks
 
SwiftUI와 TCA로 GitHub Search앱 만들기
SwiftUI와 TCA로 GitHub Search앱 만들기SwiftUI와 TCA로 GitHub Search앱 만들기
SwiftUI와 TCA로 GitHub Search앱 만들기
 
생산성을 높여주는 iOS 개발 방법들.pdf
생산성을 높여주는 iOS 개발 방법들.pdf생산성을 높여주는 iOS 개발 방법들.pdf
생산성을 높여주는 iOS 개발 방법들.pdf
 
Angular Dependency Injection
Angular Dependency InjectionAngular Dependency Injection
Angular Dependency Injection
 
RxSwift to Combine
RxSwift to CombineRxSwift to Combine
RxSwift to Combine
 
RxSwift Testing 같이 시작하기 feat. RxBlocking, RxTest
RxSwift Testing 같이 시작하기 feat. RxBlocking, RxTestRxSwift Testing 같이 시작하기 feat. RxBlocking, RxTest
RxSwift Testing 같이 시작하기 feat. RxBlocking, RxTest
 
React native
React nativeReact native
React native
 
Letswift19-clean-architecture
Letswift19-clean-architectureLetswift19-clean-architecture
Letswift19-clean-architecture
 
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
 
React-JS.pptx
React-JS.pptxReact-JS.pptx
React-JS.pptx
 
React Js Simplified
React Js SimplifiedReact Js Simplified
React Js Simplified
 
SwiftUI and Combine All the Things
SwiftUI and Combine All the ThingsSwiftUI and Combine All the Things
SwiftUI and Combine All the Things
 
Web API Basics
Web API BasicsWeb API Basics
Web API Basics
 
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) 마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
 
reactJS
reactJSreactJS
reactJS
 
Pipeline based deployments on Jenkins
Pipeline based deployments  on JenkinsPipeline based deployments  on Jenkins
Pipeline based deployments on Jenkins
 

Similar to MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기

Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리Sa-ryong Kang
 
주니어 입장에서 바라보는 디자인패턴 & 아키텍쳐.pdf
주니어 입장에서 바라보는 디자인패턴 & 아키텍쳐.pdf주니어 입장에서 바라보는 디자인패턴 & 아키텍쳐.pdf
주니어 입장에서 바라보는 디자인패턴 & 아키텍쳐.pdf병근 손
 
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기Amazon Web Services Korea
 
Atlassian cloud 제품을 이용한 DevOps 프로세스 구축
Atlassian cloud 제품을 이용한 DevOps 프로세스 구축Atlassian cloud 제품을 이용한 DevOps 프로세스 구축
Atlassian cloud 제품을 이용한 DevOps 프로세스 구축SooHyunsuPark
 
Atlassian cloud 제품을 이용한 DevOps 프로세스 구축: Jira Cloud, Bitbucket Cloud
Atlassian cloud 제품을 이용한 DevOps 프로세스 구축: Jira Cloud, Bitbucket CloudAtlassian cloud 제품을 이용한 DevOps 프로세스 구축: Jira Cloud, Bitbucket Cloud
Atlassian cloud 제품을 이용한 DevOps 프로세스 구축: Jira Cloud, Bitbucket CloudOpen Source Consulting
 
GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축철구 김
 
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다Jongwon Han
 
베스핀글로벌 DevOps 서비스 소개
베스핀글로벌 DevOps 서비스 소개베스핀글로벌 DevOps 서비스 소개
베스핀글로벌 DevOps 서비스 소개BESPIN GLOBAL
 
발표용 킴스큐 2012사업보고서
발표용 킴스큐 2012사업보고서발표용 킴스큐 2012사업보고서
발표용 킴스큐 2012사업보고서Gitaek kwon
 
아키텍트가 알아야 할 12/97가지
아키텍트가 알아야 할 12/97가지아키텍트가 알아야 할 12/97가지
아키텍트가 알아야 할 12/97가지YoungSu Son
 
비대면 MSA / CNA 강의 - Contactless Microservices Architecture Learning
비대면 MSA / CNA 강의 - Contactless Microservices Architecture Learning비대면 MSA / CNA 강의 - Contactless Microservices Architecture Learning
비대면 MSA / CNA 강의 - Contactless Microservices Architecture LearninguEngine Solutions
 
[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트Chanwoong Kim
 
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐Terry Cho
 
Angular는 사실 어렵지 않습니다.
Angular는 사실 어렵지 않습니다.Angular는 사실 어렵지 않습니다.
Angular는 사실 어렵지 않습니다.장현 한
 
VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리Gyuwon Yi
 
델파이 코드 마이그레이션 Step by Step
델파이 코드 마이그레이션 Step by Step델파이 코드 마이그레이션 Step by Step
델파이 코드 마이그레이션 Step by StepDevgear
 
QlikView ppt
QlikView pptQlikView ppt
QlikView pptTomi Lee
 
서비스 지향 아키텍쳐 (SOA)
서비스 지향 아키텍쳐 (SOA)서비스 지향 아키텍쳐 (SOA)
서비스 지향 아키텍쳐 (SOA)Terry Cho
 
[Games on AWS 2019] AWS 사용자를 위한 만랩 달성 트랙 | 코드 기반으로 인프라 운영하기 - 박성훈 NEOWIZ 팀장,...
[Games on AWS 2019] AWS 사용자를 위한 만랩 달성 트랙 | 코드 기반으로 인프라 운영하기 -  박성훈 NEOWIZ 팀장,...[Games on AWS 2019] AWS 사용자를 위한 만랩 달성 트랙 | 코드 기반으로 인프라 운영하기 -  박성훈 NEOWIZ 팀장,...
[Games on AWS 2019] AWS 사용자를 위한 만랩 달성 트랙 | 코드 기반으로 인프라 운영하기 - 박성훈 NEOWIZ 팀장,...Amazon Web Services Korea
 
MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드Opennaru, inc.
 

Similar to MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기 (20)

Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
 
주니어 입장에서 바라보는 디자인패턴 & 아키텍쳐.pdf
주니어 입장에서 바라보는 디자인패턴 & 아키텍쳐.pdf주니어 입장에서 바라보는 디자인패턴 & 아키텍쳐.pdf
주니어 입장에서 바라보는 디자인패턴 & 아키텍쳐.pdf
 
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
 
Atlassian cloud 제품을 이용한 DevOps 프로세스 구축
Atlassian cloud 제품을 이용한 DevOps 프로세스 구축Atlassian cloud 제품을 이용한 DevOps 프로세스 구축
Atlassian cloud 제품을 이용한 DevOps 프로세스 구축
 
Atlassian cloud 제품을 이용한 DevOps 프로세스 구축: Jira Cloud, Bitbucket Cloud
Atlassian cloud 제품을 이용한 DevOps 프로세스 구축: Jira Cloud, Bitbucket CloudAtlassian cloud 제품을 이용한 DevOps 프로세스 구축: Jira Cloud, Bitbucket Cloud
Atlassian cloud 제품을 이용한 DevOps 프로세스 구축: Jira Cloud, Bitbucket Cloud
 
GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축
 
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
 
베스핀글로벌 DevOps 서비스 소개
베스핀글로벌 DevOps 서비스 소개베스핀글로벌 DevOps 서비스 소개
베스핀글로벌 DevOps 서비스 소개
 
발표용 킴스큐 2012사업보고서
발표용 킴스큐 2012사업보고서발표용 킴스큐 2012사업보고서
발표용 킴스큐 2012사업보고서
 
아키텍트가 알아야 할 12/97가지
아키텍트가 알아야 할 12/97가지아키텍트가 알아야 할 12/97가지
아키텍트가 알아야 할 12/97가지
 
비대면 MSA / CNA 강의 - Contactless Microservices Architecture Learning
비대면 MSA / CNA 강의 - Contactless Microservices Architecture Learning비대면 MSA / CNA 강의 - Contactless Microservices Architecture Learning
비대면 MSA / CNA 강의 - Contactless Microservices Architecture Learning
 
[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트
 
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐
 
Angular는 사실 어렵지 않습니다.
Angular는 사실 어렵지 않습니다.Angular는 사실 어렵지 않습니다.
Angular는 사실 어렵지 않습니다.
 
VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리
 
델파이 코드 마이그레이션 Step by Step
델파이 코드 마이그레이션 Step by Step델파이 코드 마이그레이션 Step by Step
델파이 코드 마이그레이션 Step by Step
 
QlikView ppt
QlikView pptQlikView ppt
QlikView ppt
 
서비스 지향 아키텍쳐 (SOA)
서비스 지향 아키텍쳐 (SOA)서비스 지향 아키텍쳐 (SOA)
서비스 지향 아키텍쳐 (SOA)
 
[Games on AWS 2019] AWS 사용자를 위한 만랩 달성 트랙 | 코드 기반으로 인프라 운영하기 - 박성훈 NEOWIZ 팀장,...
[Games on AWS 2019] AWS 사용자를 위한 만랩 달성 트랙 | 코드 기반으로 인프라 운영하기 -  박성훈 NEOWIZ 팀장,...[Games on AWS 2019] AWS 사용자를 위한 만랩 달성 트랙 | 코드 기반으로 인프라 운영하기 -  박성훈 NEOWIZ 팀장,...
[Games on AWS 2019] AWS 사용자를 위한 만랩 달성 트랙 | 코드 기반으로 인프라 운영하기 - 박성훈 NEOWIZ 팀장,...
 
MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드
 

More from 정민 안

20240325 TuistNight 모듈로 나누면 알아두면 좋을 3가지 팁
20240325 TuistNight 모듈로 나누면 알아두면 좋을 3가지 팁20240325 TuistNight 모듈로 나누면 알아두면 좋을 3가지 팁
20240325 TuistNight 모듈로 나누면 알아두면 좋을 3가지 팁정민 안
 
Letusgo 2019 Summer - StringInterpolation and SwiftUI
Letusgo 2019 Summer - StringInterpolation and SwiftUILetusgo 2019 Summer - StringInterpolation and SwiftUI
Letusgo 2019 Summer - StringInterpolation and SwiftUI정민 안
 
Debugging with xcode, lldb and chisel
Debugging with xcode, lldb and chiselDebugging with xcode, lldb and chisel
Debugging with xcode, lldb and chisel정민 안
 
Introduce fastlane
Introduce fastlaneIntroduce fastlane
Introduce fastlane정민 안
 
형상관리 발표자료 안정민
형상관리 발표자료 안정민형상관리 발표자료 안정민
형상관리 발표자료 안정민정민 안
 

More from 정민 안 (6)

20240325 TuistNight 모듈로 나누면 알아두면 좋을 3가지 팁
20240325 TuistNight 모듈로 나누면 알아두면 좋을 3가지 팁20240325 TuistNight 모듈로 나누면 알아두면 좋을 3가지 팁
20240325 TuistNight 모듈로 나누면 알아두면 좋을 3가지 팁
 
Letusgo 2019 Summer - StringInterpolation and SwiftUI
Letusgo 2019 Summer - StringInterpolation and SwiftUILetusgo 2019 Summer - StringInterpolation and SwiftUI
Letusgo 2019 Summer - StringInterpolation and SwiftUI
 
Debugging with xcode, lldb and chisel
Debugging with xcode, lldb and chiselDebugging with xcode, lldb and chisel
Debugging with xcode, lldb and chisel
 
Introduce fastlane
Introduce fastlaneIntroduce fastlane
Introduce fastlane
 
Git lecture
Git lectureGit lecture
Git lecture
 
형상관리 발표자료 안정민
형상관리 발표자료 안정민형상관리 발표자료 안정민
형상관리 발표자료 안정민
 

MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기