아키텍처 패턴들을 주관적 느낌이 아닌 저서들과 논문들에 기반해 학습합니다. iOS의 UIKit 환경에서 MVC, MVP, MVVM을 설명합니다.
이런 걸
배워요!
GUI 아키텍처 패턴들의 역사와 특징
iOS 환경에서의 GUI 아키텍처 패턴
iOS 개발자를 꿈꾼다면 필수!
GUI 아키텍처 패턴 ✨
iOS 개발자 채용공고를 보면 반드시 빠지지 않는 필수요건이 있습니다. 바로 '다양한 아키텍처 패턴에 대한 이해나 경험'입니다. 하지만 아키텍처 패턴에 대해 한국어로 자세하게 설명해주는 책이나 글은 찾아볼 수 없습니다. 저도 비슷한 어려움을 겪으며 직접 영어나 일본어로 된 저서들과 논문들을 읽고 나서야 큰 흐름을 이해할 수 있었습니다.
본 강의에서는 아키텍처 패턴들의 역사와 주요 개념을 다룹니다. GUI 아키텍처인 MVC, MVP, MVVM 아키텍처를 중점적으로 다룹니다. 아키텍처 패턴은 유행이 자주 바뀌고, 못 따라갈까 봐 불안감이 드는 주제입니다. 그러한 불안감을 해소하는 유일한 방법은 기초를 탄탄히 세우는 것입니다. 제 강의가 그 초석이 되기를 바랍니다.
iOS는 다른 개발 환경에 비해 상당히 다양한 아키텍처 패턴들이 사용되고 있습니다. 하지만 다양한 아키텍처 패턴을 관통하는 키워드는 생각보다 단순하며 대부분은 기존 아키텍처의 작은 변형에 불과합니다. 어떤 종류의 패턴을 선택할지 헷갈릴수록 유행에 휩쓸리지 않고 본질에 집중하여 학습하는 것을 권장합니다.
📢 수강 전 확인해주세요!
아키택처 패턴을
학습하고 싶은 분
iOS 개발자 취업을
준비하는 취준생
iOS 프로젝트가 처음인
경력 개발자
iOS 프로젝트 경험은
있지만 아키텍처 패턴
지식이 부족한 분
특정 아키텍처 패턴은 해당 아키텍처 패턴이 탄생한 개발 환경을 제거한 추상적 형태로는 이해할 수 없습니다. 이 강의에서는 여러 저서와 논문들의 내용을 통해 각각의 아키텍처 패턴들이 해결하려 했던 문제가 무엇인지 파악하고 iOS에 적용이 가능한지 논의합니다.
이 강의는 커뮤니티의 유행과는 거리가 멉니다. MVC를 Massive Controller라고 일축하고 다른 아키텍처를 MVC에 비해 진보한 아키텍처로 바라보는 관점을 지양합니다. 마틴 파울러의 말처럼 아키텍처 패턴을 '무언가 중요한 이야기를 하고 있다는 인상을 주기 위해 활용하려는 목적'으로 사용하길 원한다면 이 강의와는 맞지 않습니다.
아키텍처 패턴에 대해 한국어로 자세하게 설명해주는 책이나 글은 찾아볼 수 없습니다. 콘퍼런스 발표 자료들도 시간의 제약이나 커뮤니티 활동의 특성상 양질의 내용을 기대하기는 힘듭니다. 제가 경험한 어려움을 바탕으로 GUI 아키텍처 패턴의 역사와 주요 개념을 학습할 수 있도록 강의를 구성했습니다.
아키텍처와 패턴 그리고 아키텍처 패턴이 무엇인지 각각 정의하면서 필요한 여러 개념들을 배웁니다.
주요 주제
GUI 아키텍처의 시조인 MVC(Model-View-Controller)를 학습합니다.
주요 주제
개발환경의 변화에 따라 기존의 MVC를 변형시킨 MVP(Model-View-Presenter)를 학습합니다
주요 주제
iOS 개발자 채용공고에서 웬만하면 빠지지 않는 아키텍처 패턴인 MVVM(Model-View-ViewModel)을 학습합니다.
주요 주제
아래 내용들을 이해할 수 있게 됩니다
Q. Swift나 iOS 기초에 대한 내용들도 설명하나요?
설명하지 않습니다. 다른 책이나 강의로 기초를 학습하신 후 이 강의를 수강해주세요.
Q. 강의자는 어떤 아키텍처 패턴을 선호하나요?
특별히 선호하는 아키텍처 패턴은 없습니다. 독특한 점이 있다면 커뮤니티 등의 유행과 달리 MVC를 나쁘게 생각하지 않습니다. 오히려 MVVM처럼 유행하고 있지만 기존의 맥락과 다르게 변질된 구현 방법들에 비판적인 의견을 가지고 있습니다. Flux(Redux)는 MVC에 비해 개선점이 없으므로 자세히 다루지 않습니다(왜 개선점이 없다고 생각하는지 강의에서 다룹니다).
Q. 먼저 공부하고 오면 도움이 될 자료가 있을까요?
마틴 파울러의 『엔터프라이즈 애플리케이션 아키텍처 패턴』을 읽고 오시면 한층 이해하기 수월할 것이라 생각합니다.
학습 대상은
누구일까요?
MVC, MVP, MVVM의 개념을 정확하게 모르시는 분
iOS 개발자 취업 준비생
모바일 팀 프로젝트 리더
선수 지식,
필요할까요?
열린 마음
Swift와 iOS의 UIKit 환경에 대한 기초적인 이해