MVC의 본질에 대한 질문
안녕하세요! MVC의 본질에 대한 강의를 듣다가 문득 궁금증이 생겨서 글을 남깁니다.
강의자님께서 유저의 멘탈모델과 컴퓨터 모델을 일치시키는 것이 MVC의 본질이라고 하셨습니다. 또한, 유저의 멘탈모델이라는 것이 사용자가 애플리케이션을 사용하면서 "내부적으로 이렇게 되있을 것이다." 라고 생각하는 것이라고 설명해주셨습니다.
첫 번째 궁금증은 유저의 멘탈모델과 컴퓨터 모델을 일치시킨다는 것은 곧 '유저가 애플리케이션의 인터페이스만 봐도 어떤 일이 발생할지, 어떻게 동작될지 대충 예상이 될 정도로 애플리케이션을 유저 친화적으로 만든다'라고 해석해도 될까요?
두 번째 궁금증은 만약, 위의 저의 해석이 맞다면, "프레젠테이션 계층과 유저의 멘탈모델, 즉 내부 구현 계층이 분리되면 유저 친화적인 애플리케이션을 개발할 수 있다."로 귀결될 수 있는데, 사실 프레젠테이션 계층과 모델 계층의 분리는 어디까지나 개발자를 위한 분리인 줄 알았는데, 사용자를 위한 분리였다는 의미로 해석되어 상당히 혼란스럽니다...
좋은 강의 제공해주셔서 감사합니다! 좋은 답변 기대할께요~
답변 1
0
안녕하세요, 진영님.
MVC의 본질을 이해하는 것이 도움이 되는 이유는 유저친화적인 애플리케이션을 만들 수 있기 때문이라기 보다는 같은 MVC라는 이름을 가지고 있다고 하더라도, 입력을 받는 것이 뷰인 환경도 있는가 하면 컨트롤러인 환경도 있고, 컨트롤러가 중재자 역할을 하는 환경도 있고, 뷰를 위한 별도의 모델이 존재하거나 전략 패턴, 컴포지트 패턴, 커맨드 패턴, 옵저버 패턴 등 다양한 디자인 패턴을 사용하는 등 수많은 형태의 MVC가 있기 때문입니다.
그럼 이렇게 다양한 형태의 MVC가 존재한다면 자연스럽게 '도대체 MVC라는게 무엇이냐. 이것이 MVC다라고 한마디로 정의내릴 수 있는 것이 있기는 한 것이냐'라는 물음이 생겨날 수 있고 여기에 대한 답이 될 수 있는 것이 모델 계층을 바라보는 시각이 될 수 있는 것입니다. 과거에는 모델이 뷰나 컨트롤러 같은 프레젠테이션 계층과 분리되지 않은 개발환경도 있었는데, 그런 개발방식을 잘못된 분리라고 생각했기 때문에 모델을 프레젠테이션 계층으로부터 분리시키는 것이 중요하다고 생각했고, 개발환경마다 상황에 따른 지엽적인 차이는 있을 수 있지만 이런 원칙을 지킨다면 MVC라고 할 수 있다라는 것을 강조하는 의미로 받아들이시면 되겠습니다.
2
어떤 하나의 원리로 모든 내용을 꿰뚫으려는 시도보다는 계층의 분리 또한 MVC의 한 측면인 것이고 개발환경마다 나타나는 각 컴포넌트들의 역할과 함께 포괄적으로 이해하시는게 좋습니다.
순위가 동률일 때의 처리에 대해 질문드립니다.
0
24
2
Singleton 관련 질문입니다.
1
35
2
servlet과 container에 대한 질문입니다
0
25
1
라우팅 테이블 설정 중 궁금한게 있습니다.
0
34
1
RepositoryTest의 패키지 위치가 domain인 이유
0
30
2
user-service jwt
0
32
2
애그리거트 질문있습니다!
0
32
2
spring initialiser 어떤걸 선택해야될지 모르겠어요
0
32
2
Redlock 알고리즘 관해 궁금한게 있습니다!
0
48
2
좋아요/조회수 카운팅 병목현상에 대해서 궁금한점이 있습니다.
0
36
2
수강 기간 연장 문의
0
29
1
Agent Builder 서비스가 보이지 않아요
0
29
1
이미지 업로드와 db 트랜잭션 묶는법
0
42
1
수강연장부탁드려도될까요..
0
42
2
Combine Playground 에서 실행 시
0
59
2
Could not resolve org.springframework.boot:spring-boot-starter-validation:2.4.4
0
52
2
REQUIRES_NEW 해결 방법에 대해서 질문있습니다!!
0
30
1
..
0
76
2
MVVM in iOS - 리액티브 프로그래밍, 자동바인딩과 수동바인딩에서 질문이있습니다
0
302
1
MVVM 템플릿2 관련
0
468
1
강의자료같은게 따로 있나요 ??
0
477
1
제가 이해한게 맞는지 궁금합니다.
0
744
1
질문 드려요!
0
499
2
질문 올립니다
0
500
1





