개요
1990년대 초반 인터넷과 웹(Web: World Wide Web)이 신성처럼 등장하던 때가 있었습니다. 웹 프로그래밍에서 필수라고 여기는 자바언어(Java language)도 등장하기 시작하였죠. 그리고 1990년대 후반이 되면서 컴퓨팅 환경의 유행이 클라이언트/서버 방식(이하 C/S 방식)에서 웹 방식으로 본격적으로 변화하기 시작하였습니다. 그리고 2000년에 가까워지면서 닷컴 열풍이 일어나기도 하였습니다. 그렇다고 해서 C/S 방식 보다 웹 방식이 더 뛰어나다고 단정하는 것은 곤란합니다. 여기에서는 C/S 방식과 웹 방식의 차이에 대해서 세부적으로 살펴보고자 합니다.
웹 방식이 등장한 배경
C/S 방식이 한참이나 대중적으로 활용되는 1980년대 ~ 1990년대는 컴퓨팅 기술이 폭발적으로 성장하던 시기로 수많은 정보통신 관련 기업들 간의 기술 및 제품 경쟁이 치열하던 시기입니다. 특히, 개인용 컴퓨터(PC: Personal Computer)가 보편화 되기 시작하면서 이를 위한 컴퓨팅 장비들 뿐만 아니라, 운영체제, 네트워킹, 데이터베이스 등 다양한 분야에서 경쟁이 치열해지게 됩니다. 심지어 이 시대에는 너무나 많은 통신 프토로콜이 제안되면서 프로토콜 전쟁(Protocol War)의 시기라고도 합니다. 이러다 보니 C/S 방식을 활용하고는 있지만 구축된 시스템마다 제각각의 하드웨어, 소프트웨어를 적용하다 보니 상호운용성(Interoperability)에서 문제점이 등장하기 시작합니다.
따라서 수많은 중앙서버들이 인터넷 같은 동일한 네트워크에 연결되어 있더라도 단말기들이 원하는 자료에 접근하기가 어려운 환경이었습니다. 중앙서버마다 프로그램도 다르고, 사용되는 통신 프로토콜의 차이가 있습니다. 또한 데이터 포맷도 상이하다 보니 네트워크에 연결은 되어 있어도 공유하기 어려웠던 것이죠. 즉, 특정 시스템에 종속성(Dependency)이 생기는 것입니다.
웹 방식은 이러한 상호 배타적인 시스템 특성으로 인한 정보공유 및 활용의 제한성을 해결하기 위해 제안되었습니다. 정확한 시기를 말하자면 당시 CERN(Conseil Européen pour la Recherche Nucléaire)에서 근무하던 팀 버너스-리(Tim Berners-Lee)가 1989년에 Web을 고안하고, 1990년 WWW(World Wide Web)이라는 웹 브라우저는 세계 최초로 공개하면서 세상의 주목을 받으면서 오늘날에 이르게 되었습니다.) 살펴보면, 웹 방식이 등장한 배경은 컴퓨팅 환경 측면에서 살펴보면 과거 난립하고 있던 C/S 방식이 패쇄적인 구조를 가지고 있고 특정 시스템 기술에 의존성이 있는 문제에 대한 대안으로 등장한 것이라 할 수 있습니다.
웹 방식의 특징
클라이언트/서버 방식의 특징은 이전 게시물을 참조하시길 바라고 여기서는 웹 방식의 특징에 대해 살펴보겠습니다. 웹 방식은 엄밀하게 표현하는 C/S 방식의 한 유형이라고 할 수 있습니다. 웹 방식에서도 정보를 공유하기 위한 중앙서버(또는 웹서버)가 있고, 정보에 접근하기 위한 단말기들로 구성이 됩니다. 그러나 C/S 방식과 달리 웹 방식에서 중앙서버는 자신이 공유하고자 하는 정보를 저장해두고 사용자들이 접근하여 열람, 복사 등을 할 수 있게 하고 단말기는 특정 서버에 한정되지 않고 어떤 서버라도 내가 원하는 정보가 있다면 접근할 수 있습니다. 따라서 웹 방식은 HTML(Hyper Text Markup Language), HTTP(Hypyer Text Transfer Procotol), URL(Universal Resource Locator) 등 개방형 표준(Open standard)을 통하여 누구든지 인터넷에서 원하는 정보에 접근할 수 있도록 한 것 입니다.
클라이언트/서버 방식과 웹 방식의 비교
클라이언트/서버 방식과 웹 방식을 더 자세히 이해하기 위하여 몇 가지 항목으로 구분하여 비교해보겠습니다.
- 중앙서버 선택(Server selection): C/S 방식도 서비스를 제공하는 중앙서버에 연결하여 서비스를 제공받을 수 있습니다. 그러나 원하는 서버를 선택하기 위해서는 해당 서버에서 요구하는 클라이언트 프로그램을 통해서만 접근할 수 있습니다. 따라서 내가 다양한 서버에서 접속하여 여러가지 일을 해야한다면 서버마다 필요로 하는 프로그램을 설치해야만 서버를 선택할 수 있습니다. 그러나 웹 방식은 웹 브라우저(Web Browser)라는 하나의 프로그램 만으로 모든 서버에 접근할 수 있습니다. 서버를 선택하는 방법은 웹 브라우저의 주소입력 창에 원하는 URL 주소를 입력하기만 하면 됩니다. 예를 들어, 구글 서버에 접속하고 싶다면 www.google.com을, 네이버에 접속하고 싶다면 www.naver.com이라고 입력하면 됩니다.
- 컴퓨팅 파워(Computing power): 클라이언트/서버 방식과 웹 방식의 컴퓨팅 파워를 비교하기는 쉽지 않습니다. 두 컴퓨팅 환경마다 사용목적에 따라 시스템 구성과 활용에 차이가 발생하기 때문인데요. 아무래도 웹 방식은 자료검색, 전자상거래, 인터넷뱅킹은 비교적 서버에서 구동되는 서비스들이 많은 컴퓨팅을 요구하지는 않습니다. C/S 방식의 경우에는 단순 열람, 조회를 위한 경우도 있지만 분석형 업무를 구현하는 경우도 많이 있습니다. 그러나 동일한 서비스를 제공한다고 가정하여 바라본다면 웹 방식에서는 웹 브라우저만을 가지고 있고 화면 입출력에 필요한 요소까지 웹 서버에서 제공해야 하므로 웹 방식이 더 많은 컴퓨팅 파워가 필요할 수 있어 보입니다. 그러나 단정하여 비교하기 어려운 항목으로 보입니다.
- 프로그램 위치(Location of Program Installation): C/S 방식은 중앙서버와 사용자 컴퓨터 모두에 프로그램이 설치되어 운용되는데, 사용자 컴퓨터에는 입출력 화면과 기본 데이터를 가진 프로그램이 활용됩니다. 이에 반해 웹 방식에서는 모든 사용자 단말기에는 웹 브라우저만을 가지고 있고, 웹 서버에는 데이터, 업무로직, 입출력 화면 처리를 위한 기능이 포함된 프로그램이 설치되게 됩니다.
- 네트워크 성능(Network Capacity): 이것 또한C/S 방식과 웹 방식을 직접적인 비교는 어렵습니다. 그러나 동일 서비스를 구축하여 활용한다고 하면 웹 방식을 활용할 경우 입출력 화면 데이터까지 모두 네트워크 트래픽을 유발하게 되어 더 많은 네트워크 성능을 요구하게 됩니다.
- 상호운용성(Interoperability): 웹 방식이 뛰어난 기능을 보유합니다. 웹 방식에서는 서로 주고 받는 모든 데이터를 HTML 포맷을 기반으로 하기 때문에 어떤 웹 브라우저를 사용하더라도 동일한 화면을 볼 수 있습니다. 또한 어떤 하드웨어 장비를 이용하더라도 상관없이 웹 브라우저 내에서 정보교환이 이뤄지기 때문에 상호운용성 문제에서 장점을 가지게 됩니다. 그러나 C/S 방식은 시스템 마다 독자적인 프로토콜과 포맷을 활용하고 있어 호환성 문제가 발생할 수 있습니다.
- 유지보수(Maintenance): 클라이언트/서버 방식의 경우 단말기에 설치된 프로그램이 있어 프로그램을 수정/개선을 하게 되면 모든 단말기에 설치된 프로그램을 업데이트해야 하는 노력이 필요합니다. 이에 반하여 웹 방식은 데이터, 업무로직, 입출력화면 등이 웹 서버에만 위치하고 있어 웹 서버에서 수정을 하면 됩니다. 다만 웹 브라우저 자체의 성능을 바꿀 경우에는 해당 웹 브라우저를 사용하는 컴퓨터 모두에 대한 업데이트가 필요합니다. 그러나 통상적으로 웹 브라우저는 웹 서버를 운용하는 곳과 다른 곳에서 별도로 제공하고 있어 웹 서버를 담당하는 입장에서는 웹 표준에 맞추어 개발 및 관리유지만 하기만 하면 됩니다.
정리하며
웹 방식은 우리일상에서 너무나 보편적으로 활용하고 있습니다. 지금 보고 있는 내용도 웹브라우저에서 열람하고 있을 것입니다. 웹 방식은 인터넷 발전과 더불어 성장하고 발전했습니다. 개방성, 보편성, 확장성에서 장점을 가지고 있습니다. 그러나 여전히 기업이나 특정 조직에서는 자신들의 목적에 맞는 클라이언트/서버 방식을 많이 활용하고 있습니다. 예를 들어, 스마트폰에서 활용하는 앱스토어가 대표적인 클라이언트/서버 방식으로 운영됩니다. < 끝 >
'정보통신기술' 카테고리의 다른 글
웹(Web)의 개념과 관련 표준기술 (0) | 2023.04.23 |
---|---|
프로그래밍의 개념과 프로그래밍 언어의 종류, 방식 (0) | 2023.04.22 |
컴퓨터 네트워크와 TCP/IP (0) | 2023.04.21 |
DBMS 정의, 기능 그리고 유형 (0) | 2023.04.20 |
운영체제(Operating System) 정의, 역할 그리고 종류 (0) | 2023.04.20 |
컴퓨터 구조, 폰 노이만 (Von Neumann Architecture) 구조 (0) | 2023.04.19 |
메인프레임 방식 vs 클라이언트/서버 방식 (0) | 2023.04.17 |
컴퓨팅 환경의 발전: 메인프레임 환경부터 클라우드 컴퓨팅 환경까지 (0) | 2023.04.16 |
댓글