Full Stack 개발

웹서비스의 이해

데이터_박과장 2023. 10. 8. 23:07

서버와 클라이언트

 

네트워크에서 서버와 클라이언트 역할은 데이터를 주고 받는 컴퓨터의 역할을 나타냅니다. 서버는 데이터나 서비스를 제공하며, 클라이언트는 이 서비스를 요청하고 받는 역할을 합니다.

서버와 클라이언트의 역할은 컴퓨터에 설치된 애플리케이션에 의해 결정됩니다. 즉, 어떤 컴퓨터가 서버가 되고 어떤 컴퓨터가 클라이언트가 되는지는 그 컴퓨터에 설치된 애플리케이션에 따라 결정됩니다. 예를 들어, 웹 서비스를 제공하는 애플리케이션이 설치된 컴퓨터는 서버가 되고, 웹 브라우저와 같은 애플리케이션을 사용하는 컴퓨터는 클라이언트가 됩니다.

 


서버와 클라이언트 간에 데이터를 주고 받을 때는 특정한 규칙이나 프로토콜을 따라야 합니다. 이러한 프로토콜을 준수하면 컴퓨터의 종류나 사양과는 관계없이 데이터를 주고 받을 수 있습니다. 또한 서버와 클라이언트 역할은 컴퓨터의 성능과 상관없이 애플리케이션의 역할에 따라 결정됩니다. 따라서 개인 컴퓨터도 서버 역할을 할 수 있지만, 안정적인 서비스를 제공하려면 일정한 환경과 성능을 갖춘 컴퓨터가 필요합니다.

서버 클라이언트 구조는 많은 사용자가 공동으로 사용하는 데이터를 중앙 서버에 저장하고 관리하여 동시적인 요청을 효율적으로 처리하는 방식입니다. 이 구조는 전 세계의 네트워크가 연결된 인터넷의 기반이며, 대표적인 서비스 중 하나인 월드 와이드 웹도 서버 클라이언트 구조를 기반으로 합니다.

마지막으로, 플랫폼에 따라 실행 가능한 애플리케이션을 결정하는 것은 해당 애플리케이션을 개발한 개발자와 플랫폼의 운영체제입니다. 서로 다른 플랫폼에서 실행 가능한 크로스 플랫폼 애플리케이션을 만들 수 있는 도구들도 있으며, 이를 통해 여러 플랫폼에서 동일한 서비스를 제공할 수 있습니다.

 

네트워크를 통해 데이터를 주고 받는 주체는 애플리케이션입니다. 컴퓨터와 애플리케이션은 종종 혼용되어 사용되며, 특정 상황에서 컴퓨터와 애플리케이션을 명확히 구분해야 할 때는 서버 컴퓨터, 클라이언트 컴퓨터, 서버 애플리케이션, 클라이언트 애플리케이션 등으로 표기합니다.

서버 애플리케이션은 다양한 종류가 있으며, 예를 들어 이메일 서비스, 파일 전송 서비스, 원격 제어 서비스, 온라인 게임 서비스, 웹 서비스 등이 있습니다. 각 서버 애플리케이션은 특정한 역할과 기능을 수행하며, 사용자는 클라이언트 애플리케이션을 통해 서버 애플리케이션과 데이터를 주고 받습니다.

 


웹 서비스의 경우, 웹 서버는 웹페이지를 저장하고 클라이언트는 웹 브라우저를 통해 웹 서버의 웹페이지를 요청하고 표시합니다. 웹 브라우저는 다양한 종류로 존재하며, 대표적으로 파이어폭스, 크롬, 인터넷 익스플로러/에지, 사파리 등이 있습니다.

이러한 애플리케이션과 서버 간의 통신을 통해 인터넷을 통해 정보를 검색하고 서비스를 이용할 수 있게 됩니다.

 

인터넷 서비스의 웹 서비스화는 다음과 같은 이유로 발전해왔습니다:

 

애플리케이션 서버 개발과 웹 애플리케이션:

  1. 웹 서버는 웹페이지를 제공하는 역할에서 시작되었지만, 점차 다양한 기능을 제공하기 시작했습니다.
  2. 검색 서비스, 온라인 쇼핑, 이메일, 온라인 게임, SNS 등의 서비스를 웹페이지를 통해 제공하기 위해 웹 애플리케이션 서버(WAS)가 개발되었습니다.
  3. WAS는 사용자 요구에 따라 데이터를 가공하고 다른 서버와 상호작용하여 웹페이지를 동적으로 생성합니다.
  4. 이로써 다양한 서비스의 기능을 구현할 수 있으며, 사용자마다 개인화된 내용을 표시하는 것도 가능해졌습니다.


웹 서비스의 통합:

  1. 과거에는 메일 클라이언트와 같은 전용 애플리케이션을 사용하여 각각의 서비스에 접속했습니다.
  2. 하지만 현재는 다양한 서비스가 웹 기반으로 제공되어 웹 브라우저만으로 Gmail, 네이버 메일, SNS 등을 이용할 수 있게 되었습니다.
  3. 이로써 사용자는 특정 클라이언트 애플리케이션을 설치할 필요 없이 웹 브라우저만으로 모든 서비스를 이용할 수 있게 되었습니다.
  4. 인터넷 서비스의 웹 서비스화는 다양한 서비스를 더 편리하게 이용할 수 있도록 하며, 웹 애플리케이션 서버를 통해 동적이고 개인화된 서비스를 제공할 수 있는 기반을 마련하였습니다.

 

웹 애플리케이션과 웹 브라우저의 발전, 그리고 웹의 플랫폼적 특성에 대한 내용을 다시 요약해보겠습니다.

 

웹 애플리케이션 (Web Application):

  1. 웹 애플리케이션은 사용자가 웹 브라우저를 통해 다양한 기능을 이용할 수 있게 하는 애플리케이션입니다.
  2. 초기 웹 서비스는 획일화되고 일방적인 정보를 담은 웹사이트 형태였지만, 웹 애플리케이션은 사용자와 상호작용하며 개인화된 서비스를 제공합니다.
  3. 웹 앱은 데스크톱 애플리케이션 및 모바일 앱과 유사한 기능을 제공하며 웹 브라우저를 통해 접근할 수 있습니다.

 

웹 브라우저의 발전과 사용자 경험의 향상:

  1. 초기 웹 브라우저는 웹페이지를 단순히 표시하는 역할만 수행했지만, 기술의 발전으로 웹 브라우저는 웹 애플리케이션의 다양한 기능을 실행할 수 있게 되었습니다.
  2. 예를 들어, 구글 스프레드시트와 같은 웹 애플리케이션은 데스크톱 소프트웨어와 유사한 기능을 제공하며 웹 브라우저 상에서 실행됩니다.
  3. 웹 오피스(Web Office)와 같이 온라인으로 웹 브라우저에서 오피스 프로그램을 사용할 수 있는 서비스도 등장했습니다.


플랫폼으로서의 웹:

  1. 웹은 인터넷을 통해 다양한 컴퓨터와 네트워크 장비를 연결하는 네트워크로서, 표준화된 프로토콜을 통해 데이터 교환을 지원합니다.
  2. 웹은 다양한 플랫폼에서 동작할 수 있는 환경을 제공하며, 웹 애플리케이션은 웹 브라우저를 통해 실행되므로 다양한 운영 체제에서 동작합니다.
  3. 이로 인해 웹 개발자는 크로스 플랫폼 문제를 걱정하지 않고 모든 컴퓨터에서 이용 가능한 서비스를 만들 수 있게 되었습니다.
  4. 웹 애플리케이션과 웹 브라우저의 진화는 사용자에게 더 풍부한 기능과 편의성을 제공하며, 웹은 플랫폼으로서의 역할을 확대하여 다양한 환경에서 웹 기반의 서비스를 이용할 수 있게 하였습니다.

위와 같은 변화로 웹 서비스는 더욱 빠르고 쉽게, 적은 비용으로, 그리고 더욱 유연한 서비스로 발전했습니다. 현재까지는 웹 서비스가 워드프로세서와 이미지 에디터 같은 전통적인 데스크톱 소프트웨어를 웹 기반으로 대체하고 있으며, 기업의 내부 업무 시스템부터 클라우드 컴퓨팅과 같은 인프라 서비스까지 모든 것이 웹 서비스로 제공되고 있습니다. 이로써 우리가 인터넷을 통해 접하는 대부분의 서비스가 웹 서비스로 제공되고 있다고 말할 수 있습니다.

이러한 변화는 웹 서비스가 웹 2.0이라고 알려진 개념으로 진화함을 나타냅니다. 웹 2.0은 웹 페이지를 단순한 정보 제공 도구에서 벗어나, 데스크톱 애플리케이션과 유사한 응용 소프트웨어를 제공하는 플랫폼으로 성장한 현상을 나타냅니다.

이러한 변화로 웹 애플리케이션의 동작과 개발 과정을 이해하는 것은 테크 스타트업 창업자에게 중요한 역할을 합니다. 이해를 바탕으로 다양한 아이디어를 실제 IT 서비스나 제품으로 구현할 수 있게 됩니다.

 

'Full Stack 개발' 카테고리의 다른 글

웹 어플리케이션 개발  (0) 2023.10.09
네트워크의 이해-2  (0) 2023.10.08
네트워크 용어정리  (0) 2023.10.08
네트워크의 이해-1  (0) 2023.10.08
개발관련 기본 지식 정리  (0) 2023.10.08