데이터를 주고 받는 주체 - '애플리케이션'

홍성민·2022년 9월 22일
0

network

목록 보기
3/3
post-thumbnail



🔥 INTRO


데이터를 주고 받는 주체는 주로 ‘애플리케이션’입니다. 애플리케이션을 동작하는 주체는 ‘클라이언트’와 ‘서버’로 분류할 수 있습니다. 클라이언트는 일반 PC나 스마트폰 등이고, 서버는 수많은 요청을 처리하는 고성능 컴퓨터입니다.




🔥 BODY


📌 클라이언트 - 서버 애플리케이션

클라이언트가 웹사이트를 볼 때, 웹브라우저가 동작하고 서버는 웹서버 애플리케이션이 작동하는데 이때 이 사이에서 데이터 통신이 일어납니다.
이 데이터 통신은 양방향으로 이루어지는데, 보통 애플리케이션에서 요청(request)를 보내면 웹서버 애플리케이션에서 응답(response)를 보내는 식입니다.
이처럼 클라이언트 컴퓨터에서 실행되는 클라이언트 서버 애플리케이션이라는 요청을 만들어 정보를 얻기 위해 원격 서버에 엑세스하는 소프트웨어의 한 부분을 ‘클라이언트 서버 애플리케이션’이라고 부릅니다.




📌 클라이언트 - 서버 애플리케이션 VS 웹 애플리케이션

우리가 주로 듣던 웹애플리케이션과 다른 클라이언트 서버 애플리케이션이라는 것이 나왔습니다. 이 둘의 차이점은 무엇일까요? 표를 통해 먼저 보겠습니다.


클라이언트-서버 애플리케이션웹 애플리케이션
개요클라이언트 측에서 실행되고
정보를 위해 원격 서버에 엑세스하고
그 서버와 붙어있는 데이터베이스를
활용할 수 있는 프로그램
웹 브라우저에서 모든것이
완전히 실행되는
응용 프로그램
설치사용자 인터페이스 또는
응용프로그램 설치 필수
웹브라우저
플랫폼프로그래밍 언어나
플랫폼에 종속적
웹브라우저만 필요하기때문에
플랫폼에 독립적
아키텍처2 Tier3 Tier
네트워크 영역주로 인트라넷인터넷
실행주로 .exe 로 실행웹 브라우저에서 실행




이제 클라이언트 서버 애플리케이션이 무엇인지 감이 오시나요?
exe파일이고 플랫폼에 따라 다를 수 있고 인트라넷에서 주로 사용하며 2티어 아키텍처를 따른다라는 것이 힌트입니다.




오래 전에는 PC에 애플리케이션(exe)을 설치하고 그것과 원격에 있는 공통 DB와 연결해서 사용했었습니다. 그래서 애플리케이션을 개발할 때 비주얼베이직이나 델파이 같은 개발도구로 애플리케이션을 만들었죠.
버전이 올라가면 사용자들에게 다시 설치파일을 배포해서 업데이트했습니다.
이런 환경을 클라이언트-서버라고 통칭했는데 아마도 웹과 비교해서 그렇게 부른 것 같습니다.

지금 웹 애플리케이션은 웹브라우저만 있으면 어디서나 사용가능하니까 클라이언트-서버 환경과는 차이가 크죠.


그럼 애플리케이션은 무조건 서버와 통신을 해야만 가능한걸까요?
서버와 통신하지 않고 데이터를 직접 주고받는 애플리케이션도 있는데,
이를 ‘피어투피어 애플리케이션’이라고 부릅니다.




📌 P2P(peer to peer) 어플리케이션


피어투피어 애플리케이션은 흔히 P2P 애플리케이션이라고 불립니다. (이하 P2P)
P2P는 인터넷에 연결된 다수의 사용자들이 중계기를 거치지 않고 다이렉트로 데이터를 주고 받는것입니다. 영어로 peer란 ‘동료’라는 뜻으로, 서로 대등한 입장에서 데이터를 주고받는다는 의미를 함축하고 있습니다. 클라이언트 - 서버 구조는 클라이언트가 서버에 데이터를 올리고 다른 클라이언트가 받아야 하는 구조이지만, P2P는 중앙 서버가 없기 때문에 동등한 위치로 데이터를 주고 받습니다. 피어투피어 애플리케이션의 예로는 실시간채팅, SNS, 메신저, 온라인 게임등이 있습니다.
블록체인의 경우도 P2P의 한 예로 볼 수 있습니다. 블록체인의 경우 탈중앙화가 핵심이어서 CS구조를 사용하지 않고 사람과 사람을 연결해주는 P2P 네트워크를 지향합니다.



REFERENCE

profile
모두의개발

0개의 댓글

관련 채용 정보