Client-Web Server -WAS -DB
- Web Server(정적 리소스 처리):HTML,이미지 등을 처리하며 잘 죽지않고 오류화면 HTML을 노출 시킬수 있다
- WAS(Web Application Server) 동적 리소스처리 : 업무 분담으로 과부화를 줄여주며 애플리케이션 로직을 실행시킨다
Servlet
자바를 사용해 웹 페이지를 동적으로 생성하는 서버측 프로그램 혹은 사양
서블릿은 서버에서 처리해야하는 수많은 업무중 비지니스 로직을 제외한 모든일을 대신 수행해준다
이는 싱글톤으로 관리되어 공유변수에 주의하여햐 하며 소스코드는 싱글 스레드 프로그래밍하듯 개발하면 된다.
서블릿은 요청/응답 정보를 편리하게 사용할 수 있도록 HttpServlet, HttpServletResponse를 사용한다.
HTTP요청을 하면 WAS는 request, response객체를 새로 만들어 서블릿 객체를 호출한다.
그럼그때 개발자는 request객체에서 HTTP요청 정보를 꺼내쓰고 response객체에 HTTP응답 정보를 입력하면 된다.
WAS는 response내용으로 HTTP응답 정보를 생성해 브라우저로 전달해준다.
Spring MVC
서블릿으로 개발할 때는 뷰를 위한 HTML코드가 자바 코드와 섞여 복잡했다
이를 해결하기위해서 JSP를 사용해 뷰를 생성하는 HTML작업을 분리시켰고 중간중간 동적인 작업이 필요한 부분만 자바 코드를 적용시켰다.
하지만 이또한 많은 자바 코드가 JSP에 노출되어 JSP가 너무 많은 역할을 떠맡게 된다.
그래서 비즈니스 로직과 뷰를 그리는 작업을 분리하기 위해서 MVC패턴을 사용하게 되었다.
JSP,Java Server Page
:HTML 코드에 자바 코드를 넣어 동적 웹페이지를 생성하는 웹 어플리케이션도구
MVC패턴이란 JSP가 처리하던 것을 컨트롤러와 뷰 영역으로 나눈 것이다
컨트롤러는 HTTP 요청을 받아 파라미터를 검증하고 비즈니스 로직을 수행한다.
그리고 뷰에 전달할 결과 데이터를 조회해 모델에 담는다.
모델은 뷰에 출력할 데이터를 담아둔다. 모델 덕분에 뷰는 화면을 렌더링하는 일에만 집중하면된다.
뷰는 모델에 담긴 데이터를 사용해 화면을 그린다.(HTML생성)
Controller VS Service
컨트롤러에 비즈니스 로직을 둘 수는 있지만, 이는 컨트롤러가 너무 많은 역할을 담당하게 된다.
그래서 비즈니스 로직을 Service서비스 계층을 별도로 생성하여 처리한다.
그리고Controller 컨트롤러는 비즈니스 로직이 있는 서비스를 호출하는 역할을 담당한다.
비즈니스 로직을 변경하면 비즈니스 로직을 호출하는 컨트롤러의 코드도 함께 변경될 수 있다.
'JAVA' 카테고리의 다른 글
[자바]REST API 2 (0) | 2024.05.07 |
---|---|
[자바]RestAPI (0) | 2024.05.07 |
java람다/스트림 (0) | 2024.05.06 |
DTO 와 VO (0) | 2024.05.04 |
웹 MVC (0) | 2024.05.04 |
댓글