BAEKJH BE Developer

Client-Server Model

2020-10-30
BAEKJungHo

logo

클라이언트-서버 모델

클라이언트-서버 모델(Client-Server Model)은 다양한 환경의 사용자가 서로 통신을 하기 위해 사용되는 모델이다.

클라이언트 그룹은 서비스를 사용하는 그룹을 의미하며, 서버 그룹은 서비스를 제공하는 그룹을 나타낸다.

서버:클라이언트=응답:요청 이라고 생각하면된다.

풀 기반(pull-based) 방식

풀 기반(pull-based) 통신에서는 클라이언트가 서버로 정보를 요청하면, 서버가 클라이언트로 응답하는 형식을 말한다. 웹 사이트에서 이루어지는 대부분의 방식이 풀 방식이다. 클라이언트가 서버로 HTTP 요청을 보내면 서버는 적절한 데이터를 클라이언트에게 응답한다.

클라이언트가 어떤 정보를 로딩할지 결정하는 상황에서는 풀 기반 통신이 유용하다.

푸시 기반(push-based) 방식

푸시 기반(push-based) 통신은 리액티브(reactive) 또는 이벤트-주도(event-driven) 통신이라고 부른다. 푸시 기반 방식에서는 작성자(publisher)가 방출한 이벤트 스트림을 여러 구독자가 수신하는 형태를 말한다.

예를들어 내가 구독한 유튜브 채널에서 동영상이 업로드될때 해당 채널의 구독자들에게 알림이 가는 형식을 말한다. 이 형태를 pub-sub 형식이라고도 하며, 이러한 시스템을 개발하기 위해 사용되는 디자인 패턴에는 옵저버 패턴(observer pattern)이 있다.

푸시 기반 통신은 여러 컴포턴트 간에 다양한 이벤트의 의사소통이 발생하는 상황에서 유용하다.

예를 들어 주식 시장 거래 프로그램을 설계할 때 다양한 회사의 가격과 틱 정보가 필요할 때마다 요청하는 것이아니라 연속적으로 정보가 제공되어야 한다.

참고

Real-world Software Development


Next : OOP Intro

Comments

Index