---
# System prepended metadata

title: Untitled

---

### SW Architecture와 SW Design Pattern의 개념은 어디서부터 출발했을까요?
- 경제성 측면에서 보다 좋고, 빠르게 프로그램을 개발하기 위해
- 반복적으로 발생하는 사례들을 분석하여 가장 적합한 설계를 일반화 시키기 위해

#### 두 개념은 왜 필요할까요?

- 아키텍처
    - 프로그램을 개발할때 첫 시작이 설계도를 작성하는거고 그게 아키텍처라고 생각합니다.
    - 프로그램을 만들고 나서 아키텍처를 변경할때 많은 비용과 시간이 들기 때문에 설계도를 잘 작성하는 것이 중요합니다.

- 디자인 패턴
- 
    - OOP의 다양한 문제상황에 대한 예방
    - 프로그래머 사이의 협업효율 향상
    - 프로그래머 사이의 의사소통 증진
    - 코드의 안정화 및 최적화
    - 코드의 재사용성 증가

#### 두 개념의 차이점은 무엇일까요?
- 아키텍처
    - 소프트웨어를 구성하는 구성요소(모듈 / 컴포넌트 등) 간의 관계를 관리하는 시스템의 구조, 설계도

- 디자인패턴
    - 특정 유형의 문제를 기록하고, 해결하기 위한 하나의 패턴


### 애플이 이야기하는 MVC 구조는 (무엇)을 구분짓는 용도이며 (왜) 그것을 구분지을 필요가 있을까요?

- MVC는 역할을 구분짓는 용도, 한 객체가 너무 많은 역할을 가지면 효율성 및 가독성이 감소하므로 
- 코드의 안정화 및 최적화, 재사용성을 증가시켜 확장성을 넓히기 위해서 필요

#### 애플에서 사용하고 있는 사례를 찾아주세요

- import UIKit
- UItableView : Model은 구조체나 클래스등으로 정의(데이터), UItableViewCell, UIViewController
![](https://i.imgur.com/YQEAagN.png)
