HTML이란? 기초부터 확실하게

💡 지피디아 핵심 브리핑

HTML은 웹 페이지의 구조와 콘텐츠를 정의하는 핵심 마크업 언어이며, 텍스트 편집기와 브라우저만 있으면 누구나 쉽게 문서 구조를 설계하고 시각화할 수 있습니다. 이 글에서는 HTML의 기초 개념부터 구조, 역사, 관련 기술 및 실습 도구까지 전문적인 관점에서 상세히 다룹니다.

HTML이란? 기초부터 확실하게

HTML은 우리가 보고 있는 이 WEB상의 문서를 말합니다. 이 문서를 서버가 크롬이나 엣지로 전송해주었기 때문에 현재 이글을 보고 계신 것입니다. HTML은 문서 자체가 아닌 언어를 말하지만, 지피디아.html과 같이 확장자를 가져 하나의 파일(문서)의 역할을 합니다. html의 구조를 아는 것은 웹 서비스의 기본을 아는 것입니다. 이 html을 어떻게 전송하고 어떤 기능을 넣고 어떻게 꾸밀지에 따라 서비스의 품질이 달라지며, 취약점등도 쉽게 파악할 수 있습니다.

프론트엔드 개발의 시작점이 되는 이 언어는 웹 브라우저가 사용자의 화면에 콘텐츠를 올바르게 렌더링할 수 있도록 돕는 뼈대 역할을 수행합니다. 실무에서 웹사이트의 보안 취약점을 점검하거나 SEO를 최적화할 때도 가장 먼저 분석하는 대상이 바로 HTML 코드입니다.

HTML이란?

HTML은 HyperText Markup Language의 약자로, 웹 페이지의 구조와 콘텐츠를 정의하는 마크업 언어입니다. HTML은 웹 개발의 기본이 되는 언어로, 프론트 엔드 개발자는 HTML을 사용하여 사용자 인터페이스를 구성하고 웹 페이지의 내용을 구조화하는 역할을 담당합니다. 하이퍼텍스트는 링크를 통해 문서와 문서가 서로 연결되는 방식을 의미하며, 마크업은 태그를 이용해 문서의 구조를 표시한다는 뜻을 담고 있습니다.

HTML은 태그(Tag)라 불리는 요소(element)들을 사용하여 문서의 구조를 설계합니다. 각각의 태그는 화면에 표시되는 콘텐츠의 종류를 나타내며, 열림 태그(<tag>)와 닫힘 태그(</tag>)로 구성됩니다. 예를 들어, <h1> 태그는 제목을 나타내는 태그이며, <p> 태그는 단락을 나타내는 태그입니다. 이러한 태그들은 웹 브라우저에게 해당 정보의 성격이 무엇인지 명확하게 전달합니다.

HTML은 문서의 구조를 선언적으로 정의하며, 이는 웹 브라우저에게 어떻게 콘텐츠를 표시하고 해석해야 하는지 알려줍니다. 또한, HTML은 다른 웹 기술과 함께 사용하여 동적인 기능과 상호작용성을 추가할 수 있습니다. CSS(Cascading Style Sheets)를 사용하여 디자인과 레이아웃을 지정하고, JavaScript를 사용하여 동적인 기능을 추가할 수 있습니다. 프로그래밍 언어와 달리 로직을 처리하는 연산 기능은 없지만, 웹 생태계의 기틀을 다지는 필수적인 규격입니다.

HTML을 사용하여 웹 페이지의 구조를 설계하고, 콘텐츠를 의미 있는 블록으로 나누어 정보의 구조를 전달합니다. 또한, 웹 페이지의 시맨틱(Semantic) 구조를 고려하여 검색 엔진 최적화(SEO)를 개선하고, 웹 접근성을 향상시키는 데에도 중요한 역할을 합니다. 시맨틱 태그를 적절히 사용하면 구글이나 네이버 같은 검색 엔진이 웹 페이지의 핵심 콘텐츠를 더 정확하게 파악하여 상위 노출에 유리한 환경을 조성합니다.

HTML을 잘 이해하고 활용하는 프론트 엔드 개발자는 사용자 친화적이고 효과적인 웹 인터페이스를 개발할 수 있으며, 웹 애플리케이션의 사용성과 품질을 향상시키는 데에 큰 기여를 할 수 있습니다. 대규모 웹 프로젝트일수록 마크업의 구조가 탄탄해야 유지보수가 수월해지며, 웹 퍼블리셔와 백엔드 개발자 간의 협업 효율성도 극대화됩니다.

HTML 구조

기본구조

HTML 문서는 일반적으로 확장자가 .html인 파일로 저장되며, 텍스트 편집기를 사용하여 작성할 수 있습니다. HTML 문서는 일반적으로 다음과 같은 구조로 이루어져 있으며, 브라우저가 문서를 해석할 때 표준 모드로 동작하도록 만드는 선언부가 맨 처음에 위치합니다.

<!DOCTYPE html>
<html>
<head>
    <title>웹 페이지 제목</title>
</head>
<body>
    <!-- 웹 페이지 콘텐츠 -->
</body>
</html>
  • <!DOCTYPE html>: 이 문서가 HTML5 문서임을 선언하며, 웹 브라우저가 올바른 렌더링 엔진을 선택하도록 지시합니다.
  • <html>의 의미 : HTML 문서의 최상위 요소를 정의하며, 모든 콘텐츠를 감싸는 루트 컨테이너 역할을 합니다.
  • <head>의 의미: 웹 페이지의 메타데이터와 연결된 외부 파일을 포함하는 부분으로, 화면에는 직접 보이지 않지만 설정 정보를 담습니다.
  • <title>의 의미: 웹 페이지의 제목을 정의합니다. 브라우저 탭에 표시되며 즐겨찾기 등록 시에도 활용됩니다.
  • <body>의 의미: 웹 페이지의 실제 내용을 정의하며, 사용자가 브라우저 화면에서 눈으로 보고 상호작용하는 모든 시각적 요소가 포함됩니다.

열림 태그와 닫힘 태그

HTML 요소는 일반적으로 열림 태그(<열림태그>)와 닫힘 태그(</닫힘태그>)로 구성됩니다. 열림 태그는 요소의 시작을 나타내고, 닫힘 태그는 요소의 끝을 나타냅니다. 일부 콘텐츠가 필요 없는 태그(예: <br>이나 <img>)는 닫힘 태그가 생략되거나 자체적으로 닫히는 형식을 취하기도 합니다.

<tag>콘텐츠</tag>

예를 들어, <h1> 태그는 큰 제목을 나타내며, 다음과 같이 사용됩니다

<h1>제목</h1>

이렇게 작성된 태그는 “제목”이라는 텍스트를 큰 제목으로 표시합니다. 브라우저는 이 태그를 만나면 기본 스타일 가이드에 따라 글자 크기를 키우고 상하 여백을 부여하여 사용자가 문맥을 쉽게 인지할 수 있도록 렌더링합니다.

HTML 요소와 태그

HTML 요소와 태그: HTML 요소는 웹 페이지의 다양한 부분을 정의하는 데 사용됩니다. 요소는 일반적으로 태그로 표시되며, 태그의 이름은 해당 요소의 종류를 나타냅니다. 몇 가지 일반적인 HTML 요소와 사용 예제를 살펴봅니다.

  • <h1>, <h2>, <h3>, … <h6>: 제목 요소를 정의합니다. 숫자가 커질수록 제목의 크기가 작아지며 문서의 계층 구조를 나타냅니다.
  • <p>: 단락 요소를 정의합니다. 일반적으로 텍스트 단락을 구성하는 데 사용되며 본문 내용을 채울 때 꼭 필요합니다.
  • <a>: 앵커(Anchor) 요소로, 링크를 정의합니다. href 속성을 사용하여 링크 대상을 지정할 수 있으며 다른 페이지나 외부 사이트로 이동합니다.
<h1>웹 페이지 제목</h1>
<p>이것은 첫 번째 단락입니다.</p>
<p>이것은 두 번째 단락입니다.</p>
<a href="http://www.example.com">예시 링크</a>

HTML 속성

HTML 속성은 요소에 대한 추가 정보를 제공하며, 속성은 일반적으로 시작 태그에 포함됩니다. 속성은 이름과 값의 쌍으로 구성되며, 브라우저가 요소를 다루는 방식을 세부적으로 제어할 수 있게 돕습니다. 몇 가지 일반적인 HTML 속성과 사용 예제를 살펴봅니다.

  • class: 요소에 CSS 클래스를 지정합니다. 여러 요소에 동일한 클래스를 적용하여 공통 스타일이나 스크립트 제어를 일괄적으로 수행할 수 있습니다.
  • id: 요소의 고유한 식별자를 지정합니다. 한 페이지 내에서 오직 하나의 요소에만 사용되어야 하며 고유성을 유지해야 합니다.
  • src: 이미지 요소(<img>)의 이미지 파일 경로를 지정하여 외부 리소스를 페이지 내에 불러옵니다.
<p class="highlighted">이 요소는 강조 표시됩니다.</p>
<div id="main-content">이 요소는 중요한 콘텐츠를 포함합니다.</div>
<img src="path/to/image.jpg" alt="이미지">

위의 예제에서는 class 속성으로 “highlighted” 클래스를 사용하여 텍스트를 강조표시하고, id 속성으로 “main-content”라는 식별자를 가진 div 요소를 정의하였습니다. 또한, src 속성으로 이미지 파일 경로를 지정하고, alt 속성으로 대체 텍스트를 제공했습니다. 대체 텍스트(alt)는 시각장애인을 위한 스크린 리더기나 이미지가 정상 로드되지 않는 네트워크 환경에서 매우 중요한 역할을 담당합니다.

HTML이란? 기초부터 확실하게

HTML 역사

HTML은 팀 버너스리(Tim Berners-Lee)와 그가 속한 CERN 연구소의 연구진들에 의해 개발되었습니다. HTML은 1990년대 초반에 월드 와이드 웹(World Wide Web)의 핵심 기술로 도입되었으며, 웹 페이지의 구조와 콘텐츠를 기술하기 위한 표준 마크업 언어로 발전해왔습니다. 초기에는 학술적 문서 공유를 목적으로 하였으나 현재는 전 세계 모든 디지털 미디어의 표준 기반으로 자리 잡았습니다.

  • 1989년: 팀 버너스리는 웹의 기본 구성 요소로 사용할 수 있는 하이퍼텍스트 시스템을 제안했습니다. 이는 문서와 문서 간의 링크를 통해 상호 연결된 정보를 구성하는 개념입니다.
  • 1990년: 팀 버너스리는 웹 페이지를 작성하기 위한 최초의 버전인 HTML 1.0을 개발하였습니다. 이는 웹 브라우저를 통해 텍스트와 링크로 이루어진 기본적인 웹 페이지를 작성할 수 있는 기능을 제공했습니다.
  • 1995년: HTML 2.0이 발표되었으며, 이 버전에서는 이미지와 폼 요소 등의 추가적인 기능이 도입되어 사용자 입력 기능이 생겨났습니다.
  • 1997년: HTML 3.2가 출시되었으며, 이 버전에서는 표, 이미지 맵, 배경 이미지 등의 기능이 추가되어 디자인 표현력이 향상되었습니다.
  • 1999년: HTML 4.01이 발표되었습니다. 이 버전에서는 프레임, 스타일 시트, 스크립트 등 다양한 기능이 추가되었으며, 웹 페이지의 표현과 동작을 좀 더 정교하게 다루 수 있게 되었습니다.
  • 2000년: XHTML(Extensible HTML) 1.0이 발표되었습니다. XHTML은 XML 기반의 HTML로, HTML과 XML의 요소를 결합한 형식이며 문법 검사가 매우 엄격했습니다.
  • 2014년: HTML5가 완전한 표준으로 승격되었습니다. HTML5는 기존의 HTML 버전들보다 훨씬 강력하고 다양한 기능과 API를 제공하여 멀티미디어, 그래픽, 애니메이션, 웹 애플리케이션 등 다양한 콘텐츠를 다루 수 있게 되었습니다.

주요 HTML 기술자와 기업가

팀 버너스리(Tim Berners-Lee): 팀 버너스리는 웹의 창시자로 알려져 있습니다. 그는 월드 와이드 웹의 개발을 주도하고 HTML을 포함한 웹 기술을 발명하였습니다. 그의 공헌 덕분에 인류는 시공간을 초월한 정보 공유의 시대를 맞이할 수 있었습니다.

이안 히코즈(Ian Hickson): 이안 히코즈는 HTML5 표준을 주도하고 개발하는 데 큰 역할을 한 개발자입니다. 그는 WHATWG(웹 하이퍼텍스트 애플리케이션 기술 작업 그룹)의 주요 인물로서 HTML5의 발전에 기여하였습니다.

W3C(World Wide Web Consortium): W3C는 웹 표준을 개발하고 유지하기 위한 국제 컨소시엄입니다. HTML의 표준화 작업을 주관하며, 다양한 전문가와 기업이 참여하여 웹 기술의 발전을 이끌고 있습니다.

Google: Google은 웹 검색 엔진을 운영하는 동시에 다양한 웹 기술에 대한 지원과 개발을 수행하는 회사입니다. Google은 HTML5를 지원하고 웹 표준을 장려하는 데 큰 역할을 하였으며, Chrome 브라우저와 같은 웹 기술에 관련된 제품과 서비스를 개발하고 있습니다.

Mozilla: Mozilla는 오픈 소스 웹 브라우저인 Firefox를 개발하고 유지보수하는 비영리 단체입니다. Mozilla는 웹 표준을 적용하고 웹 기술의 개선에 기여하는 활동을 수행하며 웹의 개방성을 지켜나가고 있습니다.

Microsoft: Microsoft는 Internet Explorer를 비롯한 여러 웹 브라우저를 개발하고 웹 기술에 관련된 제품과 서비스를 제공하는 회사입니다. 최근에는 Microsoft Edge를 통해 웹 표준을 적용하고 웹 개발자 커뮤니티와 협력하여 웹 기술의 발전에 기여하고 있습니다.

이러한 개인과 기업들은 HTML과 웹 기술의 발전에 큰 영향을 미쳤으며, 웹의 발전과 현재의 웹 생태계를 형성하는 데 중요한 역할을 담당하였습니다. 브라우저 엔진의 발전과 표준 준수 노력은 개발자들이 크로스 브라우징 이슈에서 해방되는 데 결정적인 기여를 했습니다.

HTML 관련 언어

HTML은 웹 페이지의 구조와 콘텐츠를 정의하는 마크업 언어입니다. HTML 자체는 정적인 콘텐츠를 표현하는 역할을 하지만, 다른 언어와 기술과 함께 사용하여 웹 페이지에 상호작용성을 추가할 수 있습니다. 현대의 웹 애플리케이션은 보통 HTML, CSS, JavaScript가 삼위일체로 작동하여 완성됩니다.

CSS (Cascading Style Sheets)

CSS는 HTML 문서의 스타일과 레이아웃을 지정하는 스타일 시트 언어입니다. CSS를 사용하여 HTML 요소의 색상, 크기, 배치 등을 제어할 수 있습니다. 이를 통해 웹 페이지의 시각적인 표현을 개선하고 사용자 경험을 향상시킬 수 있으며 반응형 웹 디자인을 구현할 수 있습니다.

<style>
  h1 {
    color: blue;
  }
  p {
    font-size: 16px;
  }
</style>
<h1>제목</h1>
<p>이것은 단락입니다.</p>

위의 예제에서는 CSS를 사용하여 <h1> 태그의 색상을 파란색으로 지정하고, <p> 태그의 글꼴 크기를 16px로 지정했습니다. 스타일 시트를 별도의 파일로 분리하면 관리의 효율성이 더욱 높아집니다.

JavaScript

JavaScript는 HTML 문서와 상호작용하기 위한 프로그래밍 언어입니다. JavaScript를 사용하여 웹 페이지에 동적인 기능을 추가하고, 이벤트 처리, 사용자 입력 처리, 데이터 통신 등을 수행할 수 있으며 페이지 새로고침 없이 데이터를 갱신하는 AJAX 등의 기술도 활용 가능합니다.

<script>
  function greet() {
    var name = document.getElementById("name").value;
    alert("안녕하세요, " + name + "님!");
  }
</script>
<input type="text" id="name" />
<button onclick="greet()">인사</button>

위의 예제에서는 JavaScript 함수를 사용하여 사용자로부터 입력받은 이름을 알림 창으로 출력하는 기능을 구현하였습니다. 버튼을 클릭하면 greet() 함수가 실행되고, 함수는 입력 필드의 값을 가져와서 인사 메시지를 생성합니다. 이를 통해 정적인 문서에 생동감을 불어넣을 수 있습니다.

서버 측 언어 (예: JAVA, PHP, Python, Node.js):

서버 측 언어는 웹 서버에서 HTML을 동적으로 생성하고 데이터베이스와 상호작용할 수 있는 기능을 제공합니다. 서버 측 언어는 HTML을 동적으로 생성하여 사용자에게 맞춤형 콘텐츠를 제공하거나, 양식 데이터를 처리하고 저장하는 등의 작업을 수행합니다.

<?php
  $name = $_POST["name"];
  echo "안녕하세요, " . $name . "님!";
?>
<form method="post" action="">
  <input type="text" name="name" />
  <input type="submit" value="인사" />
</form>

위의 예제는 PHP를 사용하여 사용자로부터 이름을 입력받아 인사 메시지를 생성하는 기능을 구현한 것입니다. 입력된 이름은 <form> 요소의 POST 메서드를 통해 서버로 전송되고, PHP는 전송된 데이터를 처리하여 결과를 출력합니다. 이처럼 백엔드와 프론트엔드가 유기적으로 결합하여 완성도 높은 웹 서비스를 구축하게 됩니다.

HTML을 연습할 수 있는 사이트

CodePen (https://codepen.io/)

HTML이란? 기초부터 확실하게


CodePen은 HTML, CSS, JavaScript를 포함한 웹 기술을 실험하고 공유할 수 있는 플랫폼입니다. 사용자들은 온라인 에디터에서 코드를 작성하고 실행한 결과를 실시간으로 확인할 수 있으며, 다른 사용자들과 코드를 공유하고 피드백을 받을 수도 있습니다. 별도의 개발 환경 구축 없이 브라우저만으로 테스트가 가능해 초보자에게 안성맞춤입니다.

JSFiddle (https://jsfiddle.net/)

HTML이란? 기초부터 확실하게

JSFiddle은 HTML, CSS, JavaScript 코드를 작성하고 실행할 수 있는 온라인 플랫폼입니다. 코드를 작성하는 영역과 실행 결과를 확인하는 영역이 분리되어 있어 실시간으로 코드의 변화를 확인할 수 있습니다. 또한, JSFiddle은 다양한 프레임워크와 라이브러리에 대한 예제 코드도 제공하고 있어 확장성 있는 학습이 가능합니다.

html5-editor.net(https://html5-editor.net/)

HTML이란? 기초부터 확실하게

html5-editor.net은 웹 기반의 HTML 편집기로, 사용자들이 브라우저에서 직접 HTML 코드를 작성하고 편집할 수 있는 도구를 제공하는 사이트입니다. 이 사이트에서는 사용자들이 HTML, CSS 및 JavaScript와 같은 웹 언어를 사용하여 디자인과 코드를 작성하고, 결과를 실시간으로 미리 볼 수 있습니다.

이러한 기능은 웹개발자와 프론트엔드 디자이너들이 웹페이지의 레이아웃, 스타일 및 기능을 효과적으로 테스트하고 수정할 수 있게 돕습니다. 이 사이트는 웹개발을 배우거나 기존 프로젝트에 적용하려는 사람들에게 무료로 사용할 수 있는 편리한 도구를 제공합니다.

HTML 관련 서적

html을 배울 수 있는 책들은 굉장히 많습니다. DO it은 다양한 언어를 알려주는 책으로 유명합니다. 입문자 수준에 맞춰 체계적인 커리큘럼을 제공하므로 독학용 교재로 인기가 높습니다.

책은 개인의 성향을 많이 타며, 연습하기엔 다소 불편하여 온라인 자료들을 보는 것을 추천드립니다. 실시간으로 코드를 실행해보고 결과를 수정하는 피드백 루프가 빠른 온라인 에디터가 실무 역량을 키우는 데 더욱 효과적일 수 있습니다.

HTML이란? 기초부터 확실하게

FAQ 및 실무 체크포인트

Q1. HTML은 프로그래밍 언어인가요?

아니오. HTML은 로직을 처리하는 조건문이나 반복문이 없는 마크업 언어입니다. 문서의 구조와 의미를 정의하는 역할을 담당합니다.

Q2. HTML5에서 가장 중요한 변화는 무엇인가요?

플러그인 없이 멀티미디어(오디오, 비디오)를 기본 지원하며, 시맨틱 태그 도입으로 검색 엔진 최적화와 웹 접근성이 대폭 강화된 점이 가장 큰 특징입니다.

실무 체크포인트

  • 문서 작성 시 반드시 <!DOCTYPE html> 선언을 누락하지 않도록 주의하세요.
  • 이미지 삽입 시 시각장애인 지원과 SEO를 위해 alt 속성을 빠짐없이 입력하세요.
  • 시맨틱 태그(<header>, <footer>, <section> 등)를 활용하여 문서 구조를 의미 있게 설계하세요.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤