백엔드 데브코스 TIL 21일차

Inchang Choi·2022년 4월 19일
0

백엔드 데브코스 TIL

목록 보기
15/30
post-thumbnail

학습목표

강의를 들으며 내가 알고 있는 내용을 점검하고,

새로 배운 내용을 정리하며,

궁금한 내용을 알아가며 학습해나가는 것을 목표로 합니다.


WEB이란?

팀 버너스-리에 의해 1993년 처음 세상에 소개된 월드 와이드 웹,

통칭 웹은 하이퍼미디어를 이용한 분산 컴퓨팅을 플랫폼 중 하나 입니다.

Web을 구성하는 3가지 기술

HTTP

HyperText Transfer Protocol은

HTML과 같은 하이퍼미디어 문서를 전송하기 위한 애플리케이션 레이어 프로토콜입니다.

HTTP의 특징

  • 클라이언트가 요청을 생성하기 위한 연결은 연 다음, 응답을 받을 때 까지 대기하는 전통적인 클라이언트-서버 모델을 따릅니다.
  • HTTP는 동기형 프로토콜로 클라이언트가 서버에 HTTP 요청(HTTP 메서드)를 보내면, 서버는 클라이언트에게 HTTP 응답(HTML)을 반환합니다.
  • HTTP는 무상태 프로토콜이며, 이는 서버가 두 요청간에 어떠한 데이터(상태)도 유지하지 않음을 의미합니다. 일반적으로 안정적인 전송 레이어로 UDP와 달리 메세지를 잃지 않는 프로토콜인 TCP/IP 레이어를 기반으로 사용 합니다.

URI

uniform resource identifier는 각자 이름을 가지고 있기 때문에, 정보 리소스를 고유하게 식별하고 위치를 지정할 수 있습니다.

HTML

Hyper Text Markup Language는 브라우저에게 웹 페이지가 어떻게 구조화 되어 있는지 알 수 있게 하는 마크업 언어입니다.

웹의 기술적 특징

  • 하이퍼미디어 시스템 웹은 텍스트뿐만 아니라 미디어, 사진 등 수천 가지 데이터 타입을 다루며, 웹에 전송되는 객체 각각에 MIME 타입 이라는 데이터 포맷 라벨을 붙여 전송합니다. 웹 브라우저는 서버로부터 객체를 돌려 받을때, MIME 타입을 통해 다룰 수 있는 객체인지 확인합니다.
  • 분산 시스템

웹 어플리케이션 아키텍쳐

(https://scvgoe.github.io/2018-12-25-번역-Web-Architecture-101/)

  1. DNS
  2. Load Balancer
  3. Web Application Servers
  4. Database Servers
  5. Caching Service
  6. Job Queue & Servers
  7. Full-text Search Service
  8. Services
  9. Data
  10. Cloud storage
  11. CDN

웹 서버와 웹 어플리케이션 서버

웹 서버와 웹 어플리케이션 서버의 차이점은 동적 컨텐츠의 지원 유무에 있습니다.

웹 서버는 웹 브라우저의 요청을 받아 정적 컨텐츠를 제공하는 서버입니다.

WAS는 웹 서버와 웹 컨테이너가 합쳐진 형태로서, JSP나 Servlet을 통하여 동적인 컨텐츠를 제공할 수 있습니다.

Servlet

서블릿은 웹 서버에서 웹 어플리케이션을 호스팅 하기 위한 웹 컨테이너를 구현 합니다.

서블릿을 사용하여 웹 서버에 동적 콘텐츠를 추가할 수 있습니다.

Servlet의 LifeCycle

  1. WAS는 클라이언트로부터 서블릿 요청을 받으면 서블릿이 메모리에 있는지 확인합니다.
  2. (메모리에 없다면) 서블릿 클래스를 메모리에 올리기 위해 init() 메소드를 사용하여 서블릿을 초기화 하며, 처음 한번만 실행합니다.
  3. 그 후 service() 메소드를 실행하여 요청이 GET, POST중 어떤 것인지 구분하여 doGet(), doPost() 메소드로 분기됩니다.
  4. WAS가 종료되거나 웹 어플리케이션이 갱신되어 서블릿 종료 요청이 있을 경우 destroy()를 실행합니다.

Servlet을 구현 및 실행 시키는 방법

  1. web.xml 작성
  2. @WebServlet
  3. WebApplicationInitializer를 구현하기

모던 아키텍처에서는 내장 톰캣을 통해 jar로 배포하기 때문에 쓸 일이 잘 없습니다.

profile
always positive

0개의 댓글