MVC Model

rain46688·2021년 11월 13일
0

개발 관련 정리

목록 보기
1/19

MVC Model1

모델1은 View와 Controller가 하나에서 처리되는 구조를 말함
과거에 많이 사용되었던 아키텍처로 간단한 페이지 구성에 사용되었으며
구조가 단순해서 익히기 쉽지만, View와 Controller가 같이 있다 보니
코드가 복잡해지고 유지보수에 좋지 않다 이런 걸 스파게티 코드라 부른다.

MVC Model2

Model 1 방식에서 진화한 방식으로 클라이언트에서 요청이 들어오면 요청에 대한 로직은 Model인
Java Bean이 담당하고, 요청 결과는 유저에게 보여줄 View 단에 출력되면 이러한 모든 과정의
흐름 제어를 Controller 단이 담당한다.
View와 Controller를 분리하여서 분업 및 유지보수에 용이하지만 어렵다!

Model : 로직 처리를 하는 모든 것들이 모델에 속함 Controller로부터 특정 로직에 대한 요청이 들어오면 Java Beans DBMS에 접속해서 데이터 접근 후 로직 수행 그 결과를 Controller에게 반환하고 다시 View 단에 전달함 필요한 정보는 request 객체나 session 객체에 저장하기도 한다.

View : 클라이언트에 출력되는 디스플레이 데이터 또는 presentation 말하며 요청뿐만 아니라
Controller에 요청을 보내는 용도로 사용됨 request 객체나 session 객체에 저장된 정보를 토대로
출력 한다.

Controller : View와 Model 사이의 인터페이스 역할 하며 모든 흐름 제어를 맡는다. 브라우저로부터 요청이 들어오면 어떤 요청인지 분석하고 처리하기 위한 모델을 사용하여 처리 Model로부터 처리 결과를 받고 추가로 처리할 부분을 수행한 후 request 객체나 session 객체에 저장하고 View 단을 선택하여서 foward나 사용자한테 redirect를 하여 클라이언트에 출력한다.

과정:
Client에서 Servlet으로 요청을 보낸다.
Servlet은 DB와 연결된 Java Bean 객체를 생성한다.
Java Bean은 DB에서 적절한 정보를 가져와 저장한다.
Servlet에서 추가적인 로직을 수행
Servlet은 JSP 페이지와 통신
JSP 페이지는 Java Bean과 통신
JSP는 페이지가 클라이언트에 응답한다.

View(입력 받아 메뉴 선택) -> Controller(입력받은 값을 서비스로 매개변수로 보냄) -> Service(DB 커넥션 생성 후, 필요한 입력값이 있다면 같이 DAO에게 보냄) -> DAO(DB와 통신해서 쿼리문을 통해 원하는 값을 가져옴)

DAO(쿼리문의 결과를 리스트 & 객체에 담아서 반환함) -> Service(값을 반환 받고 트랜잭션 처리 및 클로즈 및 데이터 반환) -> Controller(받은 데이터 View로 전달) -> View(사용자한테 결과 출력)

리턴의 구조 스택형식으로 반환됨 처음 들어온 값이 나중에 나가는 구조로 가장 마지막에 호출된 함수가 먼저 반환되게 된다.

0개의 댓글