MVVM

    아키텍처 패턴에 대하여 (MVC, MVP, MVVM)

    1. 개요 아키텍처는 시스템을 구성하는 요소와 요소들 사이의 관계, 각 요소의 책임과 역할을 설정해서 소프트웨어를 구조화한 것을 의미하며, 소프트웨어의 뼈대(청사진) 역할을 한다. 아키텍처 패턴이란 소프트웨어의 아키텍처에서 발생하는 공통적인 문제들을 해결하기 위한 일반적이고 검증된 아키텍처를 형식화(패턴화)한 것을 의미한다. 디자인 패턴 vs 아키텍처 패턴 디자인 패턴은 소프트웨어 설계(디자인)에서 발생하는 공통적인 문제를 해결하기 위해 설계 방식을 형식화(패턴화) 한 것을 의미한다. 두 개념 모두 공통적이고 일반적인 문제에 대한 솔루션을 제공한다는 점에서 유사하다. 그러나 아키텍처 패턴은 추상적인(고수준, High-Level) 의미에서 구조와 뼈대를 다루지만 디자인 패턴은 코드 수준(비교적 저수준)의 ..

    [Sesac IOS] 43~44일차 TIL

    43~44일차 수업을 정리한 글입니다. Learned 반응형 프로그래밍 (Reactive Programming) 1) 개요 객체지향, 함수형 프로그래밍 같은 프로그래밍 패러다임 중 하나로서, 데이터의 흐름과 변경사항의 전파에 중점을 둔 선언적 프로그래밍 패러다임임. 한 예시로, 엑셀의 스프레드 시트에서 C=A+B, D=C+A라는 연산을 선언해두고 A 또는 B의 값이 변경되면 변경사항이 전파되어 C 의 값이 자동으로 변하고 그에 따라 D의 값도 변경되는 데이터의 흐름이 만들어짐. 이런 관점을 프로그래밍에 활용해 프로그램을 설계하는 것이 반응형 프로그래밍이고 이 반응형 프로그래밍과 어울리는 아키텍쳐 패턴이 MVVM임. 명령형 프로그래밍 vs 선언적 프로그래밍 명령형 프로그래밍은 시간 순서대로 작업을 처리할 ..

    [Sesac IOS] 42일차 TIL

    42일차 수업 내용을 공부한 글입니다. Learned MVC 1. 개요 Model-View-Controller로 이루어진 iOS의 대표적인 아키텍쳐 패턴으로서 일반적으로 하나의 앱 화면을 제어하는데 최소 하나의 MVC 패턴이 사용됨. 2. Model 데이터의 구조를 정의하는 영역으로 View(UI)와 상관없는 독립적인 영역임. Model 밖의 다른 영역과 의사소통은 Controller를 통해 전달되며 그 방식으로 Notification이나 Key-Value Observing(KVO)이 사용됨. Key-Value Observing 객체 프로퍼티의 변경사항을 다른 객체에 알리기 위해 사용하는 프로그래밍 패턴 3. View 화면에 보여지는 시각적인 UI를 담당하는 영역으로 UIView 객체가 이에 해당됨. C..