본문 바로가기
IT KNOWLEDGE

Client(클라이언트) / Server(서버)

by BTC_WOOK 2022. 4. 13.

안녕하세요. BTC-진상팀입니다.
이번엔 (https://btcd.tistory.com/9?category=927633)에 이어 클라이언트와 서버에 관해 포스팅하겠습니다.

클라이언트와 서버

  1. 클라이언트 / 서버 이해하기
  2. Web서버와 WAS 이해하기
  3. 정적 콘텐츠와 동적 콘텐츠 이해하기

1. 클라이언트 / 서버 이해하기

클라이언트 (Client)

  • 서비스를 사용하는 사용자 또는 사용자의 단말기를 의미합니다.

 

서버(Server)

  • 서비스를 제공하는 컴퓨터입니다.
  • 많은 클라이언트를 위해 존재하기 때문에 일반적으로 매우 큰 용량과 성능을 가지고 있습니다.
클라이언트는 서비스를 제공하는 서버에게 정보를 요청하여 응답받은 결과를 사용합니다

 

미들웨어

  • 미들웨어는 양 쪽을 연결하여 데이터를 주고받을 수 있도록 중간 역할을 하는 소프트웨어입니다.
  • 네트워크를 통해 연결된 여러 개의 컴퓨터에 있는 많은 프로세스들에게 어떤 서비스를 사용할 수 있도록 연결해주는 소프트웨어를 말합니다.
  • 3 계층(3 Tier) 클라이언트/서버 구조에서 미들웨어가 존재합니다. 여기서 ‘ / ’가 미들웨어라고 볼 수 있겠습니다. 여기서의 역할은 웹브라우저에서 데이터베이스로부터 데이터를 저장하거나 읽어올 수 있게 중간에서 도와줍니다.

2. Web서버와 WAS 이해하기

Web server 란?

  • 웹 브라우저와 같은 클라이언트로부터 HTTP 요청을 받아들이고 HTML 문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램입니다.
  • 웹 서버의 가장 중요한 기능은 클라이언트가 요청하는 HTML 문서나 가족 리소스를 전달하는 것입니다. (정적 페이지 처리)

웹 서버 소프트웨어 종류

웹 서버 소프트 웨어 종류에는 가장 많이 사용하는 Apache와 Nginx가 있습니다.
  • Apache
    • 요청 하나 당 프로세스가 처리하는 구조입니다.
    • 요청이 많을수록 CPU와 메모리 사용이 늘어 남으로 성능 저하가 있을 수도 있습니다.
  • Nginx
    • 보안과 속도를 최적화시키려는 노력에 탄생한 웹서버입니다
    • 규모가 작은 서비스이며 사용함에 있어 심플합니다.
    • 정적 데이터 처리가 많은 서비스에 적합합니다.
    • 모듈 개발이 어려우며 다양한 모듈이 없다는 것이 단점입니다.

 

Was server 란?

  • 일종의 미들웨어로 웹 클라이언트의 요청 중 웹 애플리케이션이 동작하도록 지원합니다 (동적 페이지 처리)
  • 프로그램 실행 환경, DB 접속 기능을 제공합니다.
  • 여러 개의 트랜잭션을 관리합니다.

와스 서버 종류 

  • apache project의 Tomcat
  • BEA사의 Web Logic
  • IBM사의 Web Spere

웹서버 vs WAS

  • was도 보통 자체적으로 웹서버 기능을 내장하고 있습니다. 현재는 was가 가지고 있는 웹서버도 정적인 콘텐츠를 처리하는 데 있어서 성능상 큰 차이가 없지만 규모가 커질수록 자원 이용의 효율성 및 장애 극복 배포 및 유지보수의 편의성을 위해 Web과 Was를 분리합니다.
  • 웹서버는 보통 정적 데이터를 웹브라우저에 전송하는 역할을 합니다.
  • was는 프로그램의 동적 데이터를 웹브라우저에 전송하는 역할을 합니다.

3. 정적 콘텐츠와 동적 콘텐츠 이해하기

정적(static)

정적웹페이지는 언제 접속해도 같은 응답을 보내줍니다.

  • 서버에 미리 저장된 파일이 그대로 전달되는 웹페이지입니다.
  • 서버는 사용자가 요청에 해당하는 저장된 웹 페이지를 보냅니다.
  • 사용자는 서버에 저장된 데이터가 변경되지 않는 한 고정된 웹 페이지를 보게 됩니다.
  • 요청에 대한 파일만 전송하기에 빠르고 웹서버만 구축하면 되기에 비용이 적게 듭니다.
  • 저장된 정보만 보여줄 수 있어 서비스는 한정적이고 작업이 모두 수동이라 관리가 힘들다는 단점이 있습니다.

동적(Dynamic)

웹 페이지에 대한 요청울 받고 추가적인 처리 과정이후 html 코드만 응답되기에 동적데이터는 보이지 않습니다.

  • 서버에 있는 데이터들을 스크립트에 의해 가공 처리한 후 생성되어 전달되는 웹페이지입니다.
  • 서버는 사용자의 요청을 해석하여 데이터를 가공한 후 생성되는 웹페이지를 보냅니다.
  • 사용자는 상황, 시간, 요청 등에 따라 달라지는 웹 페이지를 보게 됩니다.
  • 정적 페이지보다 서비스가 다양합니다. 또한 웹 사이트 구조에 따라 작업이 용이하기에 관리가 쉽습니다.
  • 사용자에게 웹페이지를 전달하기 전에 처리하는 작업이 필요 하기에 상대적으로 느리고 추가 비용이 든다는 단점이 있습니다.

 

출처

댓글