일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- stopPropagation
- eventbubbling
- hig
- 이벤트캡처링
- 연결리스트삽입
- 수강료0원챌린지
- 환급챌린지
- eventcapturing
- MVMM
- 코딩테스트
- ios
- 패캠챌린지
- 패스트캠퍼스후기
- 자료구조
- 직장인자기계발
- JavaScript
- 스위프트
- 직장인인강
- 실패율
- 연결리스트삭제
- Components
- swift
- HTML
- 사이드프로젝트10개기술스택으로구현하는풀스택서버리스프로젝트withReact
- 연결리스트생성
- 오공완
- 프로그래머스
- 패캠인강후기
- 패스트캠퍼스
- 이벤트버블링
- Today
- Total
날쌘 개발자
MVC 에 대해 본문
MVC
여태 공부를 하며 MVC에 대한 개념도 많이 들었고, 실제로 (강의를따라서) 여러번 구현해 보았지만,
여전히 개념이 모호하고, 감이 안잡히는 부분이 많아 한번 기초부터 정리해보겠다.
먼저 MVC는 ios개발에 사용되는 아키텍처중의 하나인데
여기서 Architectures란 프로그램의 구조? 라고 보면 될 것 같다.
아키텍처를 사용하는 이유는 여러가지가 있지만 그중 균형잡인 분배에 최적화된 패턴 중 하나가 MVC 패턴이다.
사실 아키텍처와 디자인 패턴의 관계에 대해 의구심이 들지만, 조만간 알아보기로 했다.
아무튼 MVC는 Model, View, Controller를 줄인 말인데, 하나하나 정의를 보자면 다음과 같다.
- Model - 앱에서 '무엇' 에 해당하는 UI, 독립적인 개체들
즉 앱이 가지는 데이터를 정의하는 부분.
예를들어 퀴즈앱을 만든다면, 질문 텍스트와 그에 해당하는 답을 모델에서 정의하는 것이다. - View - UI요소들. 사용자에게 보여줄 화면.
- Controller - 그게 '어떻게' 화면에 나타나는지
여기서 중요한 부분은 모델, 뷰, 컨트롤러의 관계이다.
먼저 모델과 뷰는, 서로에 대해 전혀 알지못하고 간섭할 수 없다.
컨트롤러는 뷰에서 이벤트를 받아 이에 맞는 데이터를 모델에 요청한다. 둘 사이에서 중재하는 역할이라고 보면 될 것 같다.
컨트롤러는 뷰와 모델에 직접 접근할 수 있고.
뷰가 컨트롤러에 접근할때는 delegate, data source를 통해,
모델이 컨트롤러에 접근할때는 Notification & KVO 를 통해 접근한다.
MVC패턴을 사용하는 이유는 아키텍처를 사용하는 이유와 유사하지만 이렇다.
- 서로 역할을 나누어서 구현하기 때문에 가독성이 좋고,.
- 당연히 접근이 쉬워 유지보수가 용이해진다.
- 의존성을 감소시켜 테스트가 가능해진다.
MVC에 대한 개념은 확실히 알게되었지만, 막상 실전에서 사용하려면 경험이 쌓여야 익숙해질 것 같다.
+MVC패턴과 같이 ios에서 자주 사용하는 아키텍처인 MVVM도 해보아야겠다... MVC의 단점을 보완한 형태라고 들었다.
'ios > 기본문법' 카테고리의 다른 글
Property - (1) (0) | 2022.04.17 |
---|---|
Protocols - (1) (0) | 2022.04.07 |
components / split (0) | 2022.04.01 |
소문자 대문자 (0) | 2022.04.01 |
고차함수 (0) | 2022.03.01 |