Spring MVC - 기반 지식 - 4. WAS와 리소스 반환, CSR, SSR
2023. 5. 26. 20:07
Spring & JPA/SpringMVC
들어가며 이번 포스트에서는 WAS가 반환하는 데이터의 종류와 클라이언트에서 뷰를 랜더링하는 CSR, 서버에서 뷰를 랜더링하는 SSR에 대해 알아본다. WAS가 반환하는 데이터 종류들 서버는 결국 클라이언트의 요청을 받고 데이터를 처리한 뒤 그 결과를 응답으로 반환해야 한다. 이때 이 반환하는 데이터들의 종류가 다양한데 크게 분류하자면 3개로 나눌 수 있다. 정적 리소스 - HTML, CSS, JS, 이미지 동적 HTML 페이지 HTTP API(JSON, XML) 각각의 데이터에 대해 알아보도록 하자 정적 리소스 정적 리소스는 이전에도 설명했지만 클라이언트의 요청에 의해 동적으로 변하지 않는 자원들을 일컫는다. 보통 정적 HTML이나 CSS, JS가 있으며 이미지, 영상도 정적 리소스에 표함된다. 주로 웹..
Spring MVC - 기반 지식 - 3. WAS와 멀티 쓰레드
2023. 5. 26. 18:54
Spring & JPA/SpringMVC
들어가며 이전 포스트에서 WAS와 서블릿 그리고 서블릿 컨테이너에 대해 알아보았다. 이번 포스트에서는 서블릿과 멀티 쓰레드에 대해 알아본다. 서블릿 호출과 스레드 이전 포스트의 그림을 다시 가져왔다. 클라이언트가 요청을 보내면 그 요청을 통해 Request 객체가 생성되고, url 패턴과 동일한 서블릿이 존재하는지 서블릿 컨테이너에 확인한 뒤 해당 서블릿을 호출한다. 그런데 이 서블릿을 누가 호출하는 것인가에 대해서 한번 생각할 필요가 있다. 누가 이 서블릿을 호출하고 내부 로직을 실행시키는 것일까 그 답은 쓰레드이다. 웹 애플리케이션이 실행되면 웹 애플리케이션은 고유의 프로세스(Process)를 가지게 되고 그 내부에는 기본적으로 하나의 쓰레드를 가지게 된다. 바로 이 쓰레드가 서블릿 컨테이너에서 찾은..
Spring MVC - 기반 지식 - 2. WAS와 서블릿
2023. 5. 26. 16:15
Spring & JPA/SpringMVC
들어가며 저번 포스트에서는 웹 시스템의 전체적인 구조에 대해 간략하게 알아보았다. 이번 포스트에서는 WAS를 직접 구현하려면 어떤 면이 필요하고 서블릿이라는 것이 어떻게 이를 도와줄 수 있는지를 알아본다. WAS 직접 구현의 어려움과 서블릿 WAS에서는 앱 로직이 돌아가야 한다. 그리고 이것은 대부분은 사용자의 요청에 의해 로직이 수행되고 처리된다. 그리고 사용자의 요청은 HTTP 메시지를 통하여 들어오게 된다. 그렇다면 우리가 로직을 수행하기 위해서는 해당 HTTP 메시지에서 데이터를 가져와야 한다는 것이다. 따라서 WAS를 직접 구현하기 위해서는 다음과 같은 기능들이 필요해진다. TCP/IP를 통한 클라이언트 - 서버의 연결 설정 클라이언트에게서 들어온 요청 메시지 파싱 요청된 HTTP 메서드와 Co..
Spring MVC - 기반 지식 - 1. 웹 서버와 웹 애플리케이션 서버
2023. 5. 26. 15:39
Spring & JPA/SpringMVC
시작하며 해당 파트는 스프링 MVC 라이브러리에 대해 알아본다. 그 이전에 선행적으로 알아두면 좋은 기반 지식들에 대해 간략히 알아보도록 하자. 웹 서버(Web Server) 현재 웹은 HTTP를 기반으로 하여 쌓아올려졌다. HTTP는 클라이언트 - 서버의 구조로 이루어지는데 이 서버의 종류 중 하나인 웹 서버에 대해 살펴본다. 웹 서버는 HTTP를 기반으로 동작하며 정적 리소스(static resources)를 제공하고, 기타 부가적 기능을 제공한다. 메인 기능으로는 정적 리소스를 클라이언트에게 반환하는 것이다. 이때 정적 리소스에 대해 무엇인지에 대해 생각해야 할 필요가 있다. 정적 리소스는 클라이언트에게서 받은 요청에 대한 리소스가 이미 만들어져 있어 해당 리소스를 이미 반환하는 경우를 말한다. 이..