본문 바로가기

CS13

웹 애플리케이션 이해 - 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.
HTTP 헤더 2 캐시와 조건부 동작 만약 캐시가 없을 때 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다. 인터넷 네트워크는 매우 느리고 비싸다. 브라우저 로딩 속도가 느리다. 느린 사용자 경험 캐시 적용 캐시 덕분에 가능 시간동안 네트워크를 사용할 필요가 없다. 비싼 네트워크 사용량을 줄일 수 있다. 브라우저 로딩 속도가 매우 빠르다. 빠른 사용자 경험 헤더에 cache-control: 값을 주어, 캐시를 적용할 수 있다. 예시) cache-control : max-age=60 (60초간 캐시에 저장) 캐시에 유효시간동안 데이터를 저장한다면, 유효시간 내에 다시 같은 요청을 보낼 때, 먼저 캐시에 동일한 데이터가 있는지 확인한 후에 데이터가 있는 경우 캐시에서 데이터를 가져온다. 캐시 시.. 2023. 7. 20.
HTTP 헤더 HTTP 헤더 용도 HTTP 전송에 필요한 모든 부가정보를 나타낸다. 예시) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보 등등 참고로 표준 헤더는 너무나도 많다 필요시 임의의 헤더를 추가 할 수 있다. 예시) helloword : hihi 과거의 HTTP 표준 헤더 분류 - RFC2616(과거) 헤더 분류 General 헤더 : 메시지 전체에 적용되는 정보 예시) Connection: close Request 헤더 : 요청 정보 예시) User-Agent: Mozilla/5.0 (Macintosh; ...) Response 헤더 : 응답 정보 예시) Server: Apache Entity 헤더: 엔티티 바디정보 예시) Content-Type: t.. 2023. 7. 19.