2024. 4. 1. 19:04ㆍ공부
1. 디자인 패턴이란?
2. MVC 패턴
1. 디자인 패턴이란?
처음엔 '디자인'패턴이란 용어를 듣고 프로그래밍과 무관한 개념이라고 생각했는데 공부를 하다보니 소프트웨어의 구조를 설계하는 과정을 디자인이라고 정의하고 있었다.
디자인 패턴의 의미 또한 '소프트웨어를 디자인하는 과정에서 자주 발생하는 문제들에 대한 전형적이 해결책'으로 이해를 돕기 위한 대표적인 예시로는 알고리즘과 디자인 패턴을 요리법과 청사진에 비유한 예시가 있다.
알고리즘과 요리법은 둘 다 목표를 달성하기 위한 명확한 단계들이 제시되어 있는 반면,
디자인패턴과 청사진은 결과와 기능들은 제시하나 구현 단계 및 순서는 사용자가 결정하게 된다.
사실 이러한 정의만 가지고는 디자인패턴이 대체 뭔지 감이 잘 오지 않을것이다. 앞으로 자주 쓰이는 디자인 패턴들이 어떤 것들이 있는지, 내 개발 경험이나 보았던 것들을 바탕으로 예시도 들어 볼 예정이다.
2. MVC 패턴
Model, View, Controller의 약자로 간단하게 설명하면 아래와 같다.
Model: 주고받을 수 있는 객체(데이터)
View: 출력하는 부분
Controller: 처리하는 부분
MVC패턴에는 몇가지 규칙이 있는데 지금부턴 M, V, C 각각의 규칙을 알아보자
[Model 규칙]
1. 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다.
- 화면안의 네모박스에 글자가 표현된다면, 네모 박스의 화면 위치 정보, 크기 정보, 글자 내용과 위치 및 포맷 등
2. 뷰나 컨트롤러에 대해서 어떤 정보도 알지 말아야한다.(Controller와 View에 의존하지 않아야 함)
- 데이터 변경이 일어났을 때 모델에서 화면 UI를 직접 조정해서 수정할 수 있도록 뷰를 참조하는 내부 속성값을 가지면 안된다.
3. 변경이 일어나면, 변경 통지에 대한 처리방법을 구현해야만 한다.
- 모델의 속성 중 텍스트 정보가 변경이 된다면, 이벤트를 발생시켜 누군가에게 전달해야 하며, 누군가 모델을 변경하도록 요청하는 이벤트를 보냈을 때 이를 수신할 수 있는 처리 방법을 구현해야 한다.
- 모델은 재사용이 가능해야하며 다른 인터페이스에서도 변하지 않아야한다.
[View 규칙]
1. 모델이 가지고 있는 정보를 따로 저장해서는 안된다.
- 화면에 글자를 표시하기 위해, 모델이 가지고 있는 정보를 전달받는데 그 정보를 유지하기 위해 임의의 뷰 내부에 저장하면 안된다. 단순히 네모 박스를 그리라는 명령을 받으면, 화면에 표시하기만 하고 그 화면에 그릴 때 필요한 정보들은 저장하지 않아야 한다.
2. 모델이나 컨트롤러와 같이 다른 구성요소들을 몰라야한다.
- 모델과 같은 자기 자신 빼고는 다른 요소는 참조하거나 어떻게 동작하는지 알아서는 안된다. 뷰는 데이터를 받으면 화면에 표시해주는 역할만 가진다.
3. 변경이 일어나면 변경 통지에 대한 처리방법을 구현해야한다.
- 모델과 같이 변경이 일어났을 때 다른 누군가에게 변경을 알려줘야하는 방법을 구현해야한다. 뷰에서는 화면에서 사용자가 화면에 표시된 내용을 변경하게 되면 이를 모델에게 전달해서 모델을 변경해야한다.
'공부' 카테고리의 다른 글
[프로그래머스/C#/Lv. 0] 두 수의 연산값 비교하기 (0) | 2024.07.11 |
---|---|
[프로그래머스/C#/Lv. 0] 더 크게 합치기 (0) | 2024.07.11 |
[프로그래머스/C#/Lv. 0] 문자열 겹쳐쓰기 (1) | 2024.07.10 |
Unity UI: Ripple Effect (0) | 2024.05.21 |
[특강] 강력한 TIL 작성하는 법 (0) | 2023.09.12 |