WS(Web Server), WAS 란?

msung99·2022년 9월 22일
0
post-thumbnail

WS(Web Server), WAS(Web Server Application)

  • 클라이언트(Web, IOS) 와 통신하기 위한 방식

WS(Web Server)

  • 브라우저가 서버에 페이지를 요청할때, 맨 앞단에서 html, css 와 같은 정적인 내용에 대해 응답함

  • 하지만 동적인 처리가 요구된다면, WAS 에게 패스한다.
    => DB에 접근해야 하거나 뭔가 처리를 해야하는 동직인 컨텐츠인 경우

  • 종류 : apache, ngnix (apcache에 이어서, 요즘은 nginx 라는 웹서버가 더 빠른 속도를 무기로 절대강자 라이벌이 되었다고 한다!)

WAS(Web Server Application)

  • 동적인 내용을 처리한다. 즉, DB에 접근하거나 어떤 로직을 처리해야 할 경우 사용하는 것이다.

  • WAS가 동적인 처리를 완료하고 다시 WS 에게 결과를 전해주고, WS 가 다시 클라리언트에게 돌려주면 그제서야 우리는 원하는 결과물을 얻을 수 있다!

  • 종류 : tomcat, Spring, node, django, PHP

WAS 가 WS 의 기능을 포함한다?

  • 사실, WAS 는 WS(웹 서버) 의 기능도 가지고있다.
    => WAS 는 웹 서버와 웹 컨테이너의 결합이다. 앞에서 WAS 가 동적인 내용을 처리하는 일은 사실 웹 컨테이너가 다 하는 것이다.

그렇다면 왜 Apache(웹 서버) 를 WAS 와 함께 쓰는것일까?

cf) 정적인 데이터 처리를 위해서 굳이 Tomcat(WAS) 앞에 아파치(WS) 를 두는게 관리 부담과 불필요한 과부하만 생길 수 있다고 한다.

  1. 하나의 웹 서버에서 다른 언어의 어플리케이션을 함께 사용할 경우

    • 다른 기능이나 모듈을 사용할 필요가 있을 경우. 즉, 하나의 서버에서 PHP 어플리케이션과 JAVA 어플리케이션을 함께 사용해야 할 경우
  2. 특정 서버에서 에러/과부하가 발생할 경우 다른 서버가 정상 작동

  3. 보안을 강화할 경우 - 아파치(WS)에서 해킹 당해도 WAS 는 정상 작동


운영체제

  • OS : 사용자가 컴퓨터를 사용하기 위해 필요한 소프트웨어.
    우리가 일반적으로 컴퓨터를 사용하면서 실행한 모든 프로그램들은 운영채제에서 관리하고 제어한다.

  • OS 종류 : Window, Uni, Linux, MS-DOS 등

운영체제 사용 목적

요약 : 운영체제는 컴퓨터의 성능을 높이고(performance), 사용자에게 편의성 제공(convenience) 를 목적으로 하는 컴퓨터 하드웨어 관리 프로그램이다.

1) 컴퓨터의 하드웨어를 관리하는 것

=> 컴퓨터에는 수많은 하드웨어가 존재한다. CPU, 메모리, 디스크, 키보드, 마우스, 네트워크 등이 있으며 이를 잘 관리해줘야 컴퓨터를 효율적으로 관리할 수 있다. 운영체제의 성능이 좋을수록 컴퓨터의 성능 역시 좋아진다고 할 수 있다.

2) 사용자에게 편의를 제공하는 목적

=> 운영체제가 없다면 하드웨어에 관한 모든 관리를 사용자가 해야한다는 점과 함꼐 불편함을 걲을 수 있다.

운영체제의 구성

  • 커널(kernal) + 명령어 해석기(Command Interpreter, shell)

    • 커널 : 운영체제의 핵심. 운영체제가 수행하는 모든 것이 저장되어 있다.
    • 명령어 해석기 : 사용자가 커널(운영체제) 에 요청하는 명령어를 해석하여 커널에 요청하고 그 결과를 출력한다.
  • 사용자가 GUI 나 CLI 와 같은 방식으로 운영체제에 명령을 요청할 수 있다.
    ex. 현재 디렉토리의 파일 리스트 불러오기, 프로그램 실행하기, 디스크 용량 확인 등

운영체제의 위치

  • 사용자 프로그램(Application) 은 특정 운영체제에 맞춰서 만든다. 따라서 한 애플리케이션은 서로 다른 운영체제에서 수행할 수 없다. (하드웨어가 같은 것은 전혀 상관이 없다ㅠㅠ)
    예를들면 Windows 에서 수행하는 프로그램을 그대로 Linux 에 롬기면 수행되지 않는다.

위처럼 애플리케이션은 운영체제 위에서 수행된다. 즉, 하드웨어 자원을 직접적으로 사용하지 않고 운영체제가 제공하는 자원만을 사용할 수 있다.

운영체제의 기능

1) 프로세스, 메모리, 하드디스트 중 하드웨어 자원이 존재하고, 이를 효율적으로 사용하도록 한다
2) 자원 곤리를 위해 프로세스 관리, 메모리 관리, 디스크 관리, 네트워크, 보안 등 기능이 나눠져 있다
3) 애플리케이션들의 요청에 따라 각 기능들이 수행하며 적절히 자원을 분배한다.


  • OS 환경 : Ubuntu

CLI, GUI, HTTP

Interface(인터페이스)

  • 서로 다른 두 객체가 어떻게 서로 소통할 것인가의 이야기
  • 화면에 어떤 표시를 이용해서 사람이 어떻게 의사를 전달(클릭, 키보드 입력 등) 마련된 시스템
  • 종류 : CLI, GUI

CLI (Command Line Interface)

글자의 입출력을 통해 사용자와 컴퓨터 간에 소통하는 방식
(ex. 윈도우의 cmd, 리눅스의 터미널)

  • 명령어를 입력해서 파일을 열람하고, 복사, 수정, 삭제하는 등의 기능을 수행한다.
  • 화려한 화면이 없는만큼, 컴퓨터의 자원을 적게 사용한다.

예시) cd c:\user\hi\abcd.txt
=> abcd.txt 파일로 이동하기 위한 명령어로, 마우스가 있다면 편하게 이동하면 되지만 CLI 에서는 이렇게 글자를 타이핑 쳐야 한다는 불편함이 있지만 CLI 방식은 여전히 많이 사용된다. (컴퓨터 자원 절약이라는 장점때문에)


GUI (Graphical User Interface)

그래픽을 이용해 사용자와 소통하는 방식

  • 그래픽으로 전달되는 그림이나, 아이콘을 통해서 소통한다.
    ex. 마우스로 화면에 나오는 그림을을 끌어다놓거나, 클릭해서 컴퓨터와 소통
  • CLI 와 달리 진입장벽과 사용자 직관성 면에서 접근용이

HTTP (HyperText Transfer Protocal)

  • 클라이언트와 서버 사이에 이루어지는 요청/응답(request/resonse) 프로토콜

(cf. 통신 프로토콜 : 컴퓨터나 원거리 통신장비 사이에서 메시지를 주고받는 양식과 규칙의 체계)

  • HTTP 를 통해 전달되는 자료는 http: 로 시작하는 URL 로 조회할 수 있다.

  • HTTP 메서드 종류 : GET, POST, DELETE, PUT, PATCH 등

  • RestFul API 를 개발하여 클라이언트와 HTTP 통신을 한다. (일반 로컬환경에서는 rendering 하는 방식으로 HTTP 메서드 사용가능 )

profile
블로그 이전 : https://haon.blog

0개의 댓글