Thumbnail
개발 · 프로그래밍 모바일 앱 개발

아키텍처 패턴 with iOS - GUI Architecture Patterns(이론) 대시보드

(4.9)
17개의 수강평 ∙  144명의 수강생
99,000원

월 19,800원

5개월 할부 시
지식공유자: 배언수
총 35개 수업 (2시간 14분)
수강기한: 
12개월
수료증: 발급
난이도: 
입문
-
초급
-
중급이상
지식공유자 답변이 제공되는 강의입니다
폴더에 추가 공유

중급자를 위해 준비한
[모바일 앱 개발, 개발 · 프로그래밍] 강의입니다.

아키텍처 패턴들을 주관적 느낌이 아닌 저서들과 논문들에 기반해 학습합니다. iOS의 UIKit 환경에서 MVC, MVP, MVVM을 설명합니다.

✍️
이런 걸
배워요!
GUI 아키텍처 패턴들의 역사와 특징
iOS 환경에서의 GUI 아키텍처 패턴

iOS 개발자를 꿈꾼다면 필수!
GUI 아키텍처 패턴 ✨

GUI 아키텍처 패턴을 꽉! 📖

iOS 개발자 채용공고를 보면 반드시 빠지지 않는 필수요건이 있습니다. 바로 '다양한 아키텍처 패턴에 대한 이해나 경험'입니다. 하지만 아키텍처 패턴에 대해 한국어로 자세하게 설명해주는 책이나 글은 찾아볼 수 없습니다. 저도 비슷한 어려움을 겪으며 직접 영어나 일본어로 된 저서들과 논문들을 읽고 나서야 큰 흐름을 이해할 수 있었습니다.

본 강의에서는 아키텍처 패턴들의 역사와 주요 개념을 다룹니다. GUI 아키텍처인 MVC, MVP, MVVM 아키텍처를 중점적으로 다룹니다. 아키텍처 패턴은 유행이 자주 바뀌고, 못 따라갈까 봐 불안감이 드는 주제입니다. 그러한 불안감을 해소하는 유일한 방법은 기초를 탄탄히 세우는 것입니다. 제 강의가 그 초석이 되기를 바랍니다.

iOS는 다른 개발 환경에 비해 상당히 다양한 아키텍처 패턴들이 사용되고 있습니다. 하지만 다양한 아키텍처 패턴을 관통하는 키워드는 생각보다 단순하며 대부분은 기존 아키텍처의 작은 변형에 불과합니다. 어떤 종류의 패턴을 선택할지 헷갈릴수록 유행에 휩쓸리지 않고 본질에 집중하여 학습하는 것을 권장합니다.

📢 수강 전 확인해주세요!

  • 본 강의에서는 UIKit 기초 지식을 설명하지 않습니다. 아키텍처 패턴과 UIKit에서의 특정 아키텍처 패턴과 관련된 내용만 다룹니다.
  • 강의 내용을 정리하여 블로그 등 외부로 유출하는 것을 허용하지 않습니다.

이런 분들께 추천해요 🙋

아키택처 패턴을
학습하고 싶은 분

iOS 개발자 취업을
준비하는 취준생

iOS 프로젝트가 처음인
경력 개발자

iOS 프로젝트 경험은
있지만 아키텍처 패턴
지식이 부족한 분


강의 특징 ✨

#1.
여러 저서와
논문을 함께

특정 아키텍처 패턴은 해당 아키텍처 패턴이 탄생한 개발 환경을 제거한 추상적 형태로는 이해할 수 없습니다. 이 강의에서는 여러 저서와 논문들의 내용을 통해 각각의 아키텍처 패턴들이 해결하려 했던 문제가 무엇인지 파악하고 iOS에 적용이 가능한지 논의합니다.

#2.
거시적인
시각으로

이 강의는 커뮤니티의 유행과는 거리가 멉니다. MVC를 Massive Controller라고 일축하고 다른 아키텍처를 MVC에 비해 진보한 아키텍처로 바라보는 관점을 지양합니다. 마틴 파울러의 말처럼 아키텍처 패턴을 '무언가 중요한 이야기를 하고 있다는 인상을 주기 위해 활용하려는 목적'으로 사용하길 원한다면 이 강의와는 맞지 않습니다.

#3.
흔하지 않은
한국어 강의

아키텍처 패턴에 대해 한국어로 자세하게 설명해주는 책이나 글은 찾아볼 수 없습니다. 콘퍼런스 발표 자료들도 시간의 제약이나 커뮤니티 활동의 특성상 양질의 내용을 기대하기는 힘듭니다. 제가 경험한 어려움을 바탕으로 GUI 아키텍처 패턴의 역사와 주요 개념을 학습할 수 있도록 강의를 구성했습니다.


이런 걸 배워요 📚

섹션 1 - 아키텍처 패턴

아키텍처와 패턴 그리고 아키텍처 패턴이 무엇인지 각각 정의하면서 필요한 여러 개념들을 배웁니다.

주요 주제

  • 관심사의 분리
  • 아키텍처, 패턴, 아키텍처 패턴
  • PDS(Presentation Domain Separation)
  • GUI 아키텍처와 시스템 아키텍처

섹션 2 - MVC

GUI 아키텍처의 시조인 MVC(Model-View-Controller)를 학습합니다.

주요 주제

  • 1970년대의 UI 개발 환경
  • 유저의 멘탈 모델
  • 다양한 MVC의 형태들
  • MVC에 대한 비판

섹션 3 - MVP

개발환경의 변화에 따라 기존의 MVC를 변형시킨 MVP(Model-View-Presenter)를 학습합니다

주요 주제

  • 개발환경의 변화
  • Taligent
  • Flow Synchronization과 Observer Synchronization
  • Supervising Controller
  • Passive View

섹션 4 - MVVM

iOS 개발자 채용공고에서 웬만하면 빠지지 않는 아키텍처 패턴인 MVVM(Model-View-ViewModel)을 학습합니다.

주요 주제

  • 프레젠테이션 모델과 WPF의 MVVM
  • iOS의 MVVM
  • RxCocoa와 데이터 바인딩
  • MVVM 템플릿



강의를 들은 후 수강생의 변화 📜

아래 내용들을 이해할 수 있게 됩니다

  • Separation of Concerns
  • PDS(Presentation Domain Separation)
  • Smalltalk MVC
  • Input Controller
  • Application Controller
  • JSP Model 2
  • Cocoa MVC
  • Flux
  • Presentation Model(Application Model)
  • Taligent MVP
  • Supervising Controller
  • Passive View
  • WPF의 MVVM
  • iOS의 MVVM

예상 질문 Q&A 💬

Q. Swift나 iOS 기초에 대한 내용들도 설명하나요?

설명하지 않습니다. 다른 책이나 강의로 기초를 학습하신 후 이 강의를 수강해주세요.

Q. 강의자는 어떤 아키텍처 패턴을 선호하나요?

특별히 선호하는 아키텍처 패턴은 없습니다. 독특한 점이 있다면 커뮤니티 등의 유행과 달리 MVC를 나쁘게 생각하지 않습니다. 오히려 MVVM처럼 유행하고 있지만 기존의 맥락과 다르게 변질된 구현 방법들에 비판적인 의견을 가지고 있습니다. Flux(Redux)는 MVC에 비해 개선점이 없으므로 자세히 다루지 않습니다(왜 개선점이 없다고 생각하는지 강의에서 다룹니다).

Q. 먼저 공부하고 오면 도움이 될 자료가 있을까요?

마틴 파울러의 『엔터프라이즈 애플리케이션 아키텍처 패턴』을 읽고 오시면 한층 이해하기 수월할 것이라 생각합니다.


이런 분들께 추천드려요!

🎓
학습 대상은
누구일까요?
MVC, MVP, MVVM의 개념을 정확하게 모르시는 분
iOS 개발자 취업 준비생
모바일 팀 프로젝트 리더
📚
선수 지식,
필요할까요?
열린 마음
Swift와 iOS의 UIKit 환경에 대한 기초적인 이해

안녕하세요
배언수 입니다.
배언수의 썸네일

프로그래머

문의: eonsu.work@gmail.com

공동 지식공유자: 원밀리언라인즈코딩의 썸네일
커리큘럼 총 35 개 ˙ 2시간 14분의 수업
이 강의는 영상이 제공됩니다. 미리보기를 통해 콘텐츠를 확인해보세요.
섹션 0. 강의 소개
섹션 1. 아키텍처 패턴이란
아키텍처 - 관심사의 분리와 아키텍처 04:00
패턴 - 크리스토퍼 알렉산더 『영원의 건축(The Timeless Way of Building)』, 『패턴 랭귀지(A Pattern Language)』 03:26
아키텍처 패턴 06:15
섹션 2. MVC
Smalltalk MVC (1) - 1970년대의 UI 개발 01:04
Smalltalk MVC (2) - MVC의 본질 02:21
Smalltalk MVC (3) - 구성 02:56
A Variety of MVC (1) - 저게 MVC라고? 02:24
A Variety of MVC (2) - JSP Model 2 01:39
A Variety of MVC (3) - Cocoa MVC(Passive View) 01:14
A Variety of MVC (4) - Presentation Model(Application Model) 08:31
A Variety of MVC (5) - 도식적, 진보적 사고관에서 벗어나기 미리보기 02:07
Massive ViewController? 02:11
You don't know MVC (1) - Massive ViewController라는 쉬운 비판 07:21
You don't know MVC (2) - Flux(단일방향 데이터 플로우?) 07:44
섹션 3. MVP
세 가지 형태의 MVP 02:15
Taligent MVP - MVC를 일반화, 세분화 하기 01:43
Taligent MVP - 원대한 목표, 그러나 02:58
Supervising Controller - Twisting the Triad 03:27
Supervising Controller - 특징 정리 01:52
두 가지 동기화 방법 - Flow Synchronization, Observer Synchronization 03:27
Passive View - 옵저버 동기화를 포기한 뷰 01:24
Passive View - 보다 테스터블한 코드를 향해 05:28
Supervising Controller vs Passive View 04:40
Passive View - Template 02:18
섹션 4. MVVM
프레젠테이션 모델 패턴 복습 02:49
WPF의 MVVM - 디자이너와 개발자의 병행개발 05:44
iOS의 MVVM - 달라지는 맥락 07:09
iOS의 데이터 바인딩 02:57
RxCocoa Internals 08:30
중간 정리 - 데이터 바인딩 엔진이 없는 환경에서의 MVVM 01:27
MVVM 템플릿 1 05:43
MVVM 템플릿 2 05:21
MVVM 템플릿 3 03:04
최종 정리 - 특정 라이브러리의 영향력이 개발환경의 특징을 잠식한 사례 05:13
강의 게시일 : 2023년 01월 06일 (마지막 업데이트일 : 2023년 01월 06일)
수강평 총 17개
수강생분들이 직접 작성하신 수강평입니다.
4.9
17개의 수강평
5점
4점
3점
2점
1점
VIEW 추천 순 최신 순 높은 평점 순 낮은 평점 순 평점 순 높은 평점 순 낮은 평점 순
dev.ms thumbnail
5
저 같은 미들레벨 개발자가 아키텍처의 처음 시작부터 전체적인 그림을 그릴 수 있게 도와주는 강의입니다. 1970년대로 거슬러 올라가 아키텍처라는 개념을 만든 사람들의 논리를 소개하는 꼼꼼한 강의 구성에 놀랐습니다. 논문과 마틴 파울러의 주장을 기반으로 핵심 내용을 잘 정리해서 설명해주기 때문에 실무에서 개발을 몇년 하신 분들에게는 그동안의 경험을 정리하는 데 도움되는 강의입니다. 중급 레벨 이상으로 실력을 향상시키는데 도움되는 강의라고 생각하고, 강의 준비에 정말 많은 시간을 들이신 것이 느껴지는 강의입니다. 이런 강의를 만들어주신 강의자분에게 감사드립니다.
2023-01-08
닷넷나무 thumbnail
5
iOS Application Architect로 가기 위한 교양으로 꼭 봐야할 강의입니다. 용어 정리가 잘되어 있고, MVx의 발전이 어떻게 이뤄졌는지를 알 수 있습니다. 그리고 그 동안 몇몇 패턴들에 대한 잘못된 관점 또한 수정해주는 소중한 강의입니다. 아마 소개하지 못한 내용이 더 있을텐데 다음번 강의도 기대하겠습니다. 좋은 강의 만들어주셔서 감사합니다.
2023-01-09
GDSC_hy thumbnail
5
취업준비를 하면서 채용공고에 항상 아키텍처라는 단어가 나와서 궁금하던 내용이었는데 강의를 통해 많이 배웠습니다. 어떤 기술 블로그에도 명확한 설명이 없어서 막막하던 학생인데 많이 도움 받았습니다! 강의 끝날 때마다 보여주시는 참고 서적?논문? 목록을 보면 수십권에 해당하는 내용을 강의로 만드신 것 같은데요, 어려운 내용을 떠먹여주는 취준생 필수 강좌입니다!
2023-01-14
진영 thumbnail
5
아키텍처에 관해 "대답"이 아닌 "대화"를 할 수 있게 해주는 유일한 강의였습니다.
2024-01-08
hando han thumbnail
5
대부분의 내용은 iOS 에 한정되어 있지 않고, 웹, 안드로이드 등의 모든 일반적인 UI 개발 패턴을 이야기하고 있기 때문에 모든 분야의 개발자에 필요한 강의입니다. 패턴의 역사적인 발전 과정을 통해 설명하고 있어 이해하기 쉽습니다. 어느 하나가 절대적으로 맞다가 아닌 개발환경에 맞게 선택하는 실전 방법도 소개하고 있습니다. 주니어 개발자가 아니더라도 기존의 개념을 정확히 정립하는데 도움을 줄수 있는 강의입니다.
2023-02-03