본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
MVC 프레임워크
MVC 패턴
- 모델-뷰-컨트롤러(Model-View-Controller, MVC)는 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴이다
- 어플리케이션을 세 개의 영역으로 분리하고 각 구성 요소에게 고유한 역할을 부여하는 개발 방식이다
Model
- 데이터(data) 가공을 책임지는 컴포넌트(component)이다
- 모델은 어플리케이션의 정보, 데이터를 나타낸다
- 데이터베이스, 초기화 된 상수나 값, 변수 등을 뜻한다
- 비즈니스 로직을 처리한 후 모델의 변경 사항을 컨트롤러와 뷰에 전달한다
View
- 사용자에게 보여지는 부분, 즉 유저 인터페이스(User Interface)를 의미한다
- MVC 패턴은 여러개의 뷰가 존재할 수 있으며, 모델에게 질의하여 데이터를 전달받는다
- 뷰는 받은 데이터를 화면에 표시해주는 역할을 가지고 있다
- 모델에게 전달받은 데이터를 별도로 저장하지 않아야 한다
- 사용자가 화면에 표시된 내용을 변경하게 되면 모델에게 전달하여 모델을 변경해야 한다
Controller
- 모델과 뷰 사이를 이어주는 브릿지(bridge) 역할을 의미한다
- 모델이나 뷰는 서로의 존재를 모르고 있다. 변경 사항을 외부로 알리고 수신하는 방법만 있다. 컨트롤러는 이를 중재하기 위한 컴포넌트이다. 모델과 뷰에 대해 알고있으며 모델이나 뷰로부터 변경 내용을 통지 받으면 이를 각 구성 요소에게 통지한다. 사용자가 어플리케이션을 조작하여 발생하는 변경 이벤트들을 처리하는 역할을 수행한다
Reflection
- 힙 영역에 로드되어 있는 클래스 타입의 객체를 통해 필드/메소드/생성자를 접근제어자와 상관없이 사용할 수 있도록 지원하는 API
- 컴파일 시점이 아닌 런타임 시점에 동적으로 특정 클래스의 정보를 추출해낼 수 있는 프로그래밍 기법
- 주로 프레임워크 또는 라이브러리 개발 시 사용된다
Reflection 사용하는 프레임워크/라이브러리
- Spring 프레임워크 (ex. DI)
- Test 프레임워크 (ex. JUnit)
- JSON Serialization/Deserialization 라이브러리 (ex. Jackson)
프런트 컨트롤러 패턴
- 모든 요청을 단일 handler(처리기)에서 처리하도록 하는 패턴
- 스프링 웹 MVC 프레임워크의 DispatcherServlet(프런트 컨트롤러 역할)이 프런트 컨트롤러 패턴으로 구현되어 있음
Forward
- 서블릿에서 클라이언트(웹 브라우저)를 거치지 않고 바로 다른 서블릿(또는 JSP)에게 요청하는 방식
- Forward 방식은 서버 내부에서 일어나는 요청이기 때문에 HttpServletRequest, HttpServletResponse객체가 새롭게 생성되지 않음(공유됨)
RequestDispatcher dispatcher=request.getRequestDispatcher("포워드할 서블릿 또는 JSP")
dispatcher.forward(request,response)
Redirect
- 서블릿이 클라이언트(웹 브라우저)를 다시 거쳐 다른 서블릿(또는 JSP)에게 요청하는 방식
- Redirect 방식은 클라이언트로부터 새로운 요청이기 때문에 새로운 HttpServletRequest, HttpServletResponse 객체가 생성됨
- HttpServletResponse 객체의 sendRedirect() 이용
'패스트캠퍼스 강의' 카테고리의 다른 글
[10일차] 50일 포트폴리오 챌린지 (0) | 2023.08.17 |
---|---|
[9일차] 50일 포트폴리오 챌린지 (0) | 2023.08.16 |
[7일차] 50일 포트폴리오 챌린지 (0) | 2023.08.14 |
[6일차] 50일 포트폴리오 챌린지 (0) | 2023.08.13 |
[5일차] 50일 포트폴리오 챌린지 (0) | 2023.08.12 |