tmxklab

[web] MVC 패턴 본문

Web/Concept

[web] MVC 패턴

tmxk4221 2020. 10. 28. 18:23

1. MVC 패턴

MVC는 Model, View, Controller의 약자로 비즈니스 로직과 사용자 뷰(인터페이스) 영역을 분리하기 위한 소프트웨어 개발 방법론이다. 이렇게 영역을 분리함으로써 유지보수를 높이고 각각의 영역마다 개발자들이 맡아 집중할 수 있도록 하여 개발의 효율성을 극대화시킬 수 있다.

 

프로젝트를 구성할 때 다음과 같이 3가지 형태로 나누어 개발하는 패턴.

 

Model

  • 내부 비지니스 로직을 처리하기 위한 역할
  • 알고리즘, DB와 상호작용, 데이터 처리 등등
  • Java로 구현

Controller

  • 사용자의 입력 처리와 흐름 제어를 하는 역할
  • 사용자로부터의 입력을 받고 Model 또는 View의 중개인
  • JSP, 서블릿 등 Server Side 언어로 구현

View

  • 클라이언트와 서버 간의 인터페이스 역할
  • 클라이언트로부터 요청받거나 처리된 결과를 보여주는 기능
  • HTML, CSS, JavaScript 등 Client Side 언어로 구현

2. Model Ⅰ, Ⅱ

1) Model 1

사용자의 요청을 JSP가 전부 다 처리(뷰+컨트롤러+모델)하는 구조로 구현은 쉽지만 구현이 복잡해지면 유지보수가 까다로워진다.

  • 유지보수 문제
  • 재사용성 문제
  • 분업화 문제

2) Model 2

Model 2는 Model 1의 단점을 보완하고자 위에서 설명한 MVC패턴 3가지로 나뉜 구조로 설계가 까다롭지만 각 영역을 구분함으로써 유지보수가 수월해진다.

 

예를 들어서 User가 특정 회원을 찾는 검색 기능을 사용한다고 했을 때..

① User는 특정 회원의 이름을 넣고 검색 버튼을 누른다.

② 요청을 받은 Controller는 User의 요청이 회원 검색이라는 것을 확인하고 Model에게 전달한다.

③ Model은 DB에 접근하여 SQL문을 사용하여 회원을 찾아서 반환 값을 받는다.

④ 반환 값을 받은 Model은 다시 Controller에게 전달한다.

⑤ Controller는 반환 값을 View에게 전달하고 View는 User에게 전달한다.

(이 상황에서 반환 값은 회원을 찾았을 때와 못 찾았을 때의 결과 값을 나타냄)

 


+) 비즈니스 로직

  • 업무에 필요한 데이터 처리를 수행하는 응용 프로그램의 일부
  • 유저 눈에는 보이진 않지만 유저가 원하는 결과를 올바르게 도출하기 위해 짜여진 코드(즉, 사용자 요구사항을 직접 해결하는 영역)
  • 클라에서는 UI와 비즈니스 로직으로 구성되지만 서버에서는 대부분 비즈니스 로직으로 구성된다.

'Web > Concept' 카테고리의 다른 글

[web] DAO, DTO, VO 개념 정리  (1) 2020.10.28
[web] Framework  (0) 2020.10.28
Web Server, WAS, Application 개념 정리  (0) 2020.10.28
Comments