CS/software engineering

MVC

superbono 2021. 4. 5. 16:18

Model View Controller

https://developer.mozilla.org/en-US/docs/Glossary/MVC

 

MVC 패턴이란 어플리케이션을 Model View Controller 세 영역으로 구분하고 나눈 것이다. 

Model (Service, Dao, Java Beans)

로직(비니지스 & db)로직을 처리하는 모든 것이다.

controller로부터 넘어온 데이터를 이용하여 이를 수행하고 그에 대한 결과를 다시 controller에 돌려준다. 

View (JSP)

모든 화면 처리를 담당한다. 클라이언트의 요청에 대한 결과 뿐 아니라 controller에 요청을 보내는 화면단도 jsp에서 처리한다. logic 처리를 위한 java code는 사라지고 결과 출력을 위한 코드만 존재한다. 

Controller (Servlet)

클라이언트의 요청을 분석하여 로직 처리를 위한 모델단을 호출한다. return 받은 결과 데이터를 필요에 따라 request, session등에 저장하며 redirect 또는 forward 방식으로 jsp page를 사용하여 출력한다.

 

MVC 패턴을 이용하는 model 2 http://www.rcy.co.kr/xeb/index.php?mid=study&listStyle=gallery&document_srl=664&m=0

 

모델2 구조의 장단점

* 장점 

- 출력을 위한 view 코드와 로직 처리를 위한 java 코드가 분리되었기 때문에 jsp의 코드가 단순하다.

- 화면단과 logic 단이 분리되었기 때문에 분업이 용이하다.

- 기능에 따라 code가 분리되었기 때문에 유지보수가 쉬워졌다.

- 확장성이 뛰어나다

 

* 단점

- 구조가 복잡하여 초기 진입이 어렵다.

- 개발 시간 증가로 개발 비용이 증가한다.

 

 

* 모든 웹 사이드가 model 2로만 만드는 것은 아니며 확장이 필요 없고 유지 보수가 필요 없으며 간단한 웹사이트의 경우 굳이 비용이 많이 드는 model2로 개발할 필요는 없다. 

'CS > software engineering' 카테고리의 다른 글

Agile 애자일  (0) 2021.07.12
CI/CD  (0) 2021.07.03
결합도와 응집도에 대하여 (Coupling and Cohension)  (0) 2021.06.26
3rd party(써드 파티)란?  (0) 2021.06.19
라이브러리 vs 프레임워크  (0) 2021.05.01