Heestory

기술 대비 ) MVC 패턴 본문

개발(~국비)/기술면접

기술 대비 ) MVC 패턴

까만밀가루 2022. 8. 18. 22:56

MVC 패턴

:클라이언트(사용자의 행위)가 필요한 기능을 Controller에 요청하면 Controller에 알맞은 Model에게 안내해주고 비즈니스 로직을 수행한 후, View를 찾고 결과에 맞는 데이터를 View에 전달하여 화면에 구성하도록 하는 패턴이다,

 

구성 요소

#.Model : 백그라운드에서 동작하는 로직을 처리한다. 데이터를 가진 객체, 파라미터로 주로 쓰인다. 

Controller가 호출할 때, 요청에 맞은 역할을 수행한다. 비즈니스 로직을 구현하는 영역에서 응용 프로그램에서 데이터를 처리하는 부분이다. 비즈니스 로직이란 업무에 필요한 데이터 처리를 수행하는 응용프로그램의 일부라고 할 수 있다. DB에 연결하고 데이터를 추출하거나 저장, 삭제, 업데이트, 변환 등의 작업을 수행한다. 상태가 변화가 있을 땐 컨트롤러와 뷰에 통보해 후속 조치 명력을 받을 수 있게 한다.

#.View:컨트롤러로부터 받은 모델의 결과값을 가지고 사용자에게 출력할 화면을 만드는 일을 한다. 만들어진 화면을 웹브러우저에 전송하여 웹브라우저가 출력하게 하는 것이다. 화면에 표시되는 부분으로 추출한 데이터나 일반적인 텍스트 테이터를 표시하거나 입력폼 또는 사용자와의 상호작용을 위한 인터페이스를 표시하는 방법이다.

#.Controller:사용자의 입력처리와 흐름 제어를 담당한다.

클라이언트 요청을 받았을 때, 그 요청에 대한 실제 업무를 수행하는 모델 컴포넌트를 호출한다. 클라이언트가 보낸 데이터가 있다면 모델에 전달하기 쉽게 데이터를 가공하고, 모델이 업무를 마치면 그 결과를 뷰에게 전달한다.

 

MVC의 모델은 Model1 , Model2로 구성된다.

Model1 : 비즈니스 로직 영역(Controller)에 뷰 영역을 같이 구현하는 방식이다.

사용자의 요청을 JSP(View)가 전부 다 처리한다. 요청 받은 JSP는 자바빈이나 서비스 클래스를 사용하여 웹 브라우저가 요청한 작업을 처리하고 그 결과를 출력한다.

-코딩을 매우 직관적으로 한 페이지에서 일어나는 내용이 하나의 소스코드 페이지에 모두 담겨있다.

-코딩은 매우 쉽지만 여러 중복코드가 반복되어 유지 보수가 어렵다

-html 태그와 <%%>안의 자바 코드의 혼용으로 인해 일명 스파게티 코드로 불리우는 읽기 껄끄러운 코드 가능성 있다.

-현재 백엔드, 프론트 엔드 구분이 어렵다

 

Model2:MVC패턴을 웹에 적용한 케이스

웹 브라우저 사용자의 요청을 서블릿이 받는다. 서블릿은 요청을 뷰로 보여줄지 모델로 보여줄지 정하여 전송하고 여기서 View페이지는 사용자에게 보여주는 역할만 담당하고 실질적인 기능 부분은 Model에서 담당한다.

비즈니스 로직과 출력 로직을 분리하여 개발 -> 뷰로직/데이터 처리 로직 분업 개발 가능->유지 보수 가능

서블릿을 통해 알맞은 JSP 페이지를 호출하여 특정 데이터를 넘겨 보낼 수 있는 구조

설계에서 어려움을 겪을 수 있고, 개발 난이도가 높다는 단점을 가지고 있다.

-코드의 재사용 / 확장성(추가적인 업데이트 부분이나 기능 확장에 대비하여 유연함 가능) / 요소에 집중 가능

 


https://wooaoe.tistory.com/15

 

[개발자 면접 대비] MVC 패턴 이란? (Model 1, Model 2)

MVC 패턴 파헤치기 https://coding-factory.tistory.com/69 참고 👩‍💻 MVC 패턴이란? MVC - Model, View, Controller의 합성어로 소프트웨어 공학에서 사용되는 소프트웨어 *디자인 패턴이다. *디자인 패턴이..

wooaoe.tistory.com