MVC에 대해 정리해 보았습니다.
개요
MVC의 이해가 희미하게 생겨난 것 같아서,
이미지하기 쉽도록 정리해 보았습니다.
MVC는 무엇입니까?
IBOutlet에서 버튼 등의 UI 파트를 연결하거나 버튼을 탭했을 때의 처리,
API 통신 등의 다양한 처리를 모두 ViewController에 쓰면, ViewController에 방대한 행수의 코드가 쓰게 되어 버려, 코드를 쫓거나 수정하거나 하는 등이 어려워져 버립니다. 흔히 말하는 Fat ViewController입니다.
이러한 문제를 해결하려면 책임을 분리하는 작업을 수행해야 합니다. 다양한 아키텍처가 존재합니다. 이번에는 그런 아키텍처 중에서 MVC에 초점을 맞추고 해설해 보겠습니다.
현재 자주 사용되는 MVC 패턴은 cocoa MVC라고 합니다.
MVC란,
Model의 M, View의 V, Controller의 C를 맞추어 MVC라고 합니다.
Model의 역할
Model의 역할로서,
· 데이터 구조 표현
· WebAPI와의 상호 작용
· 로컬 데이터베이스와 같은 데이터 지속성
· 데이터 동작에 관한 논리
를 들 수 있습니다.
View 역할
View의 역할은
· UI 표시
· 컨트롤러에서 데이터를 받아 UI에 반영
· 사용자의 조작을 (IBAction, IBOutlet 등에 의해) 인식하고,
입니다. 즉, 앱에서 버튼을 누르거나 textField를 탭하여 문자를 입력하는 등의 작업을 수행하면,
View에 알립니다.
실제로 앱 개발을 할 때는 커스텀 View를 작성해, View로 하는 경우가 많습니다.
컨트롤러 역할
Controller의 역할은
· Model에서 데이터를 받고 View로 전달하여 데이터를 업데이트합니다.
· 사용자 상호 작용을 View에서 받고 적절한 조치를 취합니다.
・라이프사이클 처리나 화면 천이 등의 처리를 실시한다
입니다. cocoa MVC에서는 Viewcontroller가 Controller입니다.
도움이 된 설명
· Model과 View는 서로를 모른다.
・Model의 역할은, view와 Controller가 하지 않는 것 전부라고 생각해도 좋다
· 커스텀 View를 포함한 View는 사용자 조작을 Controller에 전달하고 Controller의 요구에 따라
정보만 표시하는 "바보 같은"존재여야 한다.
요약
이상의 설명을 그림으로 하면 다음과 같이 됩니다.
① 유저가 View 상의 UI 파트를 조작
② 그 통지를 바탕으로 Controller가 Model을 갱신
③Model이 Controller에 통지
④Model로부터 통지를 Controller가 받은 것으로, View의 UI를 갱신
같은 흐름입니다.
자신도 배웠기 때문에, 불명점이나 잘못된 점이 있으면 가르쳐 주셨으면 합니다.
샘플 코드 등은 추후 갱신 예정입니다.
끝까지 읽어 주셔서 감사합니다!
참고 기사
Reference
이 문제에 관하여(MVC에 대해 정리해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kazuma___/items/080dced61370f0b55f87
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
IBOutlet에서 버튼 등의 UI 파트를 연결하거나 버튼을 탭했을 때의 처리,
API 통신 등의 다양한 처리를 모두 ViewController에 쓰면, ViewController에 방대한 행수의 코드가 쓰게 되어 버려, 코드를 쫓거나 수정하거나 하는 등이 어려워져 버립니다. 흔히 말하는 Fat ViewController입니다.
이러한 문제를 해결하려면 책임을 분리하는 작업을 수행해야 합니다. 다양한 아키텍처가 존재합니다. 이번에는 그런 아키텍처 중에서 MVC에 초점을 맞추고 해설해 보겠습니다.
현재 자주 사용되는 MVC 패턴은 cocoa MVC라고 합니다.
MVC란,
Model의 M, View의 V, Controller의 C를 맞추어 MVC라고 합니다.
Model의 역할
Model의 역할로서,
· 데이터 구조 표현
· WebAPI와의 상호 작용
· 로컬 데이터베이스와 같은 데이터 지속성
· 데이터 동작에 관한 논리
를 들 수 있습니다.
View 역할
View의 역할은
· UI 표시
· 컨트롤러에서 데이터를 받아 UI에 반영
· 사용자의 조작을 (IBAction, IBOutlet 등에 의해) 인식하고,
입니다. 즉, 앱에서 버튼을 누르거나 textField를 탭하여 문자를 입력하는 등의 작업을 수행하면,
View에 알립니다.
실제로 앱 개발을 할 때는 커스텀 View를 작성해, View로 하는 경우가 많습니다.
컨트롤러 역할
Controller의 역할은
· Model에서 데이터를 받고 View로 전달하여 데이터를 업데이트합니다.
· 사용자 상호 작용을 View에서 받고 적절한 조치를 취합니다.
・라이프사이클 처리나 화면 천이 등의 처리를 실시한다
입니다. cocoa MVC에서는 Viewcontroller가 Controller입니다.
도움이 된 설명
· Model과 View는 서로를 모른다.
・Model의 역할은, view와 Controller가 하지 않는 것 전부라고 생각해도 좋다
· 커스텀 View를 포함한 View는 사용자 조작을 Controller에 전달하고 Controller의 요구에 따라
정보만 표시하는 "바보 같은"존재여야 한다.
요약
이상의 설명을 그림으로 하면 다음과 같이 됩니다.
① 유저가 View 상의 UI 파트를 조작
② 그 통지를 바탕으로 Controller가 Model을 갱신
③Model이 Controller에 통지
④Model로부터 통지를 Controller가 받은 것으로, View의 UI를 갱신
같은 흐름입니다.
자신도 배웠기 때문에, 불명점이나 잘못된 점이 있으면 가르쳐 주셨으면 합니다.
샘플 코드 등은 추후 갱신 예정입니다.
끝까지 읽어 주셔서 감사합니다!
참고 기사
Reference
이 문제에 관하여(MVC에 대해 정리해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kazuma___/items/080dced61370f0b55f87
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
View의 역할은
· UI 표시
· 컨트롤러에서 데이터를 받아 UI에 반영
· 사용자의 조작을 (IBAction, IBOutlet 등에 의해) 인식하고,
입니다. 즉, 앱에서 버튼을 누르거나 textField를 탭하여 문자를 입력하는 등의 작업을 수행하면,
View에 알립니다.
실제로 앱 개발을 할 때는 커스텀 View를 작성해, View로 하는 경우가 많습니다.
컨트롤러 역할
Controller의 역할은
· Model에서 데이터를 받고 View로 전달하여 데이터를 업데이트합니다.
· 사용자 상호 작용을 View에서 받고 적절한 조치를 취합니다.
・라이프사이클 처리나 화면 천이 등의 처리를 실시한다
입니다. cocoa MVC에서는 Viewcontroller가 Controller입니다.
도움이 된 설명
· Model과 View는 서로를 모른다.
・Model의 역할은, view와 Controller가 하지 않는 것 전부라고 생각해도 좋다
· 커스텀 View를 포함한 View는 사용자 조작을 Controller에 전달하고 Controller의 요구에 따라
정보만 표시하는 "바보 같은"존재여야 한다.
요약
이상의 설명을 그림으로 하면 다음과 같이 됩니다.
① 유저가 View 상의 UI 파트를 조작
② 그 통지를 바탕으로 Controller가 Model을 갱신
③Model이 Controller에 통지
④Model로부터 통지를 Controller가 받은 것으로, View의 UI를 갱신
같은 흐름입니다.
자신도 배웠기 때문에, 불명점이나 잘못된 점이 있으면 가르쳐 주셨으면 합니다.
샘플 코드 등은 추후 갱신 예정입니다.
끝까지 읽어 주셔서 감사합니다!
참고 기사
Reference
이 문제에 관하여(MVC에 대해 정리해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kazuma___/items/080dced61370f0b55f87
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
· Model과 View는 서로를 모른다.
・Model의 역할은, view와 Controller가 하지 않는 것 전부라고 생각해도 좋다
· 커스텀 View를 포함한 View는 사용자 조작을 Controller에 전달하고 Controller의 요구에 따라
정보만 표시하는 "바보 같은"존재여야 한다.
요약
이상의 설명을 그림으로 하면 다음과 같이 됩니다.
① 유저가 View 상의 UI 파트를 조작
② 그 통지를 바탕으로 Controller가 Model을 갱신
③Model이 Controller에 통지
④Model로부터 통지를 Controller가 받은 것으로, View의 UI를 갱신
같은 흐름입니다.
자신도 배웠기 때문에, 불명점이나 잘못된 점이 있으면 가르쳐 주셨으면 합니다.
샘플 코드 등은 추후 갱신 예정입니다.
끝까지 읽어 주셔서 감사합니다!
참고 기사
Reference
이 문제에 관하여(MVC에 대해 정리해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kazuma___/items/080dced61370f0b55f87
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(MVC에 대해 정리해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kazuma___/items/080dced61370f0b55f87텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)