클라이언트가 웹사이트를 볼 때, 웹브라우저가 동작하고 서버는 웹서버 애플리케이션이 작동하는데 이때 이 사이에서 데이터 통신이 일어납니다.
이 데이터 통신은 양방향으로 이루어지는데, 보통 애플리케이션에서 요청(request)를 보내면 웹서버 애플리케이션에서 응답(response)를 보내는 식입니다.
이처럼 클라이언트 컴퓨터에서 실행되는 클라이언트 서버 애플리케이션이라는 요청을 만들어 정보를 얻기 위해 원격 서버에 엑세스하는 소프트웨어의 한 부분을 ‘클라이언트 서버 애플리케이션’이라고 부릅니다.
우리가 주로 듣던 웹애플리케이션과 다른 클라이언트 서버 애플리케이션이라는 것이 나왔습니다. 이 둘의 차이점은 무엇일까요? 표를 통해 먼저 보겠습니다.
클라이언트-서버 애플리케이션 | 웹 애플리케이션 | |
---|---|---|
개요 | 클라이언트 측에서 실행되고 정보를 위해 원격 서버에 엑세스하고 그 서버와 붙어있는 데이터베이스를 활용할 수 있는 프로그램 | 웹 브라우저에서 모든것이 완전히 실행되는 응용 프로그램 |
설치 | 사용자 인터페이스 또는 응용프로그램 설치 필수 | 웹브라우저 |
플랫폼 | 프로그래밍 언어나 플랫폼에 종속적 | 웹브라우저만 필요하기때문에 플랫폼에 독립적 |
아키텍처 | 2 Tier | 3 Tier |
네트워크 영역 | 주로 인트라넷 | 인터넷 |
실행 | 주로 .exe 로 실행 | 웹 브라우저에서 실행 |
이제 클라이언트 서버 애플리케이션이 무엇인지 감이 오시나요?
exe파일이고 플랫폼에 따라 다를 수 있고 인트라넷에서 주로 사용하며 2티어 아키텍처를 따른다라는 것이 힌트입니다.
오래 전에는 PC에 애플리케이션(exe)을 설치하고 그것과 원격에 있는 공통 DB와 연결해서 사용했었습니다. 그래서 애플리케이션을 개발할 때 비주얼베이직이나 델파이 같은 개발도구로 애플리케이션을 만들었죠.
버전이 올라가면 사용자들에게 다시 설치파일을 배포해서 업데이트했습니다.
이런 환경을 클라이언트-서버라고 통칭했는데 아마도 웹과 비교해서 그렇게 부른 것 같습니다.
지금 웹 애플리케이션은 웹브라우저만 있으면 어디서나 사용가능하니까 클라이언트-서버 환경과는 차이가 크죠.
그럼 애플리케이션은 무조건 서버와 통신을 해야만 가능한걸까요?
서버와 통신하지 않고 데이터를 직접 주고받는 애플리케이션도 있는데,
이를 ‘피어투피어 애플리케이션’이라고 부릅니다.