본문 바로가기

CS/Web4

웹 애플리케이션 이해 - HTML, HTTP API, CSR, SSR 정적 리소스 고정된 HTML 파일, CSS, JS, 이미지, 영상 등을 제공 주로 웹 브라우저 예시) /hello.html 로 요청을 하면, 서버에 저장되어있는 리소스파일을 그대로 제공 하는 것 동적 HTML 페이지 동적으로 필요한 HTML 파일을 생성해서 전달 웹 브라우저: HTML 해석 예시) /order.html 요청이 오면, 해당 요청에 의해 WAS는 DB에 접근하여, 주문 정보를 조회 후 데이터를 바탕으로 동적 HTML를 생성하여 제공하는 것 HTTP API HTML이 아닌 데이터를 전달 데이터만 주고 받음, UI 화면이 필요하면, 클라이언트가 별도 처리 주로 JSON 형식을 사용 다양한 시스템에서 호출 UI 클라이언트 접점 앱 클라이언트(아이폰, 안드로이드, PC 앱) 웹 브라우저에서 자바스크.. 2023. 7. 22.
웹 애플리케이션 이해 - 동시 요청 멀티 쓰레드 쓰레드(Tread) 란 애플리케이션 코드를 하나하나 순차적으로 실행하는 것은 쓰레드 자바 메인 메서드를 처음 실행하면 main이라는 이름의 쓰레드가 실행 쓰레드가 없다면 자바 애플리케이션 실행이 불가능 쓰레드는 한번에 하나의 코드 라인만 수행 동시 처리가 필요하면 쓰레드를 추가로 생성 다중 요청 - 단일 쓰레드 시나리오 싱글 쓰레드의 WAS에서, 다중 요청이 들어오게 된다면 앞의 요청이 끝이날 때까지 뒤의 요청은 기다려야한다. 만약, 이상황에서 앞의 요청이 처리가 지연되거나 오류가 생긴다면 두가지 요청 모두 처리가 되지 않거나 응답이 매우 늦을 것이다. 요청 마다 쓰레드를 생성하는 시나리오 매 요청마다 WAS에서 쓰레드를 생성해준다면, 클라이언트는 앞의 요청에 대한 결과에 관계없이, 새로운 쓰레드를 생성.. 2023. 7. 22.
웹 애플리케이션 이해 - 서블릿(Servlet) 서블릿(Servlet) 이란? 클라이언트의 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술 이다. 서블릿의 특징 과거 서블릿이 없는 시절에는 HTTP 데이터 통신을 위해서 개발자는 아래와 같은 프로세스를 직접 모두 구현해야 했다. 서버 TCP/IP 연결 대기, 소켓 연결 HTTP 요청 메세지를 파싱해서 읽기 POST 방식, /save URL 인지 Content-Type 확인 HTTP 메시지 바디 내용 파싱 username, age 데이터를 사용할 수 있게 파싱 저장 프로세스 실행 비즈니스 로직 실행 데이터베이스에 저장 요청 HTTP 응답 메시지 생성 시작 HTTP 시작 라인 생성 Header 생성 메시지 바디에 HTML 생성해서 입력 TCP/IP 응.. 2023. 7. 21.
웹 애플리케이션 이해 - Web Server와 WAS 웹 서버란? 웹 서버란 소프트웨어와 하드웨어 측면으로 구분되며, 하드웨어적인 의미는 Web서버가 설치되어 있는 컴퓨터를 말하며, 반면에 소프트웨어적인 의미는 Web서버란 브라우저 클라이언트로 부터 HTTP 요청을 받아 들이고 HTML 등의 웹 페이지 문서에 반응하는 컴퓨터 프로그램이다. 아래에 작성된 의미는 소프트웨어적인 Web Server의 내용이다. 웹 서버(Web Server) HTTP 기반으로 동작 정적 리소스 제공, 기타 부가기능 정적(파일) HTML, CSS, JS, 이미지, 영상 예시) NGINX, APACHE 등 웹 애플리케이션 서버(WAS - Web Application Server) HTTP 기반으로 동작 웹 서버 기능 포함 + (정적 리소스 제공 가능) 프로그램 코드를 실행해서 애플리.. 2023. 7. 21.