티스토리 뷰
최근 웹 개발은 대부분 모델2 방식을 사용중입니다. 흔히 MVC 구조를 응용한 방식이라고 하며 '화면과 데이터 처리를 분리해서 재사용이 가능하도록 하는 구조'를 갖추고 있습니다.
- 모델(Model) : 데이터 혹은 데이터를 처리하는 영역을 의미
- 뷰(View) : 결과 화면을 만들어 내는데 사용하는 자원
- 컨트롤러(Controller) : 웹의 요청(request)을 처리하는 존재로 뷰와 모델 사이의 중간 통신 역할
컨트롤러는 모델 계층과 연동하여 필요한 데이터를 처리하고, 결과를 뷰로 전송합니다.
모든 요청은 기본적으로 컨트롤러를 호출하고 각 컨트롤러는 자신을 호출하는 특정한 URI 경로를 가지고 있습니다.
개발자와 웹 퍼블리셔의 영역을 분리할 수 있고
컨트롤러의 URI를 통해 뷰를 제어하기 때문에 뷰의 교체나 변경 같은 유지보수에 유용하게 사용 가능합니다.
그러나 각 컨트롤러 사이의 중복적인 코드의 문제와 개발자의 개발 패턴의 차이 등의 문제로 인해 모델2 방식은 좀 더 강제적인 형태인 Front Controller 방식을 적용하게 됐습니다.
Front Controller 패턴의 가장 중요한 점은 전체 로직의 일부만을 컨트롤러가 처리하도록 변경되었다는 점입니다.
'위임(Delegation)'이라고 하는데, 전체 로직의 일부를 컨트롤러에게 위임하고 모든 흐름의 제어는 앞쪽의 Front Controller가 담당하게 됩니다.
이 같은 구조를 사용하게 될 경우 개발자가 작성하는 컨트롤러는 전체 로직의 일부만을 처리하는 형태가 되기 때문에 개발자가 작성해야 하는 전체 코드는 줄어들며 모든 컨트롤러는 Front Controller의 일부분을 구현하는 형태이므로, 좀 더 규격화된 코드를 작성하게 됩니다.
'WEB 개발 관련 정보들' 카테고리의 다른 글
invocation of init method failed nested exception is java.io.filenotfoundexception 에러가 났을때 (0) | 2018.12.29 |
---|---|
Apache Tomcat 7,8,9 어떻게 다를까? 톰캣 버전별 특징 (0) | 2018.12.29 |
데이터베이스 객체의 종류 (0) | 2018.02.23 |
An internal error occurred during: "Initializing Java Tooling". java.lang.NullPointerException 에러 (0) | 2017.05.18 |
댓글