MVC는 매우 간단합니다.
Martin Fowler는 아마도 이것에 동의하지 않을 것입니다 :
다른 장소에서 MVC에 대해 읽는 다른 사람들은 다른 아이디어를 취하여이를 'MVC'라고 설명합니다.
계속 ...
웹 사이트를 만들 때 '클라이언트가 REST 키워드 요청을 서버에 전송합니다-> 서버가 요청한 URL을 컨트롤러 작업에 일치시킵니다-> 데이터 수집 / 처리를 위해 모델을 호출하여 결과를 얻습니다. -> 결과를 HTML 페이지 (보기)로 클라이언트에 다시 반환합니다. '
좋아, 이것은 약간 엉킴
MVC는 사용자 인터페이스를 구현하기위한 아이디어 모음입니다.
REST는 대규모 애플리케이션을 구축하기위한 아키텍처 제약 조건의 모음입니다.
여기서 말하는 웹은 동일한 제약 조건을 대부분 사용하여 구축 된 거대한 문서 관리 응용 프로그램입니다.
둘 사이에 나타나는 유사점은 잘못 선택되었거나 피상적입니다.
RESTafarians는 공통의 이해가 HATEOAS "응용 프로그램 상태의 엔진으로 하이퍼 텍스트"를, 그리고 알람 당신이 머리를 울리는 보내야합니다 - 왜 것 보기 의 엔진이 될 상태 ? 전제에 의문을 제기하고 추가 증거를 찾으면 두 가지 이상한 점을 발견 할 수도 있습니다.
먼저, 디스크에서 HTML을로드하여 HTTP 서버를 완전히 배제 할 수 있습니다. 브라우저는 이것으로 완벽하게 만족하며 기본 URL의 변경으로 인해 발생할 수있는 사소한 변형을 제외합니다. 모델과 컨트롤러에서 완전히 분리 된 뷰는 일반적으로 계속 작동하지 않습니다.
둘째, 최신 브라우저를주의 깊게 관찰하면 HTML에 대한 여러 뷰가 있음을 알 수 있습니다. 뷰에 대한 여러 뷰는 정말 이상한 생각처럼 보이지만 사용자 제스처에 응답하는 텍스트 마크 업이 포함 된 메인 프레젠테이션이 충분하다는 사실이 확실합니다. 그런 다음 "원본 뷰"항목이 생 HTML을 표시하고 응답합니다. 사용자 제스처. 거북은 끝이야!
물론 수수께끼에 대한 대답은 HTML이 시야가 아니라는 것입니다. 브라우저에서 위젯 콜렉션은보기이며 HTML을 읽음으로써 초기화 된 문서 오브젝트 모델 과 통신 합니다.
다시 말해, HTML은 Roy T. Fielding이 약속 한 것처럼 상태를 나타냅니다 .
순수한 RESTful API 웹 서비스에 대해 이야기하고 있다면 어떨까요? 이전과 동일하지만 '보기'가 없습니다.
더 정확하게는 이전과 동일합니다.보기가 없습니다. HTML과 마찬가지로 JSON도 프로세스 경계를 넘나 드는 데 적합한 상태를 나타냅니다.
"DTO"또는 "메시지"를 생각하면 추론을 당할 가능성이 훨씬 줄어 듭니다.