표준화된 소스 구조
모델 1, 모델 2가 있음
모델 2가 1의 업그레이드 버전임!
스프링에서도 그대로 쓰이는 개념임
스프링만 배우면… 스프링은 다르다!
DB연동같은 비즈니스 로직 작업과 그 결과를 동일한 jsp에서 수행
기능구현이 쉽고 편리, 유지보수가 어려움
한군데를 고쳤는데 어 왜 안되지 다른곳도 고쳐야하네! 하는 일이 발생
기능이 복잡해지고 프로젝트 부피가 커질수록 문제가 발생함
그래서 나온
웹 애플리케이션의 각 기능을 분리해 구현
객체 지향 프로그래밍에서 각각의 기능을 모듈화해 개발하자는 원리
여러 객체들을 만들어놓고 지들끼리의 상호작용을 통해 현실세계를 구현하자 가 객체지향이었지
유지보수에 유리함
모듈의 재사용성이 높음
실제 웹 어플리케이션 방식에 사용됨
우리가 자동차나 빵공장을 만든다 생각하면
컨테이너가 돌아가면
어떤 사람은 눈만 붙이고
어떤 사람은 손만 붙이고
어떤 사람은 귀만 붙인다
다 돌고 나면 완성품이 나오겠지
눈에 불량이 생기면
눈을 떼고 눈만 다시 붙이면 되겠지
혼자서 자동차는 못만들지만
엔진은 다룰 수 가 있어
기어는 다룰수 있어!
그래서 신입개발자들이 무엇을 할 수 있는지 알려주면
그 파트를 맡긴다!
요청을 하면 요청 처리하는 모듈이 따로 있고 로직 처리하는 모듈이 있음
로직은 데이터베이스와 연동해 결과값을 받고
화면으로 전송해줌
그 결과로 클라이언트에게 화면을 보여줌!
모델(로직처리) 뷰(화면기능) 컨트롤러(요청처리)임!
프로그램을 개발하는데 표준화된 형식이 있다~
세부분으로 나누어 개발하는 방법이다
controller 사용자의 요청 및 흐름 제어 담당 , Servlet
Model : 비즈니스 로직 처리 , DAO
view : 사용자에게 보여줄 화면 , JSP
jsp는 응답, controller는 요청을 받아 DAO로 전달하고 결과값을 JSP로 전달
서블릿.
클라이언트 요청 분석
요청에 대해 필요한 모델 호출
Model에서 처리한 결과를 보여주기 위해 JSP
DAO, VO
데이터베이스 연동과 같은 비즈니스 로직 수행
JSP
model에서 처리한 결과를 화면에 표시
클라이언트가 요청하면
서블릿으로 전달함
서블릿은 DAO로 접근해서
DAO가 DB에서 ResultSet으로 반환
컨트롤러에서 받으면
서블릿에서 원하는 jsp를 선택해 응답을 해주면
요청결과가 출력될 것임
코드를 어떻게 분리해야하는지 이해해보자~
controller가 모델한테 일 시키고 요청한 값 반환하면 그 값을 통째로 넣어서 전달하는거.
서블릿에 매핑된 url값으로 화면에 전달하는거다
앞으로 유용하게 쓰일