tmxklab
[web] MVC 패턴 본문
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