SlideShare a Scribd company logo
1 of 33
Download to read offline
Ever
주니어 입장에서 바라보는 디자인패턴 & 아키텍쳐
Index
• Intro

• Design Pattern & Architecture Pattern

• MVC(Massive View Controller)

• 학습 시 도움이 되는 내용 & 활동

• Q&A
저는 iOS 개발자입니다.
iOS 개발을 잘 하려면..
첫 코딩 테스트 후기
A사

- 아키텍쳐에 대한 이해와 관심이 있으신 분

- 업무 프로세스 및 개발 문화 개선에 관심이 많으신 분
B사

- MVVM/Clean Architecture 등 아키텍쳐 설계 및 디자인패턴에 관심이 많으신분

- 대규모 서비스를 개발해 보신 분

- 새로운 기술을 적극적으로 학습하고 적용하고 싶으신 분

- Testable 한 코드 작업에 익숙하신 분
C사

- Reactive 프로그래밍에 대한 이해 및 RxSwift 사용 경험이 있으신 분

- SwiftUI / Combine / MVVM 사용경험이 있으신 분

- Clean Architecture 등 아키텍쳐 설계와 디자인 패턴 적용 경험이 있으신 분
D사

- 클린 아키텍처에 대한 이해 및 프로젝트 적용 경험 보유

- SwiftUI 사용 경험 보유

- 앱스토어 등록/검수/상용경험

- 라이브러리 배포 경험
🧐
이런 사람을 원한다던데…
Design Pattern
&
Architecture Pattern
https://github.com/ochococo/Design-Patterns-In-Swift
Design Pattern
익숙한 디자인 패턴 - Delegation
익숙한 디자인 패턴 - Observer, Singleton
🤔
MVC
MVVM
Coordinator
VIPER
RIBs
VIP
🤔
SOLID
클린아키텍쳐
의존성 주입
강한 결합
바인딩
비즈니스 로직
저는 VIP 패턴을 사용할 줄 압니다.
Why?
MVC(Massive View Controller)
UIViewController의 역할
• User Interface 구성 및 업데이트

• Life Cycle(viewDidLoad, ViewWillAppear, etc..)

• User Action 처리

• 역할 위임(dataSource, delegate)

• Networking

• 화면 전환(인스턴스 생성, 의존성 주입, 화면 이동)
MVC(Massive View Controller)
Sample Project - MassiveViewController 개선해보기
DataSource


&


Delegate
Network
Navigation
Decode
UI Con
fi
guration
User Action
MVC(Massive View Controller)
LifeCycle
MVC(Massive View Controller)
UI Con
fi
guration
MVC(Massive View Controller)
UI Con
fi
guration
loadView
Delegation or Closure
MVC(Massive View Controller)
DataSource & Delegate
MVC(Massive View Controller)
DataSource & Delegate
MVC(Massive View Controller)
DataSource & Delegate
별도 클래스 사용하기
NSObjectProtocol
MVC(Massive View Controller)
Network & Decode & Update View
MVC(Massive View Controller)
Network & Decode & Update View
별도의 Downloader 구현하기
MVC(Massive View Controller)
User Action + Navigation
MVC(Massive View Controller)
User Action + Navigation
Coordinator Pattern
MVC(Massive View Controller)
샘플 코드
https://github.com/SH4CK3RS/
LetUsGo2022Summer
학습 시 도움이 되는 내용 & 활동
UML 다이어그램
ViewController
View Model
ViewController
View Model
ViewModel
학습 시 도움이 되는 내용 & 활동
UML 다이어그램
학습 시 도움이 되는 내용 & 활동
OOP & SOLID & Clean Architecture
학습 시 도움이 되는 내용 & 활동
Yak Shaving
Conclusion
스스로가 옳다고 생각하는 기준을 정하고
나아가 더 좋은 코드를 작성하기 위해 노력하며 성장하는 개발자가 됩시다!

More Related Content

Similar to 주니어 입장에서 바라보는 디자인패턴 & 아키텍쳐.pdf

현장에서의 비주얼 코디네이션
현장에서의 비주얼 코디네이션현장에서의 비주얼 코디네이션
현장에서의 비주얼 코디네이션Taiheon Choi
 
[HCI2010]UI패턴기반 UI설계/개발자동화사례발표
[HCI2010]UI패턴기반 UI설계/개발자동화사례발표[HCI2010]UI패턴기반 UI설계/개발자동화사례발표
[HCI2010]UI패턴기반 UI설계/개발자동화사례발표ChangGyum Kim
 
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20Amazon Web Services Korea
 
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기Amazon Web Services Korea
 
Backbone 발표
Backbone 발표Backbone 발표
Backbone 발표Gunhee Lee
 
드래그홈2010홈페이지제안서
드래그홈2010홈페이지제안서드래그홈2010홈페이지제안서
드래그홈2010홈페이지제안서draghome
 
04.실행환경 교육교재(화면처리)
04.실행환경 교육교재(화면처리)04.실행환경 교육교재(화면처리)
04.실행환경 교육교재(화면처리)Hankyo
 
Pivotal Concourse를 활용한 CI/CD pipeline automated build-up & Workflow managemen...
Pivotal Concourse를 활용한 CI/CD pipeline automated build-up & Workflow managemen...Pivotal Concourse를 활용한 CI/CD pipeline automated build-up & Workflow managemen...
Pivotal Concourse를 활용한 CI/CD pipeline automated build-up & Workflow managemen...VMware Tanzu Korea
 
2016 Staccato track3 Android를 더 잘 개발하려면? (MVP, MVVM, Clean Architecture)
2016 Staccato track3 Android를 더 잘 개발하려면? (MVP, MVVM, Clean Architecture)2016 Staccato track3 Android를 더 잘 개발하려면? (MVP, MVVM, Clean Architecture)
2016 Staccato track3 Android를 더 잘 개발하려면? (MVP, MVVM, Clean Architecture)승용 윤
 
Knockout js소개
Knockout js소개Knockout js소개
Knockout js소개Kwangho SEO
 
클라우드 네이티브 전환 요소 및 성공적인 쿠버네티스 도입 전략
클라우드 네이티브 전환 요소 및 성공적인 쿠버네티스 도입 전략클라우드 네이티브 전환 요소 및 성공적인 쿠버네티스 도입 전략
클라우드 네이티브 전환 요소 및 성공적인 쿠버네티스 도입 전략Open Source Consulting
 
[OpenInfra Days Korea 2018] (Track 2) Microservice Architecture, DevOps 그리고 5...
[OpenInfra Days Korea 2018] (Track 2) Microservice Architecture, DevOps 그리고 5...[OpenInfra Days Korea 2018] (Track 2) Microservice Architecture, DevOps 그리고 5...
[OpenInfra Days Korea 2018] (Track 2) Microservice Architecture, DevOps 그리고 5...OpenStack Korea Community
 
Data Center to Cloud - AWS 마이그레이션 자동화 방법 및 도구 - AWS Summit Seoul 2017
Data Center to Cloud - AWS 마이그레이션 자동화 방법 및 도구 - AWS Summit Seoul 2017Data Center to Cloud - AWS 마이그레이션 자동화 방법 및 도구 - AWS Summit Seoul 2017
Data Center to Cloud - AWS 마이그레이션 자동화 방법 및 도구 - AWS Summit Seoul 2017Amazon Web Services Korea
 
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문종훈 박
 
Developing iOS with Rx, MVVM
Developing iOS with Rx, MVVMDeveloping iOS with Rx, MVVM
Developing iOS with Rx, MVVMWooseong Kim
 
iOS Architecture.pdf
iOS Architecture.pdfiOS Architecture.pdf
iOS Architecture.pdfssuser86e2971
 
Cloud-Barista 제2차 오픈 컨퍼런스 : CB-Waterstrider-멀티 클라우드 서비스 공통 플랫폼 웹도구(Cloud-Bari...
Cloud-Barista 제2차 오픈 컨퍼런스 : CB-Waterstrider-멀티 클라우드 서비스 공통 플랫폼 웹도구(Cloud-Bari...Cloud-Barista 제2차 오픈 컨퍼런스 : CB-Waterstrider-멀티 클라우드 서비스 공통 플랫폼 웹도구(Cloud-Bari...
Cloud-Barista 제2차 오픈 컨퍼런스 : CB-Waterstrider-멀티 클라우드 서비스 공통 플랫폼 웹도구(Cloud-Bari...Cloud-Barista Community
 
꿀밋업1탄_왜_마이크로서비스인가
꿀밋업1탄_왜_마이크로서비스인가꿀밋업1탄_왜_마이크로서비스인가
꿀밋업1탄_왜_마이크로서비스인가VMware Tanzu Korea
 

Similar to 주니어 입장에서 바라보는 디자인패턴 & 아키텍쳐.pdf (20)

현장에서의 비주얼 코디네이션
현장에서의 비주얼 코디네이션현장에서의 비주얼 코디네이션
현장에서의 비주얼 코디네이션
 
[HCI2010]UI패턴기반 UI설계/개발자동화사례발표
[HCI2010]UI패턴기반 UI설계/개발자동화사례발표[HCI2010]UI패턴기반 UI설계/개발자동화사례발표
[HCI2010]UI패턴기반 UI설계/개발자동화사례발표
 
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
 
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
 
Backbone 발표
Backbone 발표Backbone 발표
Backbone 발표
 
드래그홈2010홈페이지제안서
드래그홈2010홈페이지제안서드래그홈2010홈페이지제안서
드래그홈2010홈페이지제안서
 
04.실행환경 교육교재(화면처리)
04.실행환경 교육교재(화면처리)04.실행환경 교육교재(화면처리)
04.실행환경 교육교재(화면처리)
 
Pivotal Concourse를 활용한 CI/CD pipeline automated build-up & Workflow managemen...
Pivotal Concourse를 활용한 CI/CD pipeline automated build-up & Workflow managemen...Pivotal Concourse를 활용한 CI/CD pipeline automated build-up & Workflow managemen...
Pivotal Concourse를 활용한 CI/CD pipeline automated build-up & Workflow managemen...
 
ecdevday4
ecdevday4ecdevday4
ecdevday4
 
2016 Staccato track3 Android를 더 잘 개발하려면? (MVP, MVVM, Clean Architecture)
2016 Staccato track3 Android를 더 잘 개발하려면? (MVP, MVVM, Clean Architecture)2016 Staccato track3 Android를 더 잘 개발하려면? (MVP, MVVM, Clean Architecture)
2016 Staccato track3 Android를 더 잘 개발하려면? (MVP, MVVM, Clean Architecture)
 
Knockout js소개
Knockout js소개Knockout js소개
Knockout js소개
 
One ASP.NET
One ASP.NETOne ASP.NET
One ASP.NET
 
클라우드 네이티브 전환 요소 및 성공적인 쿠버네티스 도입 전략
클라우드 네이티브 전환 요소 및 성공적인 쿠버네티스 도입 전략클라우드 네이티브 전환 요소 및 성공적인 쿠버네티스 도입 전략
클라우드 네이티브 전환 요소 및 성공적인 쿠버네티스 도입 전략
 
[OpenInfra Days Korea 2018] (Track 2) Microservice Architecture, DevOps 그리고 5...
[OpenInfra Days Korea 2018] (Track 2) Microservice Architecture, DevOps 그리고 5...[OpenInfra Days Korea 2018] (Track 2) Microservice Architecture, DevOps 그리고 5...
[OpenInfra Days Korea 2018] (Track 2) Microservice Architecture, DevOps 그리고 5...
 
Data Center to Cloud - AWS 마이그레이션 자동화 방법 및 도구 - AWS Summit Seoul 2017
Data Center to Cloud - AWS 마이그레이션 자동화 방법 및 도구 - AWS Summit Seoul 2017Data Center to Cloud - AWS 마이그레이션 자동화 방법 및 도구 - AWS Summit Seoul 2017
Data Center to Cloud - AWS 마이그레이션 자동화 방법 및 도구 - AWS Summit Seoul 2017
 
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
 
Developing iOS with Rx, MVVM
Developing iOS with Rx, MVVMDeveloping iOS with Rx, MVVM
Developing iOS with Rx, MVVM
 
iOS Architecture.pdf
iOS Architecture.pdfiOS Architecture.pdf
iOS Architecture.pdf
 
Cloud-Barista 제2차 오픈 컨퍼런스 : CB-Waterstrider-멀티 클라우드 서비스 공통 플랫폼 웹도구(Cloud-Bari...
Cloud-Barista 제2차 오픈 컨퍼런스 : CB-Waterstrider-멀티 클라우드 서비스 공통 플랫폼 웹도구(Cloud-Bari...Cloud-Barista 제2차 오픈 컨퍼런스 : CB-Waterstrider-멀티 클라우드 서비스 공통 플랫폼 웹도구(Cloud-Bari...
Cloud-Barista 제2차 오픈 컨퍼런스 : CB-Waterstrider-멀티 클라우드 서비스 공통 플랫폼 웹도구(Cloud-Bari...
 
꿀밋업1탄_왜_마이크로서비스인가
꿀밋업1탄_왜_마이크로서비스인가꿀밋업1탄_왜_마이크로서비스인가
꿀밋업1탄_왜_마이크로서비스인가
 

주니어 입장에서 바라보는 디자인패턴 & 아키텍쳐.pdf