Model + View + Controller
MVC의 분리 개발이 핵심
사용자 인터페이스와 비지니스 로직을 분리하여 개발 하는 것
- Model : 어플리케이션에서 사용되는 데이터와 그 데이터를 처리하는 부분입니다.
- View : 사용자에서 보여지는 UI 부분입니다.
- Controller : 사용자의 입력(Action)을 받고 처리하는 부분입니다.

- 화면에 보여줄 view 에 대한 작업
- DB에서 조회 혹은 DB에 저장할 내용을 중간에 가공, 처리하는 비즈니스로직
- DB에 연결하는 DAO 작업
JSP에서 다 하던걸 패턴화 시켜 분리하여 개발하는것인데 각각의 역할에 따라 파일들을 분리해서 작업하는 것
- 사용자의 Action들은 Controller에 들어오게 됩니다.
- Controller는 사용자의 Action를 확인하고, Model을 업데이트합니다.
- Controller는 Model을 나타내줄 View를 선택합니다.
- View는 Model을 이용하여 화면을 나타냅니다.
service 는 인터페이스로 생성하고 serviceImple이라는 구현객체를 생성해서 사용하고있던것
MVC에서 View가 업데이트 되는 방법
- View가 Model을 이용하여 직접 업데이트 하는 방법
- Model에서 View에게 Notify 하여 업데이트 하는 방법
- View가 Polling으로 주기적으로 Model의 변경을 감지하여 업데이트 하는 방법.
MVC 패턴의 핵심은 View는 자신이 요청할 Controller만 알고있으면 되고, Controller는 화면에서 넘어오는 매개변수들을 이용해 Service 객체를 호출하는 역할을 한다
Service 에 request나 response와 같은 객체를 매개변수로 받아선 안된다. 그걸 사용해야하는 작업은 컨트롤러에서 해야한다
모듈화를 통해 어디서든 재사용이 가능한 클래스파일
비즈니스 로직을 처리하는 모델은 요청사항에 따라 언제든 변할수있는 부분이었고 변화에 대응하기위해 확장을 염두하여 인터페이스로 구성했던것
개발은 transaction script 형식으로 진행하다보니 관례는 관례대로 남고 애초에 그렇게 하고자했던 이유는 사라져버리게 된것
프로젝트 규모가 커질수록 모델과 뷰가 급격히 늘어나 대규모 어플리케이션 개발에 적합하지 않았다 그래서 페이스북에서 Flux Design Pattern
compare
[디자인패턴] MVC, MVP, MVVM 비교
웹 개발자로 일을 하면서 가장 먼저 접한 디자인패턴이 바로 MVC 패턴이었습니다. 그만큼 유명하고 많이 쓰이는 디자인패턴인 MVC 패턴과 MVC 패턴에서 파생되어져 나온 MVP 패턴과 MVVM 패턴을 이야기해 보도록 하겠습니다. 이렇게 역할을 분리하는 이유는... 각각의 역할을 나눠 코드 관리를 하자! 역할을 나누어 관리가 된다면, 유지보수와 개발효율이 좋아지겠죠..?
https://beomy.tistory.com/43
service
MVC 구조에서 service와 serviceImpl
이제는 JSP 개발시 MVC 패턴으로 작업하는게 당연시 되고있다. MVC패턴이란 화면에 보여줄 view 에 대한 작업, DB에서 조회 혹은 DB에 저장할 내용을 중간에 가공, 처리하는 비즈니스로직, DB에 연결하는 DAO 작업까지 JSP에서 다 하던걸 패턴화 시켜 분리하여 개발하는것인데 각각의 역할에 따라 파일들을 분리해서 작업하는것이다. 그렇게 하는 이유는 소스를 분리함으로서 각 소스의 목적이 명확해 지고 유지보수하는데 있어서 용이하기 때문이다.
https://multifrontgarden.tistory.com/97



Seonglae Cho