[HTML 웹사이트 #02] 레쿠쟈의 정보는... - HTML에 대해 알아볼까요? (상편)

2023. 6. 7. 09:04Lectures - 코딩 강좌/HTML 웹페이지 강좌

# 시작하기에 앞서서...

요즘 열심히 코딩 공부를 하여 웹 문서 정도는 가뿐히 만들어 내는 상아. 그 모습을 지켜보던 혜성이는 상아르 시험하기 위해 웹 페이지에 레쿠쟈의 사진과 함께 레쿠쟈의 도감 설명을 적어서 보여달라고 한다. 이왕이면 예쁘게 색깔도 입히고 하면 좋을 것 같다고 추가 요청까지 한다. 상아는 어이가 없어서 따지고 말았다. 왜 사업용 웹페이지에 포켓몬 도감을 만들어야 하는지 이해가 안된다고 했다. 그러나 얼굴에 철판 석 장을 깔고 있는 혜성이는 단호하게 말했다.
"귀엽잖아 ㅎㅎ 잘 만들면 금전적인 보수는 심심하지 않게 해줄거니깐."
아무리 실리가 좋다던 23세 이상아 이지만, 자본주의에 굴복하고 마는데...
일단 돈은 챙기고 봐야 하지 않겠어? 흔쾌히 수락해 버리는 상아였다. 그래서 상아와 함께 웹페이지 서식에 대해 연구하기 위해 집으로 냉큼 달려가서 컴퓨터를 켰다. 
(위 사진은 얼마전에 구매한 레쿠쟈 인형 사진 입니다 ^^)
 


# 이번 시간의 목표!

이번 시간에는 레쿠쟈의 도감을 웹페이지에 만들어 볼거에요.
처음에는 HTML 구문을 이용하여 대략적인 틀을 만들어 볼거고, 그 다음으로는 CSS 구문을 사용하여 칙칙한 디자인을 좀 더 다체로워 보이도록 서식을 지정해 볼 예정입니다. 아마 제목을 보시고 눈치 채신 분도 있겠지만 이번 강좌는 HTML 따로 CSS 따로 설명을 할 예정이라 크게 2부분에 나눠서 2번째와 3번째 강좌에서는 HTML을 위주로, 4번째 강좌에서는 CSS와 폰트 파일 불러오는 것에 대한 내용으로 진행이 될 것 같습니다.
먼저 HTML에 대해 알아보고 구문의 특징을 살펴볼겁니다. 다음 HTML의 기능에 대해 알아보고, 마지막으로 최종목표인 레쿠쟈의 도감을 만들어 보도록 할께요.
 


# 2.1. HTML은 먹는걸까요?

HTML, 어디서 많이 들어 봤는데 혹시 먹는건가요?
앗... 아쉽지만 먹는게 아니었습니다. HTML은 말이죠 우리가 컴퓨터나 스마트폰을 켜면 자주 쓰는 크롬, 엣지, 네이버 웨일, 오페라, 뭐 나이좀 있으신 분들은 파이어 폭스 등 웹 브라우저 프로그램에서 웹 페이지를 볼 때 이 각각의 웹 페이지의 구조를 설명해서 웹 브라우저가 알아먹을 수 있도록 하는 역할을 합니다. 즉 웹 페이지와 웹 브라우저 간의 의사소통 수단, 언어라고 보시면 됩니다. 그래서 지난 강좌에 만들었던 "index.html" 파일은 이 언어로 적혀 있기 때문에 우리가 이 녀석을 웹 문서라고 부르는 거지요.
 


# 2.2. 우리 HTML를 사랑해야 하는 이유!

요즘 대부분의 웹페이지들은 HTML을 이용하여 설계가 되어 있습니다. 그렇가면 도대체 어떤 점에서 HTML이 최고다 라고 생각할 수 있게 해주는 걸까요? HTML의 장점은 다음과 같습니다!
 

장점 ①: 구조가 단순하고 문법이 쉽다.

이 HTML은 말이죠 우리가 생각하는 프로그래밍 언어들과 사뭇 다른점이 많습니다. 아래를 볼까요?

예시로 제 블로그 포스팅 글을 들고 와봤는데... 워낙 장문이 많다 보니깐 지저분하네요...
다른 예시를 보죠!

<!DOCTYPE html>
	<body>
		<h1>My First Heading</h1>
		<p>My first paragraph.</p>
	</body>
</html>

 
결과


My First Heading

My first paragraph.


위의 예시 코드를 보면 알 수 있드시 <body> 와 </body> 사이에 필요한 내용을 넣는 형식을 취하고 있습니다. 우리는 이것을 태그(Tag)라고 부르는데요, 이 태그 형식을 사용하다보니 다 언어들에 비해 코드가 비교적 단순하고, 복잡한 연산이 없기 때문에(물론 논리 연산이나 사칙연산 같은 단순한 연산은 가능합니다) 문법이 매우 쉽다는 장점이 있습니다! 여기에서 좀 더 추가 설명을 하자면 <body> 와 </body> 의 명칭은 각각 시작태그, 종료태그 라고 부릅니다. 종료 태그는 시작 태그와 달리 '/' 를 입력해 주어야 합니다.

장점 ②: 편집이 매우 쉽다!

두번째 장점은 HMTL을 혐오하는 사람도 인정할 수 밖에 없는 장점입니다! 바로 편집이 매우 간단하는 것인데요, 이 HTML파일은 우리가 편집을 마친 텍스트 문서를 따로 기계 언어로 바꾸는 컴파일 작업이 없어도 실행되는 프로그램에 따라 웹브라이저 에서는 웹 문서, 텍스트 편집기에서는 텍스트 문서가 되기 때문에 우리가 아무데서나 문서를 편집하여 수정된 문서를 즉시 적용이 가능하다는 장점이 있습니다! 즉 다시 말해, "아... HTML 마렵다..." 싶으면 바로 메모장을 켜서 쓱싹해서 저장해도 웹문서가 만들어 진다는 것이죠! (아, 저는 뉴비라서 전문적인 편집기 이용할 예정입니다;;)

장점 ③: HTML은 먹는게 아니라 "마크업 언어" 였다...

아니... HTML이 먹는게 아니라 마크업 언어라니... 처음 들으면 뭔 똥같은 소리야 하시겠지만 이게 또 HTML의 굉장히 매력적인 부분이라고 할 수 있어요. 마크업(Markup)이란, 형태나 효과를 정의하는 명령을 마크로 삽입하여 이루어지는 언어를 말합니다. 아까 위에서 말했지만 HTML은 "태그" 라는 마크를 통해서 웹브라우저에 "아, 이 부분은 이렇게... 아니아니! 이렇게 하면 된다니까!!" 라고 명령을 내리게 되는거죠. 이 마크업 언어를 사용하면 마크 삽입 만으로 형식을 정의할 수 있기 때문에 파일 용량이 매우 작아지게 되는 이득을 볼 수 있죠! 예를 들어 이미지 파일 하나를 들고와서 웹문서에 삽입해 보겠습니다! 우리 귀여운 한비 데려와보고록 할게요! (내가 나오면 칙칙한 사내 아이 하나 오는거라 조용히 블로그 닫을꺼잖아;;)

<!DOCTYPE html>
	<body>
		<h1>Mono's Profile</h1>
		<p><img src="https://i.ibb.co/98NWTGH/hanbi.png" /></p>
		<li>이름: 최한비</li>
		<li>생년: 2003년 6월 21일</li>
		<li>출신지: 대한민국 강원도 정선군 북평면</li>
		<li>신체: 171cm, 50kg, A형</li>
		<li>가족 관계: 부모님, 언니</li>
	</body>
</html>

결과


 

Mono's Profile

  • 이름: 최한비
  • 생년: 2003년 6월 21일
  • 출신지: 대한민국 강원도 정선군 북평면
  • 신체: 171cm, 50kg, A형
  • 가족 관계: 부모님, 언니

  • 이렇게 HTML은 마크업 언어이기 때문에 이미지 등의 파일을 문서에 직접 포함하지 않고 외부에서 불러올 수 있도록 하면서(물론 디렉토리를 만들어서 내부에 사진 파일을 저장하고 해당 경로로 가서 이미지를 불러와도 됩니다) 내부에 꼭 이미지 파일을 저장할 필요가 없어지니까 파일 용량을 효과적으로 줄일 수 있는거죠.
    게다가, HTML은 마크업 언어의 'link' 로 여러 웹문서를 하나의 파일에 포함하지 않고 분리하여 서로 이어지도록 링크를 할수도 있습니다. 이 부분도 굉장히 재밌는 부분인데 분량 관계상 생략하겠습니다. 어쩌피 지금 안해도 뒤에 나오기 때문에 나중에 자세히 설명해 드릴게요!

    장점 ④: HTML은 플랫폼에 독립적인 언어이다!

    아까 #2.1. 절에서 "요즘 웹사이트들 전부 HTML로 되어있어!" 라고 말했었는데 그 이유가 바로 웹사이트에 접속하기 위해 꼭 필요한 웹브라우저 들이 HTML 표준에 기준을 두고 제작되기 때문입니다. 따라서 HTML 문서(웹문서)는 어떤 운영체제에서 어떤 웹브라우저를 사용하더라도 동일한 결과가 나오게 표시할 수 있게 됩니다.
     
    물론 HTML이 장점만 있는것은 아닙니다. 여러가지 단점이 존재하는데... 어쩌피 여기 HTML 배우러 온거잖아요? HTML의 나쁜 점을 자세히 다루면 배움의 열정이 식을 것 같아서 간단히 짚어보고만 갈게요.
    HTML은 웹 문서의 내용 표현에 집중하는 언어이다 보니, 내용의 의미보다는 내용을 외양적으로 표현하는 태그가 메인이 됩니다. 그리고 구조화된 정보의 표현과 검색의 어려움이 있고, 구조화되어 있지 않아 내용의 정확성과 유효성 검증이 어렵습니다. HTML의 특징인 태그, 하지만 이 태그는 사용에 여러가지 제한이 많아 사용하기에는 쉽고 간편하지만, 제한된 범위 안에서 확장이 거의 불가능하고 그로 인해 융통성이 다소 떨어지는 단점이 있습니다.
     


    # 2.3. 레쿠쟈 보단 HTML의 도감이 더 중요한것 같은데...

    乙女解剖であそぼうよ...

    죄송합니다, HTML를 분해해 보다가 그만 너무 흥분해 버렸네요 ^-^;;

    이번에는 HTML의 구조에 대해 알아볼까 합니다! 초등학교 때 과학 시간으로 돌아가 보자구요. 보통 곤충을 3등분(진짜 개박살 내는건 아니고... 미분도 하지마세요...)한다 하면 머리, 가슴, 배 이렇게 3부분이 된다고 하잖아요? HTML은 크게 쪼갠다면 2가지 부분으로 나뉘집니다. 바로 "머리부(Head)""몸체부(Body)" 입니다!


    머리부(Head 태크)에는 간단하게 말하자면 몸체부에 들어가지 않는 모든 부분이 들어간다 라고 생각하시면 되구요, 본문에 나타나지 않는 태그들이 들어갑니다. 즉, 문서의 형태, 메타(Meta), 타이틀 정보(Title), 스타일 정보(Style), 자바스크립트(js) 등 웹 브라우저가 웹 문서의 내용을 요구대로 정확히 표현하기 위해 알아야 할 중요한 정보들이 담기게 됩니다. 우리는 이렇게 데이터를 설명해주는 데이터를 메타데이터(Meta data)라고 부릅니다. 머리부에서 정의하는 것이 바로 메타데이터 인 셈이죠.


    몸체부(Body 태그)는 웹페이지 화면에 직접 출력되는 부분이라고 생각하면 됩니다. 웹 페이지를 방문하는 사람들이 웹 페이지에서 보게 될 정보나 데이터 등이 몸체부에 들어간다 라고 보시면 됩니다.


    참고로, 머리부와 몸체부는 <html>이라는 태그로 묶어있는데 이것은 웹문서의 루트(Root)를 정의하는 요소입니다. 즉, DOCTYPE 선언을 제외한 모든 다른 HTML 요소들을 담기 위한 큰 그릇이라고 생각하시면 됩니다. 또한 웹 브라우저에게 해당 웹 문서가 HTML 문서임을 알려주는 역할도 합니다.

    구성요소들도 같이 확인해 볼까요? HTML에서 시작태그 와 종료태그로 이루어진 명령어(태그 명령어) 들로 구성되어 있는데 우리는 이것을 요소(Elements)라고 부르기로 약속했어요. 태그(Tag)는 요소의 구성원 중 하나로서 1개의 요소에는 항상 시작태그종료태그가 있습니다. 그러면 시작태그 안에는 조금 더 구체화된 명령어가 자리 잡을 수 있는데 이것을 값 속성(Attributes)이라고 하고, 속성을 구성하는 각각을 값(Arguments)이라고 부릅니다. 속성은 이제 디자인적인 요소나 기능적인 측면에서 다양한 효과를 부여합니다. 속성에 대해서는 앞으로도 자주 보기 때문에 더 구체적인 설명은 생략하도록 하겠습니다.
     


    # 2.4. HTML, 그녀는 예뻤다... 특히 머리가 예쁘더라

    이번에는 HTML의 머리부에 대해서 더 자세히 알아볼 거에요. 지난번에 만들었던 파일 계속 열어볼게요.

    <!DOCTYPE html>
    <html lang="ko">
    <head>
    	<meta charset="UTF-8">
    	<meta http-equiv="X-UA-Compatible" content="IE=edge">
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    	<title>이상아의 개인 홈페이지</title>
    </head>
    <body>
      <p>Hello, World!</p>
    </body>
    </html>

    약간 수정되어 있지만 별거 없으니 이 코드를 보면서 <head>요소에 추가로 만들어 볼게요. 그 전에 웹문서 언어 설정을 해주겠습니다. 맨 첫줄에 까먹지 않고 문서 형식을 선언(<!DOCTYPE>)해 주시고요, 그 다음에 <html></html>을 입력하여 html 문서가 시작됨을 알려줍니다. 이때 html문서 시작태그에 속성을 추가해 봅시다. 시작 태그 html 글자뒤에 한칸 띄워주고 lang = "ko" 를 입력해보죠. 이 속성은 html 문서의 언어를 지정해 주는 속성입니다. lang 이라는 속성의 값을 "ko" 라고 지정해 주었는데, 이 "ko" 라는 값은 한국어를 의미합니다. "ko" 가 아닌 다른 값도 넣어 줄 수 있는데, 여기에 들어가는 값은 ISO 639-1 언어 코드를 넣을 수 있습니다. ISO 639-1 언어 코드와 관련된 정보는 아래의 사이트를 이용하시면 될 것 같습니다.
    https://www.w3schools.com/tags/ref_language_codes.asp

     

    HTML ISO Language Code Reference

    W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

    www.w3schools.com

     

    이제 본격적으로 <head></head> 태그 안에 들어갈 태그들에 대해 알아보려고 합니다. 머리부에 들어 갈 수 있는 태그는 <title>, <style>, 자바스크립트, 마지막으로 <meta>가 들어갈 수 있습니다. 첫번째 강좌 때 만들었던 코드를 함께 보면서 이 4가지 태그의 의미와 특징들을 알아 볼 거에요.

    <head>
    	<meta charset="UTF-8">
    	<meta http-equiv="X-UA-Compatible" content="IE=edge">
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    	<title>이상아의 개인 홈페이지</title>
    </head>



    먼저 알아 볼 녀석은 바로 <title></title>(타이틀 정보) 태그 입니다!

    이 태그는 웹 페이지의 제목을 나타내기 때문에, 웹페이지 본문에는 보이지 않고,  브라우저의 탭 등에서 확인 할 수 있습니다. 하지만 본몬에서 볼 수 없다고 쓸데 없는 것이냐? 그건 아닙니다. 이 웹 페이지의 제목은 사용자에게 문서의 제목을 알리는 용도 뿐만 아니라, 구글이나 네이버와 같은 검색 엔진 등에서 가장 크게 혹은 우선적으로 보여지는 텍스트 이기 때문에 페이지의 특성을 드러내는 제목을 작성하는 것이 중요합니다. 그것이 검색을 통해 우리가 만든 웹사이트에 더 많은 이용자들이 접근하게 할 수 있으니까요.

    그런데 제 블로그를 보시면 사이트 이름 앞에 아이콘이 하나 더 있는 것을 볼 수 있습니다. 우리는 주소창에 표시되는 아이콘을 파비콘(Favicon)이라고 부릅니다. 코드 한 줄만 추가해 준다면 파비콘을 쉽게 적용할 수 있습니다. 우선 이 작업을 하기 위해서는 파비콘을 만들어야 합니다. 아래의 주소로 들어가면 쉽게 파비콘을 만들 수 있습니다.
    https://www.favicon-generator.org/

     

    Favicon & App Icon Generator

    Upload an image (PNG to ICO, JPG to ICO, GIF to ICO) and convert it to a Windows favicon (.ico) and App Icons. Learn more about favicons.

    www.favicon-generator.org

    파비콘은 <link rel="icon" href="/png파일 경로"> 코드를 머리부에 넣어주기만 하면 됩니다. 이 파비콘을 넣기 위해 우리는 <link> 라는 태그를 사용해 주었습니다. <link> 태그는 해당 문서와 외부 소스(external resource) 사이의 관계를 정의할 때 사용합니다.  특이하게도 <link> 요소는 빈 태그이기 때문에 시작 태그만 선언해주고 종료 태그를 적어주지 않습니다. 그리고 오직 <head> 요소 내부에만 위치할 수 있고, 개수에는 제한이 없기 때문에 원하는 만큼 계속 선언을 할 수 있습니다! <link> 요소는 주로 외부 스타일 시트(external style sheet)를 연결할 때 사용되고, 가장 최신 버전인 HTML5에서는 <link> 요소의 charset, rev, target 속성이 사라지면서 crossorigin 속성과 sizes 속성이 새롭게 추가되었습니다.

     그 다음으로 알아볼 것은 <style></style>(스타일 정보) 태그 입니다. 이 태그는 HTML 문서의 콘텐츠에 적용되는 CSS(종속형 시트 또는 캐스케이딩 스타일 시트, 마크업 언어가 실제 표시되는 방법을 기술하는 스타일 언어)를 명시하고 있으며, 원하는 만큼 여러 개의 <style> 태그를 사용할 수 있습니다. 만일 별도의 파일(css 확장자와 같은 파일들)로 저장된 외부 스타일 시트를 이용하기 위해 위의 파비콘 파일을 불러올 때 처럼 <link> 태그를 사용하여 참조가 가능합니다.

    <head>
        <style>
            body{background-color: black}
            h1{color: white;}
            p{text-decoration: underline; color: yellow;}
        </style>
    </head>
    <body>
        <h1>Sample Text</h1>
        <p>Condin' Dizzt</p>
    </body>

    위 코드는 대강 어떤 식으로 <style> 태그를 작성하는지 보여주는 예시 코드 입니다. 위 코드에 대해서는 CSS를 다루는 강좌에서 더 자세히 알아보겠습니다.

    다음 아마도 웹사이트 강좌에서 가장 많은 분량을 차지하게 될 자바스크립트(JavaScript)에 대해 알아보겠습니다. <script>태그는 자바스크립트와 같은 클라이언트 사이드 스크립트(client-side scripts)를 정의할 때 사용되는 태그로, <script> 요소는 스크립트 코드를 요소 내부에 직접 명시하거나, src 속성을 사용하여 외부 스크립트 파일을 참조할 수 있습니다. 하지만 src 속성이 명시된 <script>요소에는 스크립트 코드를 직접 명시해서는 안 됩니다.

    <script> 태그로 참조된 외부 스크립트 파일을 다음과 같은 방법으로 실행이 가능합니다.

    ① async 속성이 명시한다면?
    웹 브라우저가 페이지를 파싱되는 동안 스크립트가 실행되도록 합니다.

    ② async 속성은 명시되어 있지 않고, defer 속성만 명시하게 되면?
    웹 브라우저가 페이지의 파싱이 모두 완료 되어야 스크립트가 실행되도록 합니다.

    ③ async 속성과 defer 속성이 모두 명시되어 있지 않다면?
    웹 브라우저가 페이지를 파싱하기 전에 스크립트를 가져와 바로 실행시킵니다.


    이렇게 정의된 자바스크립트는 일반적으로 이미지 조정, 폼(form)에 대한 검증, 콘텐츠의 동적 변경 등에 사용됩니다. 그리고 <noscript> 태그를 사용하여 클라이언트 사이드 스크립트를 사용하지 않도록 설정하였거나, 스크립트를 지원하지 않는 웹 브라우저를 위해 별도의 콘텐츠를 정의할 수 있게 해주는 역할을 합니다. 자바스크립트 삽입 및 자바스크립트 코딩에 대해서는 나중에 더 자세한 강좌로 준비해서 알아보도록 하고, 이번시간에는 <head> 태그 속에 <script> 태그를 통해 파일을 불러올 수 있다 정도만 알아두시면 될 것 같습니다.

    다음으로 알아볼 녀석은 <meta>로 되어있는 녀석들인데요, 이 친구들은 다른 태그와 다르게 특이한 점이 많습니다. 다음 절에서 자세히 알아볼게요!



     

    # 2.5. 메타 태그 넌 뭐하는 녀석이냐?

    앞 내용에 이어서 HTML <meta> 요소에 대해 알아볼거에요. <meta>요소는 <base>, <link>, <script>, <style>, <title>과 같은 다른 메타관련 요소로 나타낼 수 없는 메타데이터를 나타낼 때 사용하는 태그 입니다. <meta> 요소도 앞에서 말했던  <link>요소 처럼 빈 요소이기 때문에 여는 태그만 존재하고 닫는 태그는 존재하지 않습니다. 그래서 <meta>태그는 여는 뒤에 옵션을 추가로 적어주면서 사용하게 되는 것이죠. <meta>요소가 제공하는 메타데이터(여는 태그 뒤에 적어주기 때문에 옵션이라 보시면 됩니다)는 총 4가지가 있고 그 옵션에 대해 알아보도록 할게요.

    ① <meta name>
    이 메타데이터는 지정했을 때 전체 페이지에 적용되는 "문서 레벨 메타데이터"를 제공합니다. name과 content 특성을 함께 사용하면 문서의 메타데이터를 이름-값 쌍으로 제공할 수 있습니다. name은 이름, content는 값을 담당합니다.

    ② <meta http-equiv>
    특성을 지정하면 유사한 이름의 HTTP 헤더가 제공하는 정보와 동일한 "프래그마 지시문"이 됩니다. 특성의 이름(http-equiv(alent))에서 알 수 있듯이, 가능한 값은 특정 HTTP 헤더입니다. <meta charset>, <meta http-equiv>인 경우 <head> 요소, http-equiv가 인코딩 선언이 아닌 경우 <head> 내의 <noscript> 요소도 가능합니다. http-equiv는 웹 브라우저의 호환성 문제를 해결해 주는 중요한 메타 태그입니다. 마이크로소프트에서 개발한 인터넷 익스플로러 웹 브라우저는 호환성 보기 모드를 지원해 주는데, 이것은 사용자가 어떤 웹 브라우저를 사용하느냐에 따라 오래된 웹 브라우저에서는 올바르게 동작 하지 않는다는 문제가 있습니다. 이러한 문제들은 최신 웹 브라우저만을 지원하는 환경에서는 전혀 필요하지 않지만, 오래된 웹 브라우저를 지원하는 환경까지 고려해 본다면 이 태그의 중요성이 매우 커지게 되는 거죠. 진짜 이해가 확 되는 예시를 들자면 역시 우리나라, 대한민국이 빠질 수 없을테죠. 아직까지 IE8 이나 IE9를 사랑하는 사람들이 많으니까요(물론 요즘은 엣지 웹 브라우저로 옮기려는 움직임이 보이기 시작했습니다). 이러한 구식 웹 브라우저에 적응이 된 사람들이 많으면 최신 웹 브라우저와 같은 환경을 제공해 주어야 할테고 결국 그 지원을 맡는 녀석이 바로 http-equiv 메타 태그가 되겠다 이렇게 알고 계시면 될것 같습니다. 즉, http-equiv 속성은 HTTP 응답 헤더를 시뮬레이션 할 때 사용하는 속성입니다. 여기서 주의해야 할 점은 만일 머리부에 http-equiv 속성이 명시가 되었다고 할 때 반드시 content 속성도 함께 명시가 되어야 합니다. 이 태크에는 여러가지 값이 들어갈 수 있는데 그 값들의 의미와 특성에 대해 알아보겠습니다. content-security-policy 값은 현재 페이지의 콘텐츠 정책 (en-US)을 정의할 수 있습니다. 대부분의 콘텐츠 정책은 허용하는 서버 출처와 스크립트 엔드포인트를 지정해 사이트 간 스크립트 공격 방어에 도움을 줍니다. 만일 content-type을 지정할 경우, content 특성의 값은 반드시 "text/html; charset=utf-8"이어야 합니다. default-style 값은 기본 CSS 스타일 시트 세트의 이름을 지정합니다. 첫번째 강좌에서 보았던 x-ua-compatible 값을 지정하면, content 특성의 값은 반드시 "IE=edge"여야 합니다. 또한 사용자 에이전트는 이 프래그마를 무시해야 합니다. refresh 값은 content 특성에 양의 정수 값을 설정한 경우, 페이지를 다시 불러오기 전까지의 초 단위 대기시간으로 정의 됩니다. content 특성이 양의 정수 값을 가지고 그 뒤를 문자열 ;url=과 유효한 URL이 뒤따른다면, 해당 URL로 이동하기 전까지의 초 단위 대기시간을 정의하게 됩니다. 다만, refresh 값을 지정한 페이지의 경우 새로고침 사이 간격이 너무 짧을 우려가 있습니다. 스크린 리더 등의 보조 기술로 탐색하는 사용자는 자동 새로고침 이전에 페이지의 내용을 읽고 이해하지 못할 수 있습니다. 또한 저시력 사용자에게 있어, 갑작스럽고 사전 안내도 없는 콘텐츠 업데이트는 어지러울 수 있습니다.  


    ③ <meta charset>
    특성을 지정하면 문서 인코딩에 사용한 문자 인코딩을 나타내는 "문자 집합 선언"이 됩니다.
    페이지의 문자 인코딩을 선언합니다. 이 특성이 존재할 경우, 그 값은 반드시 문자열 "utf-8"의 대소문자 구분 없는 ASCII 표현이어야 합니다.

    ④ <meta itemprop>
    특성을 지정하면 "사용자 정의 메타데이터"를 제공합니다.



    # 강좌를 마치며...

    이번 시간에는 HTML에 대해 알아보고 <Head> 태그와 그 구문에 대해 심도있게 다뤄 보았습니다. 제가 워낙 꼼꼼하게 자세하게 설명하는 것을 선호하는 편이라 내용이 너무 길어지게 되었네요. 그래서 이번 HTML편을 2파트로 나눠서 설명하게 되었습니다. 다음 강좌에서는 남은 부분인 <Body> 태그와 그 구문에 대해 알아보고 원래 목표였던 레쿠쟈의 도감을 만들어 보도록 하겠습니다!
    혹시 이해가 잘 안된다, 제 블로그 글에 피드백이 필요한 것 같다 생각이 드는 분들은 자유롭게 댓글 남겨주셔도 좋고 아래에 연락처로 편하게 연락 해 주셔도 됩니다!

    디스코드: dizzt (옛날에는 Dizzt#0116 였던것...)
    이메일: eorhkd69@gmail.com (이메일은 잘 못 볼 가능성이 큽니다 ㅠㅠ)

    긴 글 읽어 주셔서 감사합니다!