• 모닥위키모닥위키
  • 모닥위키
위키
  • 임의문서
  • 주간인기
  • 목록
    AAAdddvvveeerrrtttiiissseeemmmeeennntttAdvertisement

    © 2025 modak.wiki All rights reserved.

      www란 무엇인가?

      www에 대해서 정리한 글입니다.

      컴퓨터/IT역사
      lu

      luasenvy (luasenvy)

      CC BY 4.0 국제규약

      www와 w3c

      www는 월드 와이드 웹(World Wide Web)의 앞 글자만 딴 약어이다. 인터넷 홈페이지등으로 접속할 때 흔히 접하고 일명 "떠떠떠" 또는 "따따따" 라고 말하기도 한다. 월드 와이드 웹은 웹 브라우저를 통하여 접근할 수 있다. 웹 페이지나 접근방식을 말 한다기보다는 수 많은 웹 페이지들이 거미줄처럼 서로를 복잡하게 링크하는 형태를 나타낸다. 국내외 모두 월드 와이드 웹이라는 딱딱하고 긴 단어보다는 "인터넷"이라는 단어가 더 흔히 사용되며 www는 도메인에서 홈페이지를 나타내는 관용어로 더 많이 사용되고 있다.

      www를 개발자의 시선으로 접하다보면 w3c라는 조직을 자주 만나게 된다. 월드 와이드 웹 컨소시엄(World Wide Web Consortium)의 축약어로 월드 와이드 웹을 위한 표준을 개발하고 장려하는 조직이다. 팀 버너스 리를 중심으로 1994년 10월에 설립되었다.

      영어권에서는 글자가 많은 단어는 생략하고 글자 개수로 쓰는 경우가 종종 있다. World Wide Web Consortium을 앞 글자만 따서 wwwc 축약하고 이 안에서도 w가 3개 반복되므로 w3이라고 한 번 더 축약한 것이다. 반복되는 단어만 축약하는 것은 아니고 글자가 길 경우에도 사용한다. 같은 용례로 internationalization을 i18n이라고 축약하는 것을 들 수 있는데 국제화, 즉 다국어 지원을 나타낸다.

      팀 버너스 리1는 웹의 아버지로 불리우는 인물로 1989년 글로벌 하이퍼텍스트 프로젝트를 제안하고 월드 와이드 웹의 하이퍼 텍스트 시스템을 고안/개발했다. URL, HTTP, HTML 최초 설계와 구현도 CERN 시절에 동료였던 로베르 카이오 등과 함께 그가 주도 하였다.

      하이퍼 텍스트

      hypertext.webp

      hypertext.webp

      hyper의 어원은 그리스어 Huper인데 '뛰어넘다', '저 너머의'라는 의미를 가진다. 하이퍼 텍스트를 굳이 번역하자면 텍스트 저너머로 또는 초월 텍스트 정도로 할 수 있겠다. 말 그대로 본문을 뛰어넘어 다른 본문으로 이동할 수 있는 시스템을 일컫는다.

      시스템명에서 알려주듯이 가장 두드러지는 특징은 하나의 하이퍼텍스트 문서 안에서 사용자는 하이퍼링크를 통해 다른 하이퍼텍스트 문서로 이동할 수 있다. 그래서 <a href="#" />처럼 anchor 태그의 다른 페이지를 가리키는 속성명이 Hyper Reference의 축약어인 'href'가 된 것이다.

      마크업 언어

      어릴적 받아쓰기 시험에서 띄어쓰기를 틀려 위쪽에 체크표시를 받아본 기억이 있을 것이다. 마크업 언어는 이런 "밑줄쫙, 돼지꼬리 땡땡"과 같은 교정부호를 가리키는 기호를 말한다. 문서의 부가적인 정보들로써 활용되는데 전산용어로 찾아보자면 메타데이터라 할 수 있겠다.

      당시 하이퍼텍스트는 지금처럼 애니메이션이나 이미지, 동영상이 넘치는 곳이 아니었다. 문서라고 한다면 글자가 빽빽한 것들이 대부분이었고 주 목적도 사용자 설명서와 같은 매뉴얼을 게시하기 위해서였다. 때문에 하이퍼 텍스트는 말 그대로 책의 한 쪽(페이지)을 나타내기 위한 방법으로 고안되었고 자연스럽게 원고를 교정하거나 문서의 구조를 나타낼 수 있는 방법을 찾았을 거라고 짐작해볼 수 있다.

      이렇게 채택된 마크업 언어는 하이퍼 텍스트를 표현하기 위해 고도화되면서 HTML(Hyper Text Markup Language)이라는 이름을 가지게 되었다. 사실 태그라고 하는 것은 원래 텍스트와는 별개로 교정부호와 주석을 표현하기 위한 것이었으나 용도가 점차 확장되어 문서의 구조를 표현하는 역할까지 맡게 된 것이다. HTML이라는 것도 원래 있어서 사용된 것이 아니라 발전해온 것이다.

      Generalized Markup Language

      :h1 id='recipe'.Chapter 1: 개꿀맛 라면 레시피
      :ol.
      :li.550ml 물을 끓인다.
      :li.스프를 먼저 푼다.
      :li.물이 끓으면 면과 건더기 스프를 넣는다.
      :li.알맞게 익으면 완성
      

      줄여서 GML이라고 불리우는 마크업 언어로 IBM에서 1960년대 말에 개발됐다. 현재까지도 HTML에서 사용되는 익숙한 태그명들이 보이지만 표현식이 우리가 아는 XML의 형태와는 전혀 다르다. XML이 나오기도 한 참 전에 이미 문서를 표현하기 위한 여러 시도들이 있었다.2

      Standard Generalized Markup Language

      <!doctype recipe system "recipe.dtd">
      <recipe>
        <title>Chapter 1: 개꿀맛 라면 레시피</title>
        <comment>맛있게 라면을 만드는 방법을 정리한 그 첫 번째 장</comment>
        <ingredients>
          <ingredient quant='550' ml>물
          <ingredient quant='1' ea>분말 스프
          <ingredient quant='1' ea>건더기 스프
          <ingredient quant='1' ea>면
        </ingredients>
        <method>
          <list>
            <item>550ml 물을 끓인다.
            <item>스프를 먼저 푼다.
            <item>물이 끓으면 면과 건더기 스프를 넣는다.
            <item>알맞게 익으면 완성
          </list>
        </method>
        <source>봉지 뒷면 조리법</source>
      </recipe>
      

      SGML은 GML의 후속으로 ISO 표준이다. 많이 익숙한 방식으로 변모한 것을 확인할 수 있지만 닫는 태그가 없거나 설정을 통해서 꺽쇠 괄호를 생략할 수도 있는 등 과도기적인 모습을 많이 가지고 있다. 너무 복잡해서 범용적으로 사용되기는 힘들었다고 한다.3

      Hyper Text Markup Language

      웹 페이지에 흔히 사용되는 HTML은 제목, 단락, 목록등과 같은 본문을 위한 구조적 의미와 함께 인용, 링크등을 제공한다. 또한, 이미지와 객체를 내장하여 사용자 대화형 양식을 작성할 수 있으며 외관과 배치를 정의하는 CSS와 스크립트를 내장하거나 외부에서 불러올 수 있다. 팀 버너스 리가 HTML의 원형인 '인콰이어'를 제안하였고 1990년 말에 HTML을 명시하고 브라우저와 서버 소프트웨어를 작성했다. 이때 SGML의 영향을 강하게 받았다.4

      eXtensible Markup Language

      <?xml version="1.0" encoding="UTF-8" ?>
      <!DOCTYPE Recipe SYSTEM "recipe.dtd">
      <Recipe>
        <title>개꿀맛 라면 레시피</title>
        <list>
          <item>550ml 물을 끓인다.</item>
          <item>스프를 먼저 푼다.</item>
          <item>물이 끓으면 면과 건더기 스프를 넣는다.</item>
          <item>알맞게 익으면 완성</item>
        </list>
      </Recipe>
      

      XML은 SGML의 단순화된 부분집합으로 구현되어 많은 종류의 데이터들을 기술하는 데 사용된다. 주로 다른 종류의 시스템과 데이터를 통신하는데 사용되었으며 특히 인터넷에 연결된 시스템끼리 데이터를 쉽게 교환하여 HTML의 한계를 극복할 목적으로 만들어졌다.5

      XHTML

      XHTML은 HTML과 동등한 표현 능력을 지닌 XML 마크업 언어로 HTML보다 엄격한 문법을 가진다. HTML이 SGML의 응용인 것에 반해 SGML의 제한된 부분집합에 XML을 응용한 것이다. XHTML 문서는 하나의 XML 문서로 취급되어 문법적으로 정확해야하고 표준 XML 라이브러리를 이용한 자동화된 처리가 가능하다.6

      많은 사람들이 HTML의 최신버전으로 보고 있지만 두개는 별개의 표준이며 W3C는 지속적으로 웹 출판에서 XHTML 1.1, XHTML 1.0, HTML 4.01을 이용하도록 권장한다. HTML에서 XHTML으로의 변화는 큰 의미가 없을 수도 있지만 '완전한 XML 문서'라는 주된 목적을 가질 수 있다.

      HTML5

      HTML4와의 차이점7을 한 번 읽어보는 것을 추천한다. 비디오, 오디오 등 다양한 부가기능과 최신 멀티미디어 콘텐츠를 ActiveX 없이(Non-ActiveX) 브라우저에서 볼 수 있게 하는 것을 목적으로 한다. 또한, 장치 독립적으로 구성하여 모바일이나 기타 장치 환경에서 호환이 가능하도록 하기 위한 목적이 있다.

      HTML vs XHTML vs HTML5

      사용자 환경에 가장 알맞는 기술을 적용하면 된다. 아주 제한된 환경이 아니라면 사용자는 최신 브라우저를 사용할 탠데 대부분의 최신 브라우저는 HTML5를 적용하여 구현하는 것이 좋다. 시간이 흐르면서 생명주기가 끝난 오래된 기능들이 삭제되거나 시대에 맞춰 나오는 좋은 기능들을 쓰지 않는 것은 자원낭비다. W3C가 다른 표준안을 공표한다면 그때가서 생각해봐도 될 일이다.

      마크다운 언어

      markdown.md
      이 글도 마크다운으로 작성되고 HTML로 화면에 표현되고 있다.
      

      마크'업'이라는 이름을 보면 눈치챘을 수 있겠지만 마크'다운'이라는 언어도 존재한다. 마크업 언어가 문서를 어떻게 정의할 것인지를 목적으로 한다면 마크다운 언어는 마크업 언어를 어떻게 쉽게 표현할 것인가를 목적으로 한다. 이 글도 마크다운으로 작성되고 HTML로 화면에 표현되고 있다. 예를들어 <strong>굵게</strong> 라고 마크업해야 하는 구문을 **굵게**처럼 간단한 축약형으로 표현한다.

      마크다운은 너무 방대해진 마크업 언어의 사용상 어려움을 간결하게 표현하여 일반인들도 단기간내에 쉽게 배우고 쓸 수 있도록 돕는다. 브라우저는 HTML만을 해석할 수 있기 때문에 마크다운을 화면에 표시하기 위해서는 마크다운을 마크업으로 변환하는 추가적인 단계를 거친다. 이 작업을 수행할 엔진이 브라우저에는 없기 때문에 보통 서버나 브라우저의 자바스크립트로 수행한다.

      추가적인 용어

      ISO

      International Organization for Standardization라는 조직의 약어이다. 국제표준화기구를 말하는데 국가마다 다른 표준을 갖는 문제점을 해결하기 위해서 통용될 수 있는 국제표준을 개발하고 보급한다. 일례로 ISO가 국가코드8를 정의하고 공표하면 전 세계적으로 동일한 데이터를 사용하여 개발하면 된다. 이 국가코드는 어느 국가에서 누가 만들든지 호환될 수 있게 된다.

      CGI

      Common Gateway Interface를 뜻한다. 전통적인 웹 서버는 단순히 저장되어있는 정적인 파일을 전송해주는 것이었다. 점점 더 웹 서버의 사용성이 점차 증가하면서 여러가지 요구사항들이 나왔었고 그 중에는 사용자와 서버간의 대화형 프로그램(상호작용)을 구현하고 싶은 요구들도 있었다. 이는 다시 말해 '동적인' 작업을 하고 싶다는 뜻이며 게시판을 생각하면 쉽게 이해할 수 있다. 동일한 URL(하나의 프로그램)을 접속하여 사용하지만 페이지 번호(입력)에 따라서 내용(출력)이 달라진다. 즉 사용자로부터 변수를 입력받을 수 있는 페이지를 만들고 싶다는 이야기이다.

      그러나 정적인 파일을 단순히 전송만 하던 웹 서버만으로는 해결하기 어려운 과제였는데 우회하기 위하여 웹 서버와 동적인 작업을 수행하는 어플리케이션을 이어줄 수 있는 중간 인터페이스로 고안이 되었다. 그러나 매 요청마다 프로세스를 새로 만들고 새로운 DB 연결을 생성해야 하는 등 성능상 문제점이 있었다.

      이러한 문제점을 개선하여 여러 요청을 처리할 수 있도록 개량한 것중 하나가 fastCGI 이다. 리눅스에서 nginx를 이용해 php를 사용해본 사람은 한 번쯤은 봤을 탠데 php 어플리케이션과 nginx는 fastCGI를 통해서 서로 통신하게 된다.

      CGI 프로그램

      동적인 작업을 한다는 점에서 오해할 수 있는 부분이 웹 프레임워크로 구현한 서버도 CGI라고 봐야하는가? 같은 이야기이다. CGI는 이름에서 알 수 있듯이 웹 서버와 별개의 프로그램을 연결하는 인터페이스를 말한다. 이 CGI를 구현하여 웹 서버와 통신하지 않는다면 CGI 프로그램이라고 볼 수 없다.

      일반적으로 여러 언어에서 제공하는 웹 프레임워크들은 그냥 동적인 기능이 포함된 웹 서버이지 구현된 CGI를 통해 웹 서버와 통신하며 서비스 하는 것이 아니기 때문이다. 국내에서는 Web Application Server(WAS)라고도 부르는데 기술의 발전이나 사용상 편의에 따라 웹 서버라는 용어가 보편적으로 사용되어 혼란을 주기도 한다.

      Footnotes

      1. 위키백과 기여자, "팀 버너스리," 위키백과, https://ko.wikipedia.org/w/index.php?title=%ED%8C%80_%EB%B2%84%EB%84%88%EC%8A%A4%EB%A6%AC&oldid=39569076 (2025년 9월 21일에 접근). ↩

      2. 위키백과 기여자, "SGML," 위키백과, https://ko.wikipedia.org/w/index.php?title=SGML&oldid=39022648 (2025년 9월 22일에 접근). ↩

      3. 위키백과 기여자, "SGML," 위키백과, https://ko.wikipedia.org/w/index.php?title=SGML&oldid=39022648 (2025년 9월 22일에 접근). ↩

      4. 위키백과 기여자, "HTML," 위키백과, https://ko.wikipedia.org/w/index.php?title=HTML&oldid=39871929 (2025년 9월 22일에 접근). ↩

      5. 위키백과 기여자, "XML," 위키백과, https://ko.wikipedia.org/w/index.php?title=XML&oldid=39014370 (2025년 9월 22일에 접근). ↩

      6. 위키백과 기여자, "XHTML," 위키백과, https://ko.wikipedia.org/w/index.php?title=XHTML&oldid=39022544 (2025년 9월 22일에 접근). ↩

      7. 위키백과 기여자, "HTML5," 위키백과, https://ko.wikipedia.org/w/index.php?title=HTML5&oldid=39156114 (2025년 9월 22일에 접근). ↩

      8. ISO_3166-1 ↩

      초판: 2025. 09. 22. 10:55:11

      수정판: 2025. 09. 22. 12:04:18

      © 2025 이 문서는 "CC BY 4.0 국제규약" 라이선스로 배포 되었습니다. 모든 권리는 저자에게 있습니다.

      www란 무엇인가?

      www와 w3c
      하이퍼 텍스트
      마크업 언어
      Generalized Markup Language
      Standard Generalized Markup Language
      Hyper Text Markup Language
      eXtensible Markup Language
      XHTML
      HTML5
      HTML vs XHTML vs HTML5
      마크다운 언어
      추가적인 용어
      ISO
      CGI
      CGI 프로그램