JSP가 View와 Controller의 역할을 모두 처리하는 모델이다
구조가 단순하다는 장점이있지만 JSP의 코드가 너무 복잡해지기 때문에 유지보수 또는 확장성 측면에서 문제가 있다
Java Beans
객체들을 하나의 규격화된 객체의 형태로 표현한 것을 의미한다
기본 생성자, setter, getter 등등 DTO나 VO를 예시로 들 수 있다
VO, DTO, Entity
DTO는 데이터 전송을 목적으로하는 객체
VO는 값을 저장하는걸 목적으로하는 객체
Entity는 DB테이블과 매핑되는 객체DTO의 경우 보통 controller <> service <> dao ( repository ) 와 같은 계층간 데이터전달을 목적으로 한다
VO의 경우 setter가 존재하지않으며, 최초 한번 값이 저장되면 변하지않는다
즉, 다음과 같은 로직처리가 가능하다
1. request 데이터를 DTO로 만들어 service로 넘김
2. service에서 원하는 대로 데이터를 가공하여 VO를 만듬
3. dao로 보내서 쿼리 실행
4. 쿼리 결과로 나온 데이터를 Entity 객체로 받음
5. Entity객체를 DTO로 만들어서 controller에 보내 respose 처리보통 DTO와 VO에 저장되는 데이터가 동일한 경우가 많아서 VO를 생략한다고 한다
Model - View - Controller 로 나누어서 처리하는 MVC 패턴을 의미한다
Model의 경우 service, 비즈니스 로직처리나 DB로직
View의 경우, 화면처리
Controller의 경우, 요청 분석 및 model단 호출
자바코드가 따로 분리되었기 때문에 JSP의 단점( 유지보수성, 확장성 ) 이 해결된다
또한 업무별로 작업하는 공간이 다르기때문에 분업이 용이하다