크래프톤 정글(C언어 WEEK 5 ~ 8)

클라이언트 - 서버 모델

devkty 2025. 5. 6. 10:26
728x90

[참고 사이트]

https://velog.io/@bining/%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8%EC%99%80-%EC%84%9C%EB%B2%84

모든 네트워크 응용 프로그램은 해당 모델을 기초하고 있다. 한 개의 서버에서 프로세스와 한 개 이상의 클라이언트 프로세스로 구성된다.
서버는 일부 리소스를 관리하고, 이 리소스를 조작해서 클라이언트를 위한 일부 서비스를 제공한다.
예시로 FTP 서버는 클라이언트를 위해 저장하고 읽어오는 디스크 파일들을 관리한다.

근본적인 연산은 트랜잭션으로 이루어지며 네 단계로 표현된다.

  1. 클라이언트가 서비스 필요시, 한 개의 request를 서버에 보내는 것으로 트랜잭션을 개시한다.
    ex) 웹 브라우저가 파일을 필요로 할 시, 웹 서버로 요청을 보낸다.
  2. 서버는 요청을 받고, 해석, 자신의 자원들을 적절한 방법으로 조작한다.
    ex) 웹 서버가 브라운저로부터 요청을 받을 때, 디스크 파일을 읽는다.
  3. 서버는 response를 클라이언트로 보내고, 그 후에 다음 요청을 기다린다.
    ex) 웹 서버는 이 파일을 다시 클라이언트로 보낸다.
  4. 클라이언트는 응답을 받고 이것을 처리한다.
    ex) 웹 브라운저가 서버로부터 페이지를 한 개 받은 후, 이것을 스크린에 디스플레이한다.

클라이언트와 서버는 프로세스이며, 컨텍스트에서 불린 것처럼 머신이나 호스트는 아니라는 것을 인식하는 것이 중요합니다. 한 개의 호스트는 서로 다른 많은 클라이언트와 서버를 동시에 실행할 수 있으며, 클라이언트와 서버 트랜잭션은 동일하거나 다른 호스트에 존재할 수 있습니다.

728x90