Spring MVC/웹 애플리케이션 이해 4

[Spring MVC] HTML, HTTP API, CSR, SSR

정적 리소스 고정된 HTML 파일, CSS, JS, 이미지 영상 등을 제공 주로 웹 브라우저 HTML 페이지 동적으로 필요한 HTML 파일을 생성해서 전달 웹 브라우저 : HTML 해석 HTTP API HTML이 아니라 데이터를 전달 주로 JSON 형식 사용 다양한 시스템에서 호출 다양한 시스템에서 호출 데이터만 주고받음, UI 화면이 필요하면 클라이언트가 별도 처리 앱, 웹 클라이언트, 서버 to 서버 다양한 시스템 연동 주로 JSON 형태로 데이터 통신 UI 클라이언트 접점 앱 클라이언트(아이폰, 안드로이드, PC 앱) 웹 브라우저에서 자바스크립트를 통한 HTTP API 호출 React, Vue.js 같은 웹 클라이언트 서버 to 서버 주문 서버 -> 결제 서버 기업 간 데이터 통신 서버 사이드 렌더..

[Spring MVC] 동시 요청 - 멀티 스레드

클라이언트와 WAS 연결 스레드 애플리케이션 코드를 하나하나 순차적으로 실행하는 것은 스레드 자바 메인 메서드를 처음 실행하면 main이라는 이름의 스레드가 실행 스레드가 없다면 자바 애플리케이션 실행이 불가능 스레드는 한 번에 하나의 코드 라인만 수행 동시 처리가 필요하면 스레드를 추가로 생성 단일 요청 - 스레드 하나 사용 다중 요청 - 스레드 하나 사용 요청마다 스레드 생성 장단점 장점 동시 요청을 처리할 수 있다. 리소스(CPU, 메모리)가 허용할 때까지 처리가능 하나의 스레드가 지연되어도, 나머지 스레드는 정상 동작한다. 스레드 는 생성 비용은 매우 비싸다. 고객의 요청이 올 때마다 스레드를 생성하면, 응답 속도가 늦어진다. 스레드는 콘텍스트 스위칭 비용이 발생한다. 스레드 생성에 제한이 없다...

[Spring MVC] 서블릿

HTML Form 데이터 전송 POST 전송 - 저장 서버에서 처리해야 하는 업무 웹 애플리케이션 서버 직접 구현 개발자가 신경 써야 할 부분이 너무 많다. 서블릿을 지원하는 WAS 사용 개발자가 의미 있는 비즈니스 로직 외에 신경 쓸 부분이 없어진다. 서블릿 특징 urlPatterns(/hello)의 URL이 호출되면 서블릿 코드가 실행 HTTP 요청 정보를 편리하게 사용할 수 있는 HttpServletRequest HTTP 응답 정보를 편리하게 제공할 수 있는 HttpServletResponse 개발자는 HTTP 스펙을 매우 편리하게 사용 HTTP 요청, 응답 흐름 HTTP 요청 시 WAS는 Request, Response 객체를 새로 만들어서 서블릿 객체 호출 개발자는 Request 객체에서 HTT..

[Spring MVC] 웹 서버와 웹 애플리케이션 서버

웹 서버 Web Server HTTP 기반으로 동작 정적 리소스 제공, 기타 부가기능 정적(파일) HTML, CSS, JS, 이미지, 영상 예) NGINX, APACHE 웹 애플리케이션 서버 WAS - Web Application Server HTTP 기반으로 동작 서버 기능 포함+ (정적 리소스 제공 가능) 프로그램 코드를 실행해서 애플리케이션 로직 수행 동적 HTML, HTTP API(JSON) 서블릿, JSP, 스프링 MVC 예) 톰캣(Tomcat) Jetty, Undertow 웹 서버, 웹 애플리케이션 서버(WAS) 차이점 웹 서버는 정적 리소스(파일), WAS는 애플리케이션 로직 사실은 둘의 용어도 경계도 모호함 웹 서버도 프로그램을 실행하는 기능을 포함하기도 함 웹 애플리케이션 서버도 웹 서버..