[Spring Boot] spring mvc
MVC 패턴 사용하는 이유
사용자가 보는 페이지, 데이터 처리, 그리고 이 2가지를 중간에서 제어하는 컨트롤
이 3가지로 구성되는 하나의 애플리케이션을 만들면 각각 맡은 바에만 집중을 할 수 있게 된다.
공장에서도 하나의 역할들만 담당을 해서 처리를 해서 효율적이게 되는 것 처럼
서로 분리되어 각자의 역할에 집중할 수 있게끔하여 개발을 하고 그렇게 어플을 만든다면,
유지보수성, 애플리케이션의 확장성, 그리고 유연성이 증가하고, 중복코딩이라는 문제점 또한 사라지게 되는 것이다.
MVC 패턴 - 모델
어플리케이션 정보, 데이터를 나타낸다.
데잍베이스, 처음 정의하는 상수, 초기화값, 변수 등을 뜻한다.
이러한 DATA 정보들을 가공을 책임지는 컴포넌트들을 말한다.
- 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다. 화면 안에 네모박스에 글자가 표현된다면, 네모박스의 화면 위치 정보, 크기 정보, 글자내용, 위치, 포멧 정보 등을 가지고 있어야한다.
- 뷰나 컨트롤러에 대해서 어떤 정보도 알지 말아야 한다. 데이터 변경이 일어낫을 때 모델에서 화면 UI 를 직접 조정해서 수정할 수 있도록 뷰를 참조하는 내부 속성값을 가지면 안 된다.
- 변경이 일어나면, 변경 통지에 대한 처리방법을 구현해야한다. 모델의 속성중 텍스트 정보가 변경이 된다면, 이벤트를 발생시켜 누군가에서 전달해야하며, 누구낙 모델을 변경하도록 요청하는 이벤트를 보냈을 때 이를 수신하는 처리 방법을 구해야한다.
모델 : 애프리케이션의 정보, 데이터를 나타내며, 시ㅣㄹ제 기능을 처리한 후 결과를 컨트롤러에 반환한다.
뷰의 역할
public void actionPerformed(ActionEvent e)
액션 리스너를 통해 버튼을 눌렀을 때 콘솔창이 뜨게 만든다.
즉, 사용자에게 보여지는 화면을 구현하는게 뷰 의 역할.
여기서 발생한 이벤트와 입력 데이터들을 컨트롤러에 전달한다.
컨트롤러의 역할
public void addTitle(String title, List moviesList){
try{
model.addTitle(title, moviesList);
}catch(Exception e){
e.pirintStackTrace();
}
}
뷰에서 받은 내용을 가지고 모델 메소드를 호출한다.
- 이벤트에 대해서 적당한 모델을 선택한다.
모델의 역할
DATA 정보들의 가공을 책임지는 컴포넌트들을 말한다.
public void addTitle(String title, List movieList){
movieListadd(title);
}
실질적으로 영화 제목을 저장하고, 삭제하고 파일을 저장하는 실질적인 클래스
상대경로에 파일이 생성되고 저장한 값들이 출력된다.
- 실제 기능을 처리한 후 결과 컨트롤러에 반환한다.
Leave a comment