1. 웹 개발의 이해 - WE/BE

박하린·2021년 4월 28일
0

💻 1.2 웹의 동작 (HTTP 프로토콜 이해)


인터넷의 이해

  • 물리적인 하나의 컴퓨터에는 여러개의 서버가 동작하는데 각각의 서버들은 포트라는 값으로 구분돼서 동작한다. - 인터넷(Internet)
    - TCP/IP 기반의 네트워크가 전세계적으로 확대되어 하나로 연결된 네트워크들의 네트워크 (네트워크의 결합체)

HTTP(Hypertext Transfer Protocol)

  • HTTP는 서버와 클라이언트가 인터넷상에서 데이터를 주고받기 위한 프로토콜(protocol)

HTTP 작동방식 - 무상태(Stateless) 프로토콜

  • 서버/클라이언트 모델을 따른다.
  • 장점
    - 불특정 다수를 대상으로 하는 서비스에는 적합
    - 클라이언트와 서버가 계속 연결된 형태가 아니기 때문에 클라이언트와 서버 간의 최대 연결 수보다 훨씬 많은 요청과 응답을 처리할 수 있다.
  • 단점
    - 클라이언트가 서버에 요청하고 서버가 다시 클라이언트한테 응답하는 과정이 일어나는데 이 응답을 하고 나면 바로 클라이언트와의 연결을 끊어버리기 때문에, 클라이언트의 이전 상황을 알 수 없다.
    - 이러한 특징 때문에 정보를 유지하기 위해 Cookie와 같은 기술이 등장

URL(Uniform Resource Locator)

  • 인터넷 상의 자원의 위치
  • 특정 웹 서버의 특정 파일에 접근하기 위한 경로 혹은 주소

⭐️ 웹의 동작 ⭐️

💻 1-5. browser에서의 웹개발


JavaScript 코드는 body 태그 닫히기 전에 위치하는 것이 렌더링을 방해하지 않아서 좋고,
css코드는 head 안에 위치해서 렌더링 처리 시에 브라우저가 더 빨리 참고할 수 있게 하는 것이 좋습니다.

💻 1-6. 웹서버


웹서버란?

  • 웹 서버 소프트웨어가 동작하는 컴퓨터를 말한다.
  • 기능 : 클라이언트가 요청하는 HTML문서나 각종 리소스를 전달하는 것
  • 웹 브라우저나 웹 크롤러가 요청하는 리소스는 컴퓨터에 저장된 정적(static)인 데이터나 동적인 결과가 될 수 있다.

웹 서버 소프트웨어의 종류

  • 가장 많이 사용하는 웹 서버는 Apache, Nginx, Microsoft IIS
  • Apache 웹 서버는 오픈소스 소프트웨어이며, 거의 대부분 운영체제에서 설치 및 사용 할 수 있다.
  • Nginix는 차세대 웹서버로 불리며 더 적은 자원으로 더 빠르게 데이터를 서비스하는 것을 목적으로 만들어진 서버, Apache와 마찬가지로 오픈소스 소프트웨어

💻 1-7. WAS


클라이언트/서버 구조

  • 클라이언트는 서비스를 제공하는 서버에게 정보를 요청하여 응답 받은 결과를 사용한다.

DBMS(DataBase Management System)

  • 다수의 사용자가 데이터베이스 내의 데이터에 접근할 수 있도록 해주는 소프트웨어

미들웨어 (MiddleWare)

  • 클라이언트 쪽에 비즈니스 로직이 많을 경우, 클라이언트 관리(배포 등)으로 인해 비용이 많이 발생하는 문제가 생길 수 있다.
  • 비즈니스 로직을 클라이언트 DBMS 사이의 미들웨어 서버에서 동작하도록 함으로써 클라이언트는 입력과 출력만 담당하도록 한다.

WAS(Web Application Server)

  • 웹에서 데이터를 입력하고 조회하는 등의 동적인 기능을 하기위해 등장
  • 일종의 미들웨어로 웹 클라이언트(보통 웹 브라우저)의 요청 중 웹 애플리케이션이 동작하도록 지원하는 목적을 가진다.
  • 중요한 기본 기능 세가지
    1️⃣ 프로그램 실행 환경과 데이터 베이스 접속 기능 제공
    2️⃣ 여러 개의 트랜잭션의 관리한다.
    3️⃣ 업무를 처리하는 비즈니스 로직을 수행한다.

웹 서버 vs WAS

  • WAS도 보통 자체적으로 웹 서버 기능을 내장하고 있다.
  • 현재는 WAS가 가지고 있는 웹 서버도 정적인 콘텐츠를 처리하는 데 있어서 성능상 큰 차이가 없다.
  • 규모가 커질수록 웹 서버와 WAS를 분리한다.
    - 자원 이용의 효율성 및 장애 극복, 배포 및 유지보수의 편의성을 위해 웹 서버와 WAS를 대체로 분리한다.
profile
깃허브: https://github.com/khakaa

0개의 댓글