[웹 개발자를 위한 웹을 지탱하는 기술] - 웹이란 무엇인가?

김성혁·2022년 2월 21일
0
  • 간단히 접속할 수 있는 서비스와 그렇지 못한 서비스(쉽게 접근할 수 없거나 데이터를 활용하는 데 특수한 노하우가 필요한 웹 서비스)가 존재하고 그러한 서비스들의 차이는 어디에 있을까요?

    • 필자의 생각은 ‘웹다운 설계'에 있다.
    • 웹다운 설계란 무엇인가?
      • 다른 시스템과 간단히 연계할 수 있고, 장래에 확장하기도 쉬워집니다. 잘 설계된 웹 서비스는 웹 전체의 아키텍처와 조화를 이룹니다. 웹다운 좋은 설계를 하기 위해서는 웹의 아키텍처를 이해하고 의식하는 것이 중요합니다.
  • 본서의 목적

    • HTTP와 URI, 그리고 각종 하이퍼미디어 포맷의 스펙을 설명하는 것입니다. 스펙을 안다는 것은 좋은 웹 서비스의 설계로 향하는 첫걸음입니다. 단, 스펙을 아는 것만으로는 좋은 설계를 할 수 없습니다. 웹다움은 그런 스펙들이 가진 아키텍처적인 뒷받침에 기초하고 있기 때문입니다. 본서에서는 HTTP나 URI가 왜 이런 스펙을 가지게 되었는지에 대해서도, 웹 아키텍처의 관점에서 설명했습니다.
    • 웹 서비스의 구체적인 설계방법을 보여드리는 것입니다. 설계란 시스템 전체의 밸런스를 잡는 작업입니다. 시스템 전체에 대한 깊은 지식이 필요하기 때문에 설계 스킬을 하루아침에 몸에 익힐 수는 없습니다. 그래서 본서에서는 우선 좋은 설계란 무엇인가에 대해 생각할 수 있도록 하기 위해 구체적인 웹 서비스를 제재로 설계 프로세스와 사고방법을 설명했습니다.

웹이 어떤 곳에서 어떻게 이용되고 있는지, 웹을 특징짓는 2가지 기술적 측면을 소개하고, 그것들이 왜 웹에 있어서 중요한지 설명합니다.


👨🏻‍💻 모든 것의 기반인 웹

우리는 브라우저를 통해 인터넷 저편에 있는 웹서버와 통신을 합니다.

👨🏻‍💻 다양한 웹의 용도

웹의 용도를 3가지로 나누어 설명하겠습니다.

웹 사이트

포털 사이트, 검색 사이트, 기업의 PR 사이트 등 다양한 서비스를 제공하는 웹 사이트들이 존재합니다. 웹 사이트의 시스템 구성은 경우가 다양하지만 웹 사이트 내부가 어떤 구성을 하고 있는지 클라이언트가 의식하지 않아도 되는 점은 웹의 공통적인 특징입니다.

유저 인터페이스로서의 웹

라우터나 텔레비전, 하드 디스크 레코더, 프린터 등 네트워크에 접속하는 디바이스의 설정은 브라우저로 이루어지는 것이 적지 않습니다. 리모컨과 하드웨어의 한정된 버튼으로 설정하기보다는 PC의 키보드로 조작하는 편이 효율적이기 때문입니다.

  • 웹 기술이 다양하게 응용되는 이유?
    • HTML이 작성하기 편리하다는 점과 다양한 환경에서 브라우저를 이용할 수 있다는 점 때문입니다.

프로그램을 위한 API로서의 웹

유저 인터페이스로서의 웹은 인간 중심의 인터페이스였지만, API로서의 웹은 프로그램 중심의 인터페이스입니다.

API는 프로그램을 위한 인터페이스이기 때문에 데이터 포맷으로는 XML이나 JSON과 같이 프로그램에서 해석, 처리하기 쉬운 것을 이용합니다.

API로서의 웹은 ‘웹 서비스(Web Service)’라고도 불리는데, 이 말은 웹에서 제공하는 서비스나 사이트를 가리킬 때도 사용됩니다.

  • 본서에서는 특별한 단서를 두지 않는 한 프로그램용 인터페이스를 가리킬 때는 ‘웹 API’ 라는 말을 사용하고, ‘웹 서비스’ 라는 말은 웹에서 제공하는 서비스와 사이트를 가리킬 때 사용하겠습니다.

👨🏻‍💻 웹을 지탱하는 기술

HTTP, URI, HTML

웹을 지탱하는 가장 기본적인 기술은 HTTP(Hypertext Transfer Protocol)와 URI(Uniform Resource Identifier), 그리고 HTML(Hypertext Markup Language) 입니다.




URI는 정보를 가리키는 것이고, HTML은 그 정보를 표현하는 문서형식이고, HTTP는 그 정보들을 가져오거나 내보내는데 사용되는 프로토콜입니다.

HTTP, URI, HTML이 지탱하고 있는 웹을 정보 시스템으로 본다면, 하이퍼미디어 시스템(Hyermedia System)과 분산 시스템(Distributed System) 이라는 2가지 측면으로 볼 수 있습니다.

  • 하이퍼미디어
    • 텍스트와 이미지, 음성, 영상 등 다양한 미디어를 하이퍼링크(HyperLink)로 연결해 구성한 시스템
    • 책이나 영화는 선형적으로 처음부터 순서대로 읽거나 시청하는 데 비해, 하이퍼미디어는 비선형적으로 사용자가 스스로 링크를 선택하여 정보를 얻는 특징이 있습니다.
    • 하이퍼 링크 혹은 간단히 링크란, 하이퍼미디어에 있어서 정보끼리 연결하는 구조를 가리킵니다. 링크에 의해 사용자는 어떤 정보에서 다른 정보로 자유롭게 이동할 수 있게 됩니다.
    • 웹은 하이퍼미디어의 한 예

  • 분산 시스템
    • 한 대의 중앙 컴퓨터가 모든 것을 처리하는 형식을 ‘중앙 집중형 시스템(Centralized System)’이라고 부릅니다. 이와 반대로, 복수의 컴퓨터를 조합해 처리를 분산시키는 형식을 ‘분산 시스템'이라고 합니다.
    • 장점
      • 복수의 컴퓨터와 프로그램을 네트워크상에 분산시켜 배치함으로써, 한 대의 컴퓨터로 실행하는 것보다 효율적으로 작업을 처리할 수 있습니다.
      • 복수의 컴퓨터상에 존재하는 데이터를 일원적으로 다루거나, 한 대의 컴퓨터로는 다루기 힘든 방대한 정보를 조작할 수 있습니다.
      • 단일 컴퓨터로 구성된 중앙 집중형 시스템으로는 어려운 기능이나 성능을 실현할 수 있습니다.

웹은 전 서계에 배치된 서버에 전 서계의 브라우저가 액세스하는 분산 시스템입니다. 프로토콜이 심플하기 때문에 방대한 시스템을 실현할 수 있게 되었습니다.

궁금한 점

  • URI와 URL의 차이는 무엇인가?
    • URL은 네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약이다. 즉, 컴퓨터 네트워크와 검색 메커니즘에서의 위치를 지정하는, 웹 리소스에 대한 참조이다. 쉽게 말해, 웹 페이지를 찾기 위한 주소
    • URI는 인터넷에 있는 자원을 나타내는 유일한 주소이다. URI의 존재는 인터넷에서 요구되는 기본조건으로서 인터넷 프로토콜에 항상 붙어 다닌다.
    • 요즘은 Rewrite 등의 핸들러 때문에 URL을 자원의 위치를 표현하는 용어가 아닌 자원 식별자라고 부르기도 한다.

참고

통합 자원 식별자 - 위키백과, 우리 모두의 백과사전

URL - 위키백과, 우리 모두의 백과사전

URL과 URI의 의미와 차이점 (Difference between URL & URI)

0개의 댓글