안녕하세요. BTC-진상팀입니다.
이번엔 (https://btcd.tistory.com/9?category=927633)에 이어 클라이언트와 서버에 관해 포스팅하겠습니다.
클라이언트와 서버
- 클라이언트 / 서버 이해하기
- Web서버와 WAS 이해하기
- 정적 콘텐츠와 동적 콘텐츠 이해하기
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)
- 서버에 있는 데이터들을 스크립트에 의해 가공 처리한 후 생성되어 전달되는 웹페이지입니다.
- 서버는 사용자의 요청을 해석하여 데이터를 가공한 후 생성되는 웹페이지를 보냅니다.
- 사용자는 상황, 시간, 요청 등에 따라 달라지는 웹 페이지를 보게 됩니다.
- 정적 페이지보다 서비스가 다양합니다. 또한 웹 사이트 구조에 따라 작업이 용이하기에 관리가 쉽습니다.
- 사용자에게 웹페이지를 전달하기 전에 처리하는 작업이 필요 하기에 상대적으로 느리고 추가 비용이 든다는 단점이 있습니다.
출처
'IT KNOWLEDGE' 카테고리의 다른 글
오픈소스 활용하기 (2) - Apache (0) | 2022.04.15 |
---|---|
기술자 와 선정자 관점에서 보는 IT infra (0) | 2022.04.14 |
Azure자격증에 대해 알아보자! (0) | 2022.04.12 |
공공기관 클라우드 전환 사업 소개 (0) | 2022.04.07 |
IT infra와 infra engineer (0) | 2022.04.07 |
댓글