[JAVA] MVC 패턴
1. MVC 패턴이란?
디자인 패턴은 소프트웨어 공학의 소프트웨어 디자인에서 특정 문맥에서 공통적으로 발생하는 문제에 대해 작성한 해결책을 뜻한다. 쉽게 말해 프로그래머가 프로그램이나 시스템을 디자인할 때 공통된 문제를 해결하는데에 쓰이는 형식화된 특정한 "규약" 이라고 볼 수 있겠다.
많은 디자인 패턴 중 이번에 알아볼 MVC 패턴은 과연 무엇일까?
Model, View, Controller 의 합성어로 소프트웨어 공학에서 사용되는 디자인 패턴
이는 하나의 프로그램, 시스템을 구성할 때 그 구성 요소를 세 가지의 역할로 구분한 패턴이다.
출처 : https://ko.wikipedia.org/wiki/%EB%AA%A8%EB%8D%B8-%EB%B7%B0-%EC%BB%A8%ED%8A%B8%EB%A1%A4%EB%9F%AC
위 그림처럼 사용자가 Browser를 통해 Controller를 조작하면 Controller는 Model을 통해 DB로부터 데이터를 가져오고 그 데이터를 View에서 시각적으로 표현하여 보여주게 된다.
그럼 각 구성요소에 대해 다시 자세하게 알아보자.
2. 모델, Model
모든 데이터, 상태 및 로직이 들어있으며 이러한 데이터들의 가공을 책임지는 컴포넌트
모델에는 다음 세 가지 규칙이 적용된다.
1) 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다.
2) 모델은 뷰나 컨트롤러에 대한 어떤 정보도 알아선 안된다.
3) 모델에서 변경이 일어나면 변경에 대해 통지 가능한 처리 방법을 구현해야 한다.
3. 뷰, View
데이터 및 객체의 입력, 보여주는 출력을 담당하는 사용자 인터페이스 요소
데이터를 기반으로 사용자들이 볼 수 있는 화면으로 뷰 또한 다음 세 가지 규칙이 적용되며 2, 3번 규칙은 모델에서의 규칙과 상통하다.
1) 모델이 가지고 있는 정보를 뷰에서 따로 저장해서는 안된다.
2) 뷰는 모델이나 컨트롤러 대한 어떤 정보도 알아선 안된다.
3) 뷰에서 변경이 일어나면 변경에 대해 통지 가능한 처리 방법을 구현해야 한다.
4. 컨트롤러, Controller
데이터와 사용자 인터페이스 요소들을 잇는 다리 역할
즉, 사용자가 데이터를 클릭하고 수정하는 것에 대한 "이벤트"들을 처리하는 부분을 뜻한다. 컨트롤러에 또한 다음 두 가지 규칙이 적용된다. #### 1) 컨트롤러는 모델이나 뷰에 대해서 알고 있어야 한다. 모델이나 뷰는 서로의 존재를 모르고, 변경을 외부로 알리고, 수신하는 방법만 가지고 있는데 컨트롤러는 이를 중재하는 역할을 하므로 모델과 뷰에 대해서 알고 있어야 한다. #### 2) 모델과 뷰의 변경을 모니터링해야 한다. 모델이나 뷰의 변경을 통지 받으면 컨트롤러는 이를 해석해서 각 구성 요소에게 명령을 내린다.
5. MVC 패턴을 사용하는 이유
그럼, MVC 패턴을 사용하는 이유는 무엇일까?
사용자가 보는 페이지, 데이터처리, 그리고 이 2가지를 중간에서 제어하는 컨트롤. 이 세 가지로 구성되는 하나의 시스템을 만들면 MVC가 서로 분리되어 각자의 역할에만 집중하게 되어 상호간의 영향이 없어 재사용과 확장이 가능하다. 이로써 코드의 유연성이 높아지고 유지보수가 쉬워진다는 이점이 있다.
6. 여담
가장 최근(이라고 해봐야 3월 25일) MVC 패턴을 적용하여 만들어 본 예제가 바로 아래.
클래스가 무려 7개 🙀
회원가입을 통해 DB에 데이터를 생성하고 DB에 등록된 사용자가 로그인에 성공하면 학생 정보에 대한 데이터를 DB에 입력, 출력, 검색, 수정, 삭제가 가능한 시스템이다.
핑계라면 핑계겠지만 근 3주간 Front-end 쪽을 배우느라 한번도 들여다보질 못했다.
원래는 Main 까지만 완성하면 되는 것을 다시 Server 와 Client 부분으로 나누는 것까지 성공했었는데 ✌ 어제 포스팅하느라 오랜만에 켠 eclipse 가 너무 낯설뿐더러 Scanner 객체 생성하는 것부터 버벅거렸더랬다..
여하튼 지금까지 배운 Server/Client, DAO/DTO, DB 등 모든 개념이 종합적으로 적용된 예제라 얼마 안 남은 Front-end 배우는 기간 동안 다시 들여다보면서 빨리 친해져봐야겠다.
Author And Source
이 문제에 관하여([JAVA] MVC 패턴), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@leeeden/JAVA-MVC-패턴저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)