본문 바로가기

[네트워크 기초]

클라이언트와 서버

1. 클라이언트-서버 구조란?

서버-클라이언트

 

 서버?

 여러개의 클라이언트에게 서비스를 제공하는 소프트웨어가 실행되는 컴퓨터를 말한다.

 

 

 클라이언트?

 서버에 요청을 보내고 응답을 받는 역할을 말한다.

 

 

서버와 클라이언트로 하는것?

클라이언트는 서버에 데이터를 요청(Request)하고 응답(Response)을 받는다. 서버는 클라이언트로부터 받은 요청을 받아서 비즈니스 로직을 수행하고, 클라이언트에게 응답을 내려준다.

 

2-Tier 아키텍처(구조)

2-Tier 아키텍처 예시

위 그림과 같이 리소스가 존재하는 곳과 리소스를 사용하는 곳을 분리시킨것을 2- Tier 아키텍처라고한다.

 

 

2.  웹 어플리케이션 서버와 게임 서버의 공통점과 차이점

웹 서버? 애플리케이션 서버?

웹 서버 및 애플리케이션 서버는 인터넷 상에서 데이터와 서비스를 교환할 수 있는 기술을 의미한다. 웹 사이트 또는 애플리케이션을 방문하면 브라우저(클라이언트)가 원격 서버에 데이터를 요청하고 응답을 표시한다. 웹 서버는 클라이언트 요청에 응답하여 이미지, 파일, 텍스트와 같은 정적 데이터를 제공하는 소프트웨어 구성 요소이다. 애플리케이션 서버는 비즈니스 로직을 추가하여 웹 서버의 응답을 계산한다.

 

웹 서버 작동 방식

1. 브라우저는 URL을 사용하여 서버의 IP 주소를 찾는다.

2. 브라우저는 정보에 대한 HTTP 요청을 보낸다.

3. 웹 서버는 데이터베이스 서버와 통신하여 관련 데이터를 찾는다.

4. 웹 서버는 HTTP 응답으로 HTML 페이지, 이미지, 비디오 또는 파일과 같은 정적 콘텐츠를 브라우저에 반환한다.

 

블로그, 기사와 같은 정적 콘텐츠는 웹 서버에서 실행할 수 있다.

 

어플리케이션 서버 작동 방식

1. 브라우저는 URL을 사용하여 서버의 IP 주소를 찾는다.

2. 브라우저는 정보에 대한 HTTP 요청을 보낸다.

3. 웹 서버는 요청을 애플리케이션 서버로 전송한다.

4. 애플리케이션 서버는 비즈니스 로직을 적용하고 다른 서버 및 서드 파티 시스템과 통신하여 요청을 수행한다.

5. 애플리케이션 서버는 새 HTML 페이지를 렌더링하고 이를 응답으로 웹 서버에 반환한다.

6. 웹 서버는 브라우저에 응답을 반환한다.

 

전자 상거래 웹 사이트, 게임 서버 등 동적인 콘텐츠를 포함할 경우, 애플리케이션 서버가 필요하다.

 

주요 차이점

1. 사용되는 프로토콜

 

웹 서버에 사용되는 기본 프로토콜은 HTTP 프로토콜이다. 애플리케이션 서버는 웹 서버에 사용되는 프로토콜 외에도 추가 통신 프로토콜을 사용하여 다른 소프트웨어 구성 요소와 통신한다.

 

2. 콘텐츠 유형

 

웹 서버는 대부분 정적 콘텐츠를 제공한다. 정적 콘텐츠란 전송 전에 서버에서 수정하거나 처리할 필요가 없는 단순한 콘텐츠를 의미한다. 이미지, 문서, HTML파일과 같은 것이 있다.

 

애플리케이션 서버는 대부분 동적 콘텐츠를 제공한다. 동적 콘텐츠란 사용자가 콘텐츠와 상호 작용하는 방식에 따라 변경되는 복잡한 콘텐츠를 의미한다. 게임에서 상시 변하는 플레이어의 좌표, 동적으로 생성되는 보고서, 데이터베이스 결과와 같은 것들이 있다.

 

3. 멀티스레딩

 

대부분의 웹 서버는 멀티스레딩을 지원하지 않는다. 웹 서버는 각각의 새 연결 요청을 대기열에 배치하고 이벤트 루프를 사용하여 대기열에서 새로 들어오고 나가는 요청을 모니터링 한다.

 

애플리케이션 서버는 멀티스레딩을 사용하여 높은 확장성과 효율성을 제공한다. 요청에 외부 리소스가 필요한 경우 애플리케이션 서버는 별도의 스레드를 사용하여 이러한 상호 작용을 처리한다. 여러 스레드를 한 번에 처리하여 많은 클라이언트 상호 작용을 병렬로 처리할 수 있다.