<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ HTML - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/korean/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ HTML - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/korean/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Sat, 23 May 2026 08:27:48 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/korean/news/tag/html/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ HTML이란 무엇인가 - 하이퍼텍스트 마크업 언어의 정의와 의미 ]]>
                </title>
                <description>
                    <![CDATA[  HTML, 혹은 하이퍼텍스트 마크업 언어는 웹페이지의 구조를 정의하는 웹을 위한 마크업 언어입니다. 모든 웹사이트의 가장 기본적인 구성 요소이기 때문에 웹 개발자로서 경력을 쌓고 싶다면 반드시 배워야 할 언어이기도 합니다. 이 글에서는 HTML이 무엇인지 자세히 설명하고, HTML이 웹페이지에서 어떤 역할을 하는지와 HTML 중에서도 정말 멋진 시맨틱 HTML도 다룰 예정입니다. HTML이 ]]>
                </description>
                <link>https://www.freecodecamp.org/korean/news/what-is-html-definition-and-meaning/</link>
                <guid isPermaLink="false">6527283229e03d03e8aba9bd</guid>
                
                    <category>
                        <![CDATA[ HTML ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Minhyae Kim ]]>
                </dc:creator>
                <pubDate>Thu, 12 Oct 2023 12:36:35 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/korean/news/content/images/2023/10/html.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>기사 원문:</strong> <a href="https://www.freecodecamp.org/news/what-is-html-definition-and-meaning" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">What is HTML – Definition and Meaning of Hypertext Markup Language</a>
      </p><p><br>HTML, 혹은 하이퍼텍스트 마크업 언어는 웹페이지의 구조를 정의하는 웹을 위한 마크업 언어입니다.</p><p>모든 웹사이트의 가장 기본적인 구성 요소이기 때문에 웹 개발자로서 경력을 쌓고 싶다면 반드시 배워야 할 언어이기도 합니다.</p><p>이 글에서는 HTML이 무엇인지 자세히 설명하고, HTML이 웹페이지에서 어떤 역할을 하는지와 HTML 중에서도 정말 멋진 시맨틱 HTML도 다룰 예정입니다.</p><h2 id="html-">HTML이 무엇인가요?</h2><p>"HTML"을 처음부터 끝까지 이해하기 위해 이 약어를 구성하고 있는 각각의 단어를 하나씩 살펴보겠습니다.</p><p><strong>하이퍼텍스트(Hypertext)</strong>: 관련 항목을 연결하기 위해 구성된 텍스트(종종 이미지 등 삽입 포함)</p><p><strong>마크업(Markup)</strong>: 하드카피나 소프트카피로 출력될 모든 활자에 관한 스타일 가이드</p><p><strong>언어(Language)</strong>: 컴퓨터 시스템이 명령어를 이해하고 해석할 때 사용하는 언어</p><p>HTML은 웹페이지의 구조를 결정합니다. 이 구조만으로는 웹페이지를 보기 좋게 꾸미거나 상호작용이 가능하게 만들기는 어렵습니다. 그렇기 때문에 HTML을 예쁘게 꾸미거나 상호작용이 가능하게 하기 위해서는 각각 CSS와 자바스크립트라는 보조 기술을 사용하게 됩니다.</p><p>이 경우에 저는 이 HTML, CSS, 자바스크립트라는 세 가지 기술을 사람의 몸에 빗대어 설명하는 것을 좋아합니다.</p><ul><li>HTML은 뼈,</li><li>CSS는 살,</li><li>그리고 자바스크립트는 뼈와 살에 생명을 불어넣는 순환계, 소화계, 호흡계라고 할 수 있습니다.</li></ul><p>HTML, CSS, 자바스크립트를 이런 식으로도 볼 수 있습니다. HTML은 집을 이루는 뼈대, CSS는 집의 내부 및 외부 장식이며, 자바스크립트는 집을 거주 가능한 곳으로 만들어 주는 전기, 수도 시스템 및 그 밖의 여러 기능이라고 말입니다.</p><h2 id="html--1">HTML 태그</h2><p>HTML은 특정 웹페이지의 마크업을 정의하므로 텍스트, 이미지 등 삽입하는 내용을 특정한 방식으로 표시하는 것이 가능합니다.</p><p>예를 들어 어떤 텍스트는 크게, 다른 텍스트는 작게, 또 어떤 텍스트는 굵게, 혹은 이탤릭체나 글머리 기호 형식으로 하고 싶은 경우,</p><p>HTML의 "태그"를 사용하여 이런 일을 수행할 수 있습니다. 제목, 단락, 굵은 글씨 단어, 이탤릭체 단어 등을 표현하는 태그들이 있습니다.</p><p>아래의 이미지는 HTML 태그의 구조를 보여줍니다.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/08/anatomy-of-an-html-tag.png" class="kg-image" alt="HTML 태그의 구조" width="600" height="400" loading="lazy"></figure><h2 id="html--2">HTML 요소</h2><p>한 HTML 요소는 시작 태그(opening tag), 글자, 내용, 종료 태그(closing tag)로 이루어져 있습니다. HTML 요소의 내용이 비어 있을 때도 있습니다. 종료 태그 대신 웹페이지에 삽입하려는 콘텐츠의 소스나 링크가 있는 경우입니다.</p><p>비어 있는 HTML 요소의 예로는 웹페이지에 이미지를 삽입할 때 쓰는 <code>&lt;img&gt;</code>가 있습니다.</p><p>HTML 요소는 종종 태그와 호환해서 사용되지만, 둘 사이에는 약간의 차이점이 있습니다. HTML 요소는 한 쌍의 시작 태그와 종료 태그, 그리고 그 사이에 콘텐츠가 포함된 조합을 말합니다.</p><p>HTML 요소의 구조를 시각화하는 데 도움이 될 만한 또 다른 이미지를 만들어 봤습니다.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/08/anatomy-of-an-html-element.png" class="kg-image" alt="HTML 요소의 구조" width="600" height="400" loading="lazy"></figure><h2 id="html--3">HTML 속성</h2><p>HTML 태그에도 속성이라 불리는 것이 있습니다. 이 속성들은 시작 태그 안에 위치하며, 스타일 및 id부터 class까지 다룹니다. 이들은 요소에 관한 추가 정보를 전달하고 스타일 지정 및 자바스크립트를 사용한 조작과 같은 작업의 수행을 돕는 속성값을 사용합니다.</p><p>아래의 인포 그래픽에서 시작 태그에는 <code>"text"</code>라는 값을 가진 <code>class</code> 속성이 있습니다. 이는 요소의 스타일을 지정하거나 상호작용을 위해 자바스크립트에서 선택하는 데 사용할 수 있습니다.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/08/attribute-1.png" class="kg-image" alt="속성-1" width="600" height="400" loading="lazy"></figure><p>HTML 페이지의 기본적인 구조는 다음과 같습니다.</p><pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html&gt;
  &lt;head&gt;
    &lt;meta charset="UTF-8" /&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=edge" /&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale=1.0" /&gt;
    &lt;title&gt;Definition of HTML&lt;/title&gt;
  &lt;/head&gt;
  &lt;body&gt;
    &lt;!--Page content such as text and images goes in here--&gt;
  &lt;/body&gt;
&lt;/html&gt;
</code></pre><p>여기에서 중요한 코드를 짚어 봅시다.</p><p><code>&lt;!Doctype html&gt;</code>: 이 코드에서 HTML5를 사용하고 있음을 명시합니다. HTML5가 도입되기 전까지는 &lt;!Doctype&gt; 태그 속에 코딩 중인 HTML 버전을 분명하게 명시해야 했습니다. 예를 들면 HTML4.0 혹은 3.2, 이런 식으로요. 하지만 더 이상 그럴 필요가 없어졌습니다. 코드에 "html"이라고 적혀 있으면 브라우저는 자동으로 HTML5로 코딩하는 것으로 받아들입니다.</p><p><code>&lt;html&gt;&lt;/html&gt;</code>: 모든 HTML 문서의 루트, 혹은 최상위 요소입니다. 다른 모든 요소는 이 안에 래핑 되어야 합니다.</p><p><code>&lt;head&gt;&lt;/head&gt;</code>: 웹 크롤러는 페이지에서 중요한 정보를 얻기 위해 head 태그 내부를 살펴봅니다. 여기에는 페이지 타이틀, 스타일시트, SEO용 메타 인포메이션 등과 같은 정보가 포함되어 있습니다.</p><p><code>&lt;meta /&gt;</code>: 페이지의 메타 인포메이션을 전달하는 빈 요소입니다. 이러한 정보에는 작성자, 사용 중인 인코딩 유형(거의 항상 UTF-8), 응답성, 호환성 등이 포함될 수 있습니다. 웹 크롤러는 SEO에서 중요한 역할을 하는 웹페이지에 관한 정보를 얻기 위해 언제나 메타 태그를 확인합니다.</p><p><code>&lt;title&gt;&lt;/title&gt;</code>: 웹페이지의 타이틀을 정의하며, 항상 브라우저 탭에 표시됩니다.</p><p><code>&lt;body&gt;&lt;/body&gt;</code>: HTML 문서의 모든 내용은 body 태그 안에 있습니다. 전체 페이지에는 단 하나의 <code>&lt;body&gt;</code> 태그만 존재할 수 있습니다.</p><h2 id="-semantic-html-">시맨틱(Semantic, 의미론적) HTML이 무엇인가요?</h2><p>시맨틱(Semantic) HTML이란, HTML 태그가 어떤 역할을 하는지 실제 의미가 부여되었다는 것을 의미합니다.</p><p>처음 도입된 90년대 초반부터 시맨틱 HTML은 HTML의 필수 요소였습니다. 하지만 CSS가 대부분의 브라우저에서 사용되기 시작한 90년대 후반까지는 특별한 관련이 없는 것으로 여겨졌습니다.</p><p>시맨틱 HTML을 사용하면 <code>&lt;div&gt;</code> and <code>&lt;span&gt;</code> 와 같이 의미론적으로 중립적인 태그들은 홀대받게 됩니다. 왜냐하면 <code>&lt;header&gt;</code>, <code>&lt;nav&gt;</code>, <code>&lt;main&gt;</code>, <code>&lt;section&gt;</code>, <code>&lt;footer&gt;</code>, <code>&lt;article&gt;</code>와 같이 의미론적으로 설명이 더 잘된 태그가 동일한 작업을 수행할 수 있기 때문입니다.</p><p>시맨틱 태그를 사용했을 때 뚜렷한 이점은 웹 크를러가 웹페이지나 웹사이트를 쉽게 인덱싱할 수 있어 SEO가 향상된다는 것입니다.</p><p>또한 시맨틱을 사용하는 웹사이트는 스크린 리더(화면 판독기, 시각장애인을 위한 웹 서핑 프로그램)를 이용하는 접속자에게 더 많은 정보를 제공하고 적응 및 접근이 용이해집니다.</p><h3 id="-">주요 시맨틱 태그와 역할</h3><p>가장 일반적으로 쓰이는 시맨틱 HTML 태그 중 일부를 살펴보겠습니다.</p><p><code>&lt;header&gt;</code>: <code>&lt;header&gt;</code> 요소는 웹페이지의 소개 영역을 정의합니다. 여기에는 로고, 내비게이션, 테마 스위처, 검색창 등의 항목이 포함되어 있습니다.</p><p><code>&lt;nav&gt;</code>: <code>&lt;nav&gt;</code> &nbsp;요소는 홈, 연락처, 정보, FAQ 등과 같은 페이지의 내비게이션 항목을 지정합니다.</p><p><code>&lt;main&gt;</code>: <code>&lt;main&gt;</code> 요소는 일반적으로 태그의 직계 자손으로 취급됩니다. 여기에는 HTML 문서에서 <code>&lt;header&gt;</code> 와 <code>&lt;footer&gt;</code> 를 제외한 HTML 문서의 메인 영역이 포함되어 있습니다. 전체 HTML 문서에는 이 태그들(<code>&lt;header&gt;</code>, <code>&lt;footer&gt;</code>, <code>&lt;main&gt;</code>) 중 하나만 있는 것이 좋습니다.</p><p><code>&lt;section&gt;</code>: <code>&lt;section&gt;</code> 요소는 웹페이지의 특정 영역을 정의합니다. 쇼케이스 영역이 될 수도 있고, 소개 영역이나 연락처 영역 등이 될 수도 있습니다. 하나의 HTML 문서에서 수많은 영역을 사용할 수 있습니다.</p><p><code>&lt;article&gt;</code>: <code>&lt;article&gt;</code> 요소는 웹페이지에서 특정한 정보를 전달하는 특정 부분을 나타냅니다. 이러한 정보는 텍스트, 이미지, 동영상, 삽입(임베드)의 조합이 될 수도 있습니다. 다른 블로그 포스트들을 인용한 페이지의 독립적인 블로그 포스트로 보시면 됩니다.</p><p><code>&lt;aside&gt;</code>: 이름에서 알 수 있듯이 이 요소는 웹페이지의 사이드바를 나타냅니다. 보통 메인 콘텐츠와 직접적인 관련이 없는 웹페이지의 일부입니다.</p><p><code>&lt;footer&gt;</code>: <code>&lt;footer&gt;</code> 요소는 바로가기 링크, 저작권 정보 또는 전체 웹사이트나 웹페이지와 관련된 기타 데이터 같은 항목을 포함합니다.</p><p>시맨틱 요소는 실제 의미와 일부 특정 콘텐츠가 실제로 수행하는 작업(예: 내비게이션에는 nav, 사이드바에는 aside)을 전달하므로, 이러한 요소는 해당 위치에 자동으로 배치되지는 않는다는 사실을 알아두십시오. CSS로 그 작업을 해야 합니다.</p><p>아주 단순한 시맨틱 HTML 문서는 아래와 같습니다.</p><pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
  &lt;head&gt;
    &lt;meta charset="UTF-8" /&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=edge" /&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale=1.0" /&gt;
    &lt;title&gt;Definition of HTML&lt;/title&gt;
  &lt;/head&gt;

  &lt;body&gt;
    &lt;header&gt;
      &lt;h1 class="logo"&gt;LOGO&lt;/h1&gt;
      &lt;nav&gt;
        &lt;ul&gt;
          &lt;li&gt;Home&lt;/li&gt;
          &lt;li&gt;About&lt;/li&gt;
          &lt;li&gt;Contact&lt;/li&gt;
          &lt;li&gt;FAQs&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/nav&gt;
    &lt;/header&gt;
    &lt;main&gt;
      &lt;section class="about-me"&gt;
        &lt;article&gt;
          Lorem ipsum dolor, sit amet consectetur adipisicing elit. Optio magni
          est asperiores nemo, adipisci minus itaque quam, rem libero aliquam
          nesciunt, nisi inventore assumenda earum repellat labore ratione
          architecto eos quis. Soluta mollitia cupiditate dolorem. Consequatur a
          soluta laudantium nihil. Molestias, officiis ut! Nobis adipisci
          voluptatem quam at officia beatae!
        &lt;/article&gt;
      &lt;/section&gt;
      &lt;section class="contact-me"&gt;
        You can find me on
        &lt;a href="https://twitter.com/koladechris"&gt;Twitter&lt;/a&gt; You can find me on
        &lt;a href="https://Instagram.com/koladechris"&gt;Instagram&lt;/a&gt;
      &lt;/section&gt;
      &lt;aside class="address"&gt;My Address&lt;/aside&gt;
    &lt;/main&gt;
    &lt;footer&gt;© 2020 All Rights Reserved&lt;/footer&gt;
  &lt;/body&gt;
&lt;/html&gt;
</code></pre><p>브라우저에서는 이렇게 보입니다.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/08/semanticHTML-4.png" class="kg-image" alt="시맨틱 HTML-4" width="600" height="400" loading="lazy"></figure><p><code>&lt;aside&gt;</code> 태그 내부의 콘텐츠는 사이드바에 없고 <code>&lt;nav&gt;</code> 태그 내부의 콘텐츠는 자동으로 내비게이션바(navigation bar)로 사용되지 않는 사실을 알 수 있을 겁니다. 의도한 대로 보이도록 하기 위해서는 CSS를 사용해야 하는 이유가 바로 이 때문입니다.</p><h2 id="--1">결론</h2><p>이 글이 HTML의 기본과 기능을 이해하는 데 도움이 되었기를 바랍니다. 이제 CSS와 자바스크립트와 같은 고급 기술을 배우고, 웹 개발자로서 탄탄한 경력을 쌓으실 수 있을 겁니다.</p><p>읽어 주셔서 대단히 감사합니다. 즐거운 하루 보내세요.</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ 기본 HTML5 템플릿: 모든 웹 개발 프로젝트를 할때, HTML 보일러플레이트로 시작하세요. ]]>
                </title>
                <description>
                    <![CDATA[ 새 웹페이지를 만들 때, 좋은 기반을 갖고 시작하는 것은 매우 중요합니다. 이 아티클에서는 HTML5 보일러 플레이트가 무엇인지 또 어떻게 기본 템플릿을 프로젝트에 사용하는 것에 대하여 설명합니다. HTML5 보일러 플레이트란 무엇인가요? Wikipedia [https://en.wikipedia.org/wiki/Boilerplate_code#HTML] 에 따르면, > 보일러 플레이트 코드 또는 그냥 보일러 플레이트는 거의 변하지 않는 여러 곳에서 관습적으로 반복되어 사용되는 ]]>
                </description>
                <link>https://www.freecodecamp.org/korean/news/basic-html5-template-boilerplate-code-example/</link>
                <guid isPermaLink="false">645ef85b670e16066f8f2a29</guid>
                
                    <category>
                        <![CDATA[ HTML ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Jinny Kim ]]>
                </dc:creator>
                <pubDate>Tue, 16 May 2023 06:48:57 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/korean/news/content/images/2023/05/jackson-so-_t-l5FFH8VA-unsplash.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>기사 원문:</strong> <a href="https://www.freecodecamp.org/news/basic-html5-template-boilerplate-code-example/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">Basic HTML5 Template: Use This HTML Boilerplate as a Starter for Any Web Dev Project</a>
      </p><!--kg-card-begin: markdown--><p>새 웹페이지를 만들 때, 좋은 기반을 갖고 시작하는 것은 매우 중요합니다.<br>
이 아티클에서는 HTML5 보일러 플레이트가 무엇인지 또 어떻게 기본 템플릿을 프로젝트에 사용하는 것에 대하여 설명합니다.</p>
<h2 id="html5"><code>HTML5 보일러 플레이트</code>란 무엇인가요?</h2>
<p><a href="https://en.wikipedia.org/wiki/Boilerplate_code#HTML">Wikipedia</a> 에 따르면,</p>
<blockquote>
<p>보일러 플레이트 코드 또는 그냥 보일러 플레이트는 거의 변하지 않는 여러 곳에서 관습적으로 반복되어 사용되는 코드의 부분을 말합니다.<br>
HTML 템플릿의 보일러 플레이트는 프로젝트를 시작할 때 추가할 템플릿입니다.<br>
모든 HTML 페이지에 보일러 플레이트를 넣어야 합니다.</p>
</blockquote>
<h2 id="html5"><code>HTML5 보일러 플레이트</code>의 예시</h2>
<p>기본 예제를 봅시다.</p>
<pre><code>&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
  &lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="ie=edge"&gt;
    &lt;title&gt;HTML 5 Boilerplate&lt;/title&gt;
    &lt;link rel="stylesheet" href="style.css"&gt;
  &lt;/head&gt;
  &lt;body&gt;
	&lt;script src="index.js"&gt;&lt;/script&gt;
  &lt;/body&gt;
&lt;/html&gt;
</code></pre>
<h3 id="htmldoctype">HTML 안의 <code>doctype</code>는 무엇인가요?</h3>
<p>HTML코드의 첫 번째 줄은 doctype 선언이어야 합니다.<br>
doctype은 브라우저에 HTML이 어떤 버전인지 알려줍니다.</p>
<pre><code>&lt;!DOCTYPE html&gt;
</code></pre>
<p>만약 당신의 파일에 이 코드 라인을 넣는 것을 잊어버리면,  <code>&lt;article&gt;</code> , <code>&lt;footer&gt;</code>, and <code>&lt;header&gt;</code> 같은 HTML5 태그 중 일부는 브라우저에서 지원을 하지 못합니다.</p>
<h3 id="htmlroot">HTML 기본(root) 요소는 무엇인가요?</h3>
<p><code>&lt;html&gt;</code> 태그는 HTML파일의 최상위 요소입니다. <code>&lt;html&gt;</code> 안에 <code>&lt;head&gt;</code>태그와 <code>&lt;body&gt;</code>가 포함되어 있습니다.</p>
<pre><code>&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
  &lt;head&gt;&lt;/head&gt;
  &lt;body&gt;&lt;/body&gt;
&lt;/html&gt;
</code></pre>
<p><code>&lt;html&gt;</code> 태그 안에 있는 lang 속성은 페이지의 언어를 설정합니다.<br>
화면 리더기가 올바르게 발음하는 방법을 알 수 있고 접근성을 위해서도 lang 속성을 포함하는 것이 좋습니다.</p>
<h3 id="htmlhead">HTML의 head 태그란 무엇인가요?</h3>
<p><code>&lt;head&gt;</code> 태그에는 기계가 처리할 수 있는 정보가 포함되어 있습니다.<br>
<code>&lt;head&gt;</code> 태그 안에는 기계가 문서를 설명할 수 있는 메타데이터가 포함되어 있습니다.</p>
<pre><code>&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="ie=edge"&gt;
    &lt;title&gt;HTML 5 Boilerplate&lt;/title&gt;
    &lt;link rel="stylesheet" href="style.css"&gt;
&lt;/head&gt;
</code></pre>
<h3 id="utf8">UTF-8 문자 인코딩이란 무엇인가요?</h3>
<p>UTF-8은 웹페이지에서 사용하는 표준 문자 인코딩을 말합니다.<br>
보통 이 <code>&lt;meta&gt;</code>태그는 <code>&lt;head&gt;</code>요소의 첫 번째에 있습니다.</p>
<pre><code>&lt;meta charset="UTF-8"&gt;
</code></pre>
<p><a href="https://www.w3.org/International/questions/qa-choosing-encodings">월드 와이드 웹 컨소시엄(World Wide Web Consortium(W3C)</a>에 따르면,</p>
<blockquote>
<p>UTF-8과 같은 유니코드 기반 인코딩은 다양한 언어를 지원할 수 있으며 언어가 혼합된 페이지와 서식을 처리할 수 있습니다.<br>
또한 각 페이지 또는 수신되는 서식 제출에 대한 문자 인코딩을 개별적으로 결정하기 위해 서버 로직(server-side logic)을 사용할 필요가 없습니다.</p>
</blockquote>
<h3 id="html">HTML의 뷰포트 메타 태그란 무엇인가요?</h3>
<p>이 태그는 페이지의 너비를 기기의 화면 크기의 너비에 맞게 렌더링합니다.<br>
너비가 600픽셀인 모바일 기기를 사용하는 경우 브라우저 창도 너비가 600픽셀이 됩니다.<br>
초기 배율은 확대/축소의 크기 배율을 조절합니다. 초기 배율을 1로 설정하면 브라우저의 기본 확대/축소를 방지할 수 있습니다.</p>
<pre><code> &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
</code></pre>
<h3 id="xuaxuacompatible">X-UA-호환(<code>X-UA-Compatible</code>)은 무엇인가요?</h3>
<p>이 <code>&lt;meta&gt;</code>태그는 인터넷 익스플로러의 문서모드를 지정합니다.<br>
<code>IE=edge</code> 가 가장 많이 지원되는 모드입니다.</p>
<pre><code>&lt;meta http-equiv="X-UA-Compatible" content="ie=edge"&gt;
</code></pre>
<h3 id="htmltitle">HTML의 타이틀(<code>&lt;title&gt;</code>) 태그란 무엇인가요?</h3>
<p><code>&lt;title&gt;</code>태그는 웹페이지의 타이틀을 말합니다. 이 태그의 값은 브라우저의 타이틀 바의 글귀를 바꿔줍니다.</p>
<pre><code>    &lt;title&gt;HTML 5 Boilerplate&lt;/title&gt;
</code></pre>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/07/Screen-Shot-2021-07-30-at-4.15.25-AM.png" alt="Screen-Shot-2021-07-30-at-4.15.25-AM" width="600" height="400" loading="lazy"></p>
<h3 id="css">CSS 스타일시트</h3>
<p>이 코드는 사용자가 정의한 CSS를 HTML 페이지에 링크합니다 <code>rel="stylesheet"</code>는 HTML 파일과 외부 스타일 시트의 관계를 정의합니다.</p>
<pre><code>    &lt;link rel="stylesheet" href="style.css"&gt;
</code></pre>
<h3 id="html">HTML의 스크립트 태그란 무엇인가요?</h3>
<p>스크립트<code>&lt;script&gt;</code> 태그는 <code>&lt;body&gt;</code> 태그 바로 앞에 배치됩니다. 여기에 외부 자바스크립트 코드를 링크할 수 있습니다.</p>
<pre><code>	&lt;script src="index.js"&gt;&lt;/script&gt;
</code></pre>
<h2 id="">결론</h2>
<p>모든 HTML 페이지에 HTML 5 보일러 플레이트를 추가해야 합니다.<br>
이 시작 코드에는 문서 유형(doctype), 메타데이터, 외부 스타일 시트 및 스크립트 태그와 같은 중요한 정보가 포함되어 있습니다.</p>
<!--kg-card-end: markdown--> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ HTML 폼 - 입력 유형과 제출 버튼 예제 ]]>
                </title>
                <description>
                    <![CDATA[ 폼은 웹에서 가장 중요한 부분 중 하나입니다. 데이터를 수집하고 리소스를 검색하거나 중요한 정보를 받기 위해 회원가입 하는 경우 폼을 이용하면 가장 쉽습니다. 여러분은 HTML form 요소를 사용해 웹사이트에 폼을 포함할 수 있습니다. 폼 요소 내부에는 여러 가지 입력이 중첩되어 있습니다. 이러한 입력들은 폼 컨트롤이라고도 합니다. 이 튜토리얼에서는 HTML 폼 요소, ]]>
                </description>
                <link>https://www.freecodecamp.org/korean/news/html-form-input-type-and-submit-button-example/</link>
                <guid isPermaLink="false">64565575fc175c06725394f0</guid>
                
                    <category>
                        <![CDATA[ HTML ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Miri Joo ]]>
                </dc:creator>
                <pubDate>Fri, 05 May 2023 13:33:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/korean/news/content/images/2023/05/1212.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>기사 원문:</strong> <a href="https://www.freecodecamp.org/news/html-form-input-type-and-submit-button-example/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">HTML Form – Input Type and Submit Button Example</a>
      </p><!--kg-card-begin: markdown--><h4 id="">폼은 웹에서 가장 중요한 부분 중 하나입니다. 데이터를 수집하고 리소스를 검색하거나 중요한 정보를 받기 위해 회원가입 하는 경우 폼을 이용하면 가장 쉽습니다.</h4>
<p>여러분은 HTML <code>form</code> 요소를 사용해 웹사이트에 폼을 포함할 수 있습니다. 폼 요소 내부에는 여러 가지 입력이 중첩되어 있습니다. 이러한 입력들은 폼 컨트롤이라고도 합니다.</p>
<p>이 튜토리얼에서는 HTML 폼 요소, 다양한 입력 유형 및 데이터를 제출하는 제출 버튼을 만드는 방법에 관해 설명합니다.</p>
<p>마지막에는 폼이 어떻게 작동하는지 알게 되고 자신있게 폼을 만들 수 있을 것입니다.</p>
<h2 id="html">기본 HTML 폼 구문</h2>
<pre><code class="language-html">&lt;form action="mywebsite.com" method="POST"&gt;
    &lt;!--Input of any type and textareas goes in here--&gt;
&lt;/form&gt;
</code></pre>
<h2 id="html">기본 HTML 폼 입력 유형</h2>
<p>HTML에서 다양한 폼 컨트롤을 만들기 위해 <code>input</code> 태그를 사용합니다. 이 태그는 인라인 요소이며 <code>type</code>, <code>name</code>,<code>minLength</code>,<code>maxLength</code>,<code>placeHolder</code> 등과 같은 속성을 사용합니다. 이렇게 각각의  속성에는 사용하는 특정한 값을 가집니다.</p>
<p><code>placeHolder</code> 속성의 경우, 사용자가 항목을 입력하기 전에 입력 필드의 목적을 이해하는 데 도움이 되므로 중요합니다.</p>
<p>그럼, 입력 유형은 20가지가 있으며 하나씩 살펴보겠습니다.</p>
<h2 id="">텍스트 유형</h2>
<p>이 유형의 입력은 "text" 값을 사용하며, 한 줄의 텍스트 입력을 만듭니다.</p>
<pre><code class="language-html">&lt;input type="text" placeholder="Enter name" /&gt;
</code></pre>
<p>텍스트 유형의 입력은 아래 스크린샷과 같습니다:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/textInput.png" alt="텍스트 유형 이미지" width="600" height="400" loading="lazy"></p>
<h2 id="">비밀번호 유형</h2>
<p>이름에서 알 수 있듯이, 이 유형을 입력하면 비밀번호가 생성됩니다. 그리고 자바스크립트로 조작하지 않는 한, 사용자가 자동으로 입력값을 볼 수 없습니다.</p>
<pre><code class="language-html">&lt;input type="password" placeholder="Enter your password" /&gt;
</code></pre>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/passwordInput.png" alt="비밀번호 유형 이미지" width="600" height="400" loading="lazy"></p>
<h2 id="">이메일 유형</h2>
<p>이메일 유형의 모든 입력은 이메일 주소를 입력하기 위한 필드를 정의합니다.</p>
<pre><code class="language-html">&lt;input type="email" placeholder="Enter your email" /&gt;
</code></pre>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/typeEmail.png" alt="이메일 유형 이미지" width="600" height="400" loading="lazy"></p>
<h2 id="">숫자 유형</h2>
<p>이 입력 유형을 사용하면 숫자만 입력할 수 있습니다.</p>
<pre><code class="language-html">&lt;input type="number" placeholder="Enter a number" /&gt;
</code></pre>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/typeEmail.png" alt="숫자 유형 이미지" width="600" height="400" loading="lazy"></p>
<h2 id="">라디오 유형</h2>
<p>때에 따라 사용자는 다양한 옵션 중 하나를 선택해야 합니다. 유형 속성이 "radio"로 설정된 입력 필드를 사용하면 이 작업을 수행할 수 있습니다.</p>
<pre><code class="language-html">&lt;input type="radio" /&gt;
</code></pre>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/typeRadio.png" alt="라디오 유형 이미지" width="600" height="400" loading="lazy"></p>
<h2 id="">체크박스 유형</h2>
<p>앞서 언급했다시피, 라디오 입력 유형을 통해 사용자는 다양한 옵션 중 하나를 선택할 수 있습니다. 하지만 다양한 옵션을 선택하고자 한다면 어떻게 해야 할까요? 이때, <code>checkbox</code>유형 속성을 사용하면 됩니다.</p>
<pre><code class="language-html">&lt;input type="checkbox" /&gt;
</code></pre>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/typeCheckbox.png" alt="체크박스 유형 이미지" width="600" height="400" loading="lazy"></p>
<h2 id="">제출 유형</h2>
<p>이 유형을 사용하여 폼에 제출 버튼을 추가합니다. 사용자가 버튼을 클릭하면, 폼이 자동으로 제출됩니다. 값 속성을 사용해 버튼 안의 텍스트를 정의합니다.</p>
<pre><code class="language-html">&lt;input type="submit" value="Enter to Win" /&gt;
</code></pre>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/typeSubmit.png" alt="제출 유형 이미지" width="600" height="400" loading="lazy"></p>
<h2 id="">버튼 유형</h2>
<p>버튼으로 설정된 유형의 입력은 자바스크립트의 onClick 이벤트 리스너 유형으로 조작할 수 있는 버튼을 만듭니다. 기본적으로 이 유형은 값이 비어 있으므로 값을 지정해야 한다는 점을 제외하고는 제출 입력 유형과 동일한 버튼을 만듭니다.</p>
<pre><code class="language-html">&lt;input type="button" value="Submit" /&gt;
</code></pre>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/typeButton.png" alt="버튼 유형 이미지" width="600" height="400" loading="lazy"></p>
<h2 id="">파일 유형</h2>
<p>이 유형은 파일 제출을 위한 필드를 정의합니다. 사용자가 클릭하면,  원하는 파일 형식(이미지, PDF, 문서 파일 등)을 삽입하라는 메시지가 나타납니다.</p>
<pre><code class="language-html">&lt;input type="file" /&gt;
</code></pre>
<p>파일 입력 유형의 결과는 다음과 같습니다:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/fileInput.png" alt="파일 유형 이미지" width="600" height="400" loading="lazy"></p>
<h2 id="">색상 유형</h2>
<p>이는 HTML5에서 소개된 화려한 입력 유형입니다. 예를 들어, 사용자는 자신이 가장 좋아하는 색상을 제출할 수 있습니다. 검은색(#000000)이 기본값이지만, 원하는 색의 값으로 재정의할 수 있습니다.</p>
<p>많은 개발자가 RGB, HSL 및 영숫자 형식으로 사용할 수 있는 다양한 색조를 선택하기 위한 속임수로 이 기능을 사용합니다.</p>
<pre><code class="language-html">&lt;input type="color" /&gt;
</code></pre>
<p>색 입력 유형의 결과는 다음과 같습니다.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/colorInput.png" alt="색상 유형 이미지" width="600" height="400" loading="lazy"></p>
<h2 id="">검색 유형</h2>
<p>검색 유형이 있는 입력은 텍스트 입력 유형과 마찬가지로 텍스트 필드를 정의합니다. 하지만 이 유형은 정보를 검색하는 것일 유일한 목적입니다. 사용자가 입력을 시작하면 취소 버튼이 나타난다는 점에서 텍스트 유형과 다릅니다.</p>
<pre><code class="language-html">&lt;input type="search" /&gt;
</code></pre>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/typeSearch.png" alt="검색 유형 이미지" width="600" height="400" loading="lazy"></p>
<h2 id="url">URL 유형</h2>
<p>입력 태그의 유형 속성을 URL로 설정하면, 사용자가 URL을 입력할 수 있는 필드가 표시됩니다.</p>
<pre><code class="language-html">&lt;input type="url" /&gt;
</code></pre>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/typeURL.png" alt="URL 유형 이미지" width="600" height="400" loading="lazy"></p>
<h2 id="">전화 유형</h2>
<p>전화 유형을 사용하여 사용자로부터 전화번호를 수집할 수 있습니다.</p>
<pre><code class="language-html">&lt;input type="tel" /&gt;
</code></pre>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/typeTel.png" alt="전화 유형 이미지" width="600" height="400" loading="lazy"></p>
<h2 id="">날짜 유형</h2>
<p>당신은 특정 이벤트의 날짜를 요청한 웹사이트에 등록한 적이 있을 겁니다. 그 웹사이트에서 이 값을 얻기 위해 날짜로 설정된 유형 값이 있는 입력을 사용했을 것입니다.</p>
<pre><code class="language-html">&lt;input type="date" /&gt;
</code></pre>
<p>날짜 유형이 있는 입력은 다음과 같습니다:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/dateInput.png" alt="날짜 유형 이미지" width="600" height="400" loading="lazy"></p>
<h2 id="datetilelocal">Datetile-local 유형</h2>
<p>이 입력 유형은 날짜 유형처럼 작동하지만, 사용자가 특정 시간의 날짜를 선택할 수도 있습니다.</p>
<pre><code class="language-html">&lt;input type="datetime-local" /&gt;
</code></pre>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/datelocalInput.png" alt="datetile-local 유형 이미지" width="600" height="400" loading="lazy"></p>
<h2 id="">주 유형</h2>
<p>이 입력 유형을 사용하면 특정 주를 선택할 수 있습니다.</p>
<pre><code class="language-html">&lt;input type="week" /&gt;
</code></pre>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/weekInput.png" alt="주 유형 이미지" width="600" height="400" loading="lazy"></p>
<h2 id="">월 유형</h2>
<p>월 유형의 입력은 사용자가 클릭했을 때 선택할 수 있는 월을 채웁니다.</p>
<pre><code class="language-html">&lt;input type="month" /&gt;
</code></pre>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/monthInput.png" alt="월 유형 이미지" width="600" height="400" loading="lazy"></p>
<h2 id="">텍스트 영역</h2>
<p>사용자가 텍스트 입력 유형에 적합하지 않은 여러 줄의 텍스트를 입력해야 하는 경우가 있습니다(텍스트 입력 유형은 한 줄 텍스트 필드를 지정하기 때문에).</p>
<p>텍스트 영역을 사용해 여러 줄의 텍스트 입력을 정의할 때 이 작업을 수행할 수 있습니다. 텍스트 영역의 고유한 속성으로, 행 수에 대해 cols, 열 수에 대해 rows가 있습니다.</p>
<pre><code class="language-html">&lt;textarea cols="50" rows="20"&gt;&lt;/textarea&gt;
</code></pre>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/textarea.png" alt="텍스트 영역 유형 이미지" width="600" height="400" loading="lazy"></p>
<h2 id="">다중 선택 박스</h2>
<p>smoothjjuu marked this conversation as resolved.</p>
<p>이것은 하나의 패키지에 라디오 버튼과 체크박스가 있는 것과 같습니다. 선택 요소와 옵션의 두 가지 요소가 페이지에 포함돼 있으며, 옵션은 항상 선택 요소 내부에 중첩되어 있습니다.</p>
<p>기본적으로 사용자는 옵션 중 하나만 선택할 수 있습니다. 그러나 여러 속성을 사용하면, 사용자가 둘 이상의 옵션을 선택할 수 있습니다.</p>
<pre><code class="language-html">&lt;select&gt;
      &lt;option value="HTML"&gt;Select a Language&lt;/option&gt;
      &lt;option value="HTML"&gt;HTML&lt;/option&gt;
      &lt;option value="CSS"&gt;CSS&lt;/option&gt;
      &lt;option value="JavaScript"&gt;JavaScript&lt;/option&gt;
      &lt;option value="React"&gt;React&lt;/option&gt;
&lt;/select&gt;
</code></pre>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/selectDemo.png" alt="다중 선택 박스 이미지" width="600" height="400" loading="lazy"></p>
<h2 id="html">HTML 입력에 레이블 지정 방법</h2>
<p>폼 컨트롤에 레이블을 할당하는 것은 중요합니다. <code>for</code>와 <code>id</code> 속성을 통해 입력 필드에 올바르게 연결되면, 사용자가 레이블 자체를 클릭해 입력에 접근할 수 있으므로 사용하기가 더 쉽습니다.</p>
<pre><code class="language-html">&lt;label for="name"&gt;Name&lt;/label&gt;
&lt;input type="text" id="name" /&gt; &lt;br /&gt;
&lt;label for="check"&gt;Agree with terms&lt;/label&gt;
&lt;input type="checkbox" id="check" /&gt;
</code></pre>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/labelDemo.gif" alt="레이블 데모 GIF" width="600" height="400" loading="lazy"></p>
<h2 id="html">HTML 폼 작동 방법</h2>
<p>사용자가 폼을 작성하고 제출 버튼으로 제출하면, 폼 컨트롤의 데이터가  GET 또는 POST HTTP 요청 메소드를 통해 서버로 전송됩니다.</p>
<p>그럼, 서버에 어떻게 표시될까요? 폼 요소는 서버의 URL에 지정해야 하는 액션 속성을 사용합니다. 또한, 서버에 값을 전달하는 데 사용하는 지정된 HTTP 메소드 속성도 사용합니다.</p>
<p>이 메소드는 <code>GET</code> 혹은 <code>POST</code>가 될 수 있습니다. <code>GET</code> 메소드를 사용해, 데이터가 제출되면                           사용자가 입력한 값이 URL에 표시됩니다. 그러나 <code>POST</code>를 사용하면, 값이 HTTP 해더에 전송되므로 해당 값이 URL에 표시되지 않습니다.</p>
<p>만약 메소드 속성이 폼에서 사용되지 않으면, 자동으로 디폴트인 GET 메소드를 사용하려는 것으로 간주합니다.</p>
<p>그렇다면 언제 <code>GET</code> 혹은 <code>POST</code> 메소드를 사용해야 할까요? 중요하지 않은 데이터를 제출하거나, 서버에서 데이터를 검색하려면 <code>GET</code> 메소드를 사용합니다. 중요한 데이터나 파일을 제출할 때는 <code>POST</code> 요청을 사용합니다.</p>
<h2 id="">미니 프로젝트: 기본 연락처 폼 만들기</h2>
<p>이제 폼에 대해 배운 내용을 가지고 간단한 연락처 폼을 만들어 보겠습니다. 그리고 이 모든 것을 정리하면서 몇 가지 새로운 개념을 소개하겠습니다.</p>
<h3 id="html">HTML 코드는 아래와 같습니다:</h3>
<pre><code class="language-html">&lt;form action="example-server.com"&gt;
      &lt;fieldset&gt;
        &lt;legend&gt;Contact me&lt;/legend&gt;
        &lt;div class="form-control"&gt;
          &lt;label for="name"&gt;Name&lt;/label&gt;
          &lt;input type="name" id="name" placeholder="Enter your name" required /&gt;
        &lt;/div&gt;

        &lt;div class="form-control"&gt;
          &lt;label for="email"&gt;Email&lt;/label&gt;
          &lt;input
            type="email"
            id="email"
            placeholder="Enter your email"
            required
          /&gt;
        &lt;/div&gt;

        &lt;div class="form-control"&gt;
          &lt;label for="message"&gt;Message&lt;/label&gt;
          &lt;textarea
            id="message"
            cols="30"
            rows="10"
            placeholder="Enter your message"
            required
          &gt;&lt;/textarea&gt;
        &lt;/div&gt;
        &lt;input type="submit" value="Send" class="submit-btn" /&gt;
      &lt;/fieldset&gt;
&lt;/form&gt;
</code></pre>
<h3 id="html">HTML 코드에서 무슨 일이 일어나고 있습니까?</h3>
<p>첫째, 폼 요소는 다른 모든 요소를 감쌉니다. 폼 데이터를 수신할 더미 서버인 "example-server.com"으로 설정된 액션이 있습니다.</p>
<p>폼 요소 다음, 다른 모든 요소도 바로 아래에 <code>legend</code> 태그가 있는 <code>fieldset</code> 요소로 둘러싸여 있습니다.</p>
<p><code>fieldset</code> 요소를 사용해 관련 입력을 그룹화하고, <code>legend</code> 태그에는 폼이 무엇에 관한 것인지를 전달하는 캡션이 포함되어 있습니다.</p>
<p><code>name</code>, <code>email</code> 그리고 <code>textarea</code> 입력 모두 폼 컨트롤 클래스가 있는 <code>div</code>에 있습니다. 따라서 CSS로 스타일링을 쉽게 하기 위해 블록 요소처럼 작동합니다.</p>
<p>또한 필수 속성으로 검증되므로, 해당 필드가 비어 있거나 사용자가 적절한 형식으로 값을 입력하지 못하면 양식이 제출되지 않습니다.</p>
<p>결과는 아래 스크린샷에서 확인할 수 있습니다:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/unstyledForm.png" alt="HTML 스크린샷 이미지" width="600" height="400" loading="lazy"></p>
<p>스타일링 없는 HTML은 너무 안 예쁘네요. 그럼, 이제 스타일링을 적용해 보겠습니다!</p>
<h3 id="css">CSS는 아래와 같습니다:</h3>
<pre><code class="language-css">body {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100vh;
    font-family: cursive;
  }
 input,
    textarea {
    width: 100%;
    padding: 5px;
    outline: none;
  }
  label {
    line-height: 1.9rem;
  }
  input[type="submit"] {
   transform: translate(2.2%);
   padding: 3px;
   margin-top: 0.6rem;
   font-family: cursive;
   font-weight: bold;
  }
 fieldset {
   padding: 20px 40px;
 }
</code></pre>
<h3 id="css">CSS 코드 분석하기</h3>
<p>Flexbox를 이용해 body의 모든 것을 수평으로, 뷰포트 높이를 100% 수직으로 중앙에 배치합니다. 그리고 font-family로 cursive 폰트를 사용했습니다.</p>
<p>입력과 텍스트 영역을 100% 너비로 지정해 모든 영역을 가로지르게 했습니다. 레이블은 최소 line-height로 1.9 rem(30.4px)으로 각각의 입력에 너무 가깝게 유지되지 않도록 헸습니다.</p>
<p>버튼(입력 타입 버튼)을 transform 속성으로 스타일을 지정해, 중앙에서 약간 벗어난 것처럼 중앙으로 밀어 넣었습니다. 3px의 padding을 주어 더 많은 간격을 두었고, font-family로 cursive를 font-weight는 bold로 굵게 선택했습니다.</p>
<p>버튼이 <code>textarea</code>에 너무 가깝기 때문에, margin-top을 0.6 rem으로 설정해 약간 아래로 밀었습니다.</p>
<p>fieldset 요소에 위쪽과 아래쪽에 20px의 padding을 지정했으며, 왼쪽과 오른쪽에 40px를 주어 감싸고 있는 폼 요소 주위에 생성된 테두리를 밀어냅니다.</p>
<p>결국에는 아래와 같은 아름다운 형태를 보이게 됩니다.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/styledForm.png" alt="최종 폼 스크린샷" width="600" height="400" loading="lazy"></p>
<h2 id="">결론</h2>
<p>이 튜토리얼이 폼이 어떻게 작동하는지를 이해하는 데 도움이 됐기를 바랍니다. 이제 이 글을 완독한 당신은 웹사이트에 데이터 수집을 시작할 수 있는 폼에 대한 지식을 갖췄습니다.</p>
<p>그럼 읽어주셔서 감사합니다. 즐거운 코딩 하세요.</p>
<!--kg-card-end: markdown--> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ HTML Select 태그: 드롭다운 메뉴 또는 콤보 리스트를 만드는 방법 ]]>
                </title>
                <description>
                    <![CDATA[ 여러분은 사용자가 원하는 값을 선택할 수 있도록 HTML select 태그를 이용해서 드롭다운 메뉴를 만듭니다. 이는 서버로 전송할 데이터를 수집하는 데 중요한 기능입니다. select 태그는 보통 form 요소 안에 들어가며, 선택 항목은 또 다른 태그인 <option>에서 코드화됩니다. 또한 독립적인 요소로도 쓸 수 있는데, 이 요소는 여전히 특수 속성 중 하나인 form과 ]]>
                </description>
                <link>https://www.freecodecamp.org/korean/news/html-select-taegeu-deurobdaun-menyu-ddoneun-kombo-riseuteureul-mandeuneun-bangbeob/</link>
                <guid isPermaLink="false">63d0cfb87a7b73070e7971ea</guid>
                
                    <category>
                        <![CDATA[ HTML ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Jeeann K. ]]>
                </dc:creator>
                <pubDate>Thu, 26 Jan 2023 08:15:45 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/korean/news/content/images/2023/01/1-1.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>기사 원문:</strong> <a href="https://www.freecodecamp.org/news/html-select-tag-how-to-make-a-dropdown-menu-or-combo-list/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">HTML Select Tag – How to Make a Dropdown Menu or Combo List</a>
      </p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/korean/news/content/images/2023/01/1.png" class="kg-image" alt="1" srcset="https://www.freecodecamp.org/korean/news/content/images/size/w600/2023/01/1.png 600w, https://www.freecodecamp.org/korean/news/content/images/size/w1000/2023/01/1.png 1000w, https://www.freecodecamp.org/korean/news/content/images/2023/01/1.png 1200w" sizes="(min-width: 720px) 720px" width="1200" height="628" loading="lazy"></figure><!--kg-card-begin: markdown--><h5 id="htmlselect">여러분은 사용자가 원하는 값을 선택할 수 있도록 HTML <code>select</code> 태그를 이용해서 드롭다운 메뉴를 만듭니다. 이는 서버로 전송할 데이터를 수집하는 데 중요한 기능입니다.</h5>
<p><code>select</code> 태그는 보통 <code>form</code> 요소 안에 들어가며, 선택 항목은 또 다른 태그인 <code>&lt;option&gt;</code>에서 코드화됩니다. 또한 독립적인 요소로도 쓸 수 있는데, 이 요소는 여전히 특수 속성 중 하나인 <code>form</code>과 연관되어 있습니다.</p>
<p>이 튜토리얼에서는 <code>select</code> 태그로 여러분의 코딩 프로젝트에서 데이터를 수집할 수 있게 드롭다운 메뉴를 만드는 방법을 알려드립니다. <code>select</code> 태그는 스타일링이 어렵기로 악명이 높기 때문에 스타일링하는 방법도 가르쳐드릴 겁니다.</p>
<h2 id="select">Select 태그의 속성</h2>
<p><code>select</code> 태그로 드롭다운 메뉴를 만드는 방법을 자세히 살펴보기 전에, <code>select</code> 태그가 가진 속성들에 대해 알아봐야 합니다.</p>
<p>속성은 다음과 같습니다.</p>
<ul>
<li><code>name</code>: 데이터가 서버에 제출된 후 데이터를 참조하는 데 사용되므로 모든 <code>form</code> 컨트롤에 <code>name</code>을 넣어야 합니다.</li>
<li><code>multiple</code>: 이 속성은 사용자가 드롭다운 메뉴에서 여러 옵션을 선택할 수 있도록 합니다.</li>
<li><code>required</code>: 이 속성은 일반적으로 유효성 검사를 위해 사용됩니다. 이 속성을 통해, 사용자가 드롭다운 메뉴에서 하나 이상의 옵션을 선택하지 않으면 <code>form</code>이 제출되지 않습니다.</li>
<li><code>disabled</code>: 사용자가 옵션을 선택할 수 없도록 합니다.</li>
<li><code>size</code>: 이 속성은 숫자로 표현되며, 한 번에 표시되는 옵션 수를 정하는데 사용됩니다.</li>
<li><code>autofocus</code>: 이 속성은 페이지가 로드 될 때 포커스가 있어야 할 입력 요소를 지정합니다. <code>select</code>를 포함한 모든 <code>form</code> 요소들에 사용될 수 있습니다.</li>
</ul>
<h2 id="select">Select 태그를 사용하여 드롭다운 메뉴를 만드는 방법</h2>
<p><code>select</code> 태그로 드롭다운 메뉴를 만들려면, 먼저 <code>form</code> 요소가 필요합니다. 왜냐하면 서버에 데이터를 제출할 <code>submit</code> 버튼이 <code>form</code> 요소 안에 있기 때문입니다.</p>
<pre><code class="language-html">&lt;form action="#"&gt;
  &lt;label for="lang"&gt;Language&lt;/label&gt;
  &lt;select name="languages" id="lang"&gt;
    &lt;option value="javascript"&gt;JavaScript&lt;/option&gt;
    &lt;option value="php"&gt;PHP&lt;/option&gt;
    &lt;option value="java"&gt;Java&lt;/option&gt;
    &lt;option value="golang"&gt;Golang&lt;/option&gt;
    &lt;option value="python"&gt;Python&lt;/option&gt;
    &lt;option value="c#"&gt;C#&lt;/option&gt;
    &lt;option value="C++"&gt;C++&lt;/option&gt;
    &lt;option value="erlang"&gt;Erlang&lt;/option&gt;
  &lt;/select&gt;
  &lt;input type="submit" value="Submit" /&gt;
&lt;/form&gt;
</code></pre>
<p>드롭다운과 버튼을 중앙에 놓고, <code>body</code>에 밝은 회색 배경을 주기 위해 몇 가지 간단한 CSS를 추가했습니다.</p>
<pre><code class="language-css">body {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  height: 100vh;
  background-color: #f1f1f1;
}
input {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
}
</code></pre>
<p>접근성을 높이기 위해서, <code>select</code> 박스를 <code>label</code> 요소에 붙일 수도 있습니다. 그러면 <code>label</code> 텍스트가 클릭 될 때 포커스가 됩니다.</p>
<p>아래의 코드와 같이 하실 수 있습니다.</p>
<pre><code class="language-html">&lt;form action="#"&gt;
  &lt;label for="lang"&gt;Language&lt;/label&gt;
  &lt;select name="languages" id="lang"&gt;
    &lt;option value="javascript"&gt;JavaScript&lt;/option&gt;
    &lt;option value="php"&gt;PHP&lt;/option&gt;
    &lt;option value="java"&gt;Java&lt;/option&gt;
    &lt;option value="golang"&gt;Golang&lt;/option&gt;
    &lt;option value="python"&gt;Python&lt;/option&gt;
    &lt;option value="c#"&gt;C#&lt;/option&gt;
    &lt;option value="C++"&gt;C++&lt;/option&gt;
    &lt;option value="erlang"&gt;Erlang&lt;/option&gt;
  &lt;/select&gt;
  &lt;input type="submit" value="Submit" /&gt;
&lt;/form&gt;
</code></pre>
<p>저는 <code>action</code> 속성의 값으로 숫자 기호(#)를 넣었습니다. 이렇게 하면 <code>submit</code> 버튼을 눌렀을 때 404 에러가 나오지 않습니다.</p>
<p>하지만 이제 CSS를 약간 수정 해야 합니다.</p>
<pre><code class="language-css">body {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  height: 100vh;
  background-color: #f1f1f1;
}
input {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
}
label {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
}
select {
  margin-bottom: 10px;
  margin-top: 10px;
}
</code></pre>
<p>마침내, 결과가 나왔습니다.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/09/select-one.gif" alt="회색 배경에 있는 드롭다운 요소가 작동하는 모습" width="600" height="400" loading="lazy"></p>
<p>저기서 끝이 아닙니다. 드롭다운 항목 중 하나가 기본값으로 보이고 있으며, 페이지에 도착한 사용자가 그냥 <code>submit</code> 버튼을 누른다면 바로 이 항목이 선택될 겁니다.</p>
<p>하지만 이건 좋은 사용자 경험이 아닙니다. 여러분은 드롭다운의 첫 번째를 “select a language”로 코딩해서 이를 방지할 수 있습니다.</p>
<pre><code class="language-html">&lt;form action="#"&gt;
  &lt;label for="lang"&gt;Language&lt;/label&gt;
  &lt;select name="languages" id="lang"&gt;
    &lt;option value="select"&gt;Select a language&lt;/option&gt;
    &lt;option value="javascript"&gt;JavaScript&lt;/option&gt;
    &lt;option value="php"&gt;PHP&lt;/option&gt;
    &lt;option value="java"&gt;Java&lt;/option&gt;
    &lt;option value="golang"&gt;Golang&lt;/option&gt;
    &lt;option value="python"&gt;Python&lt;/option&gt;
    &lt;option value="c#"&gt;C#&lt;/option&gt;
    &lt;option value="C++"&gt;C++&lt;/option&gt;
    &lt;option value="erlang"&gt;Erlang&lt;/option&gt;
  &lt;/select&gt;
  &lt;input type="submit" value="Submit" /&gt;
&lt;/form&gt;
</code></pre>
<p>사용자가 <code>select</code> 박스를 클릭하여 항목을 선택할 때, 드롭다운이 <code>submit</code> 버튼도 가립니다- 좋은 사용자 환경에 부정적인 영향을 미치는 또 다른 요소입니다.</p>
<p>여러분은 크기 속성으로 이 부분을 바꿀 수 있습니다. 이 속성은 기본적으로 특정 항목의 개수를 보여주고 드롭다운의 다른 항목들을 위해 스크롤을 보여줄 겁니다.</p>
<p>또한 일부 항목들은 사용자들에게 자동으로 보여지기 때문에 가짜 첫 번째 항목을 제거할 수 있도록 해줍니다.</p>
<pre><code class="language-html">&lt;form action="#"&gt;
  &lt;label for="lang"&gt;Language&lt;/label&gt;
  &lt;select name="languages" id="lang" size="4"&gt;
    &lt;option value="javascript"&gt;JavaScript&lt;/option&gt;
    &lt;option value="php"&gt;PHP&lt;/option&gt;
    &lt;option value="java"&gt;Java&lt;/option&gt;
    &lt;option value="golang"&gt;Golang&lt;/option&gt;
    &lt;option value="python"&gt;Python&lt;/option&gt;
    &lt;option value="c#"&gt;C#&lt;/option&gt;
    &lt;option value="C++"&gt;C++&lt;/option&gt;
    &lt;option value="erlang"&gt;Erlang&lt;/option&gt;
  &lt;/select&gt;
  &lt;input type="submit" value="Submit" /&gt;
&lt;/form&gt;
</code></pre>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/09/select-two.gif" alt="드롭다운에 스크롤이 작동하는 모습" width="600" height="400" loading="lazy"></p>
<p><code>multiple</code> 속성으로 사용자가 드롭다운 메뉴에서 여러 항목을 선택할 수 있도록 할 수 있습니다.</p>
<pre><code class="language-html">&lt;form action="#"&gt;
  &lt;label for="lang"&gt;Language&lt;/label&gt;
  &lt;select name="languages" id="lang" multiple&gt;
    &lt;option value="javascript"&gt;JavaScript&lt;/option&gt;
    &lt;option value="php"&gt;PHP&lt;/option&gt;
    &lt;option value="java"&gt;Java&lt;/option&gt;
    &lt;option value="golang"&gt;Golang&lt;/option&gt;
    &lt;option value="python"&gt;Python&lt;/option&gt;
    &lt;option value="c#"&gt;C#&lt;/option&gt;
    &lt;option value="C++"&gt;C++&lt;/option&gt;
    &lt;option value="erlang"&gt;Erlang&lt;/option&gt;
  &lt;/select&gt;
  &lt;input type="submit" value="Submit" /&gt;
&lt;/form&gt;
</code></pre>
<p>이렇게 하면 기본적으로 4개의 항목이 표시됩니다. 여러 항목을 선택하기 위해서는 사용자가 <code>Shift</code> 또는 <code>Ctrl</code> 키를 누른 상태에서 마우스로 선택해야 합니다.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/09/select-three.gif" alt="스크롤이 있는 드롭다운에서 여러 항목을 동시에 선택하는 모습" width="600" height="400" loading="lazy"></p>
<p><code>select</code>와 <code>&lt;option&gt;</code> 태그로 할 수 있는 작업은 이뿐만이 아닙니다. <code>&lt;select&gt;</code> 태그 안에 <code>&lt;optgroup&gt;</code> 요소를 넣어 다층 선택 박스도 만들 수 있습니다.</p>
<p>이미 만든 드롭다운을 다음과 같이 다층 선택 상자로 변환할 수 있습니다.</p>
<pre><code class="language-html">&lt;form action="#"&gt;
  &lt;label for="lang"&gt;Language&lt;/label&gt;
  &lt;select name="languages" id="lang"&gt;
    &lt;optgroup label="first-choice"&gt;
      &lt;option value="select"&gt;Select a language&lt;/option&gt;
      &lt;option value="javascript"&gt;JavaScript&lt;/option&gt;
      &lt;option value="php"&gt;PHP&lt;/option&gt;
      &lt;option value="java"&gt;Java&lt;/option&gt;
      &lt;option value="golang"&gt;Golang&lt;/option&gt;
    &lt;/optgroup&gt;
    &lt;optgroup label="second-choice"&gt;
      &lt;option value="python"&gt;Python&lt;/option&gt;
      &lt;option value="c#"&gt;C#&lt;/option&gt;
      &lt;option value="C++"&gt;C++&lt;/option&gt;
      &lt;option value="erlang"&gt;Erlang&lt;/option&gt;
    &lt;/optgroup&gt;
  &lt;/select&gt;
  &lt;input type="submit" value="Submit" /&gt;
&lt;/form&gt;
</code></pre>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/09/multi-select.png" alt="다층선택 요소가 있는 드롭다운 메뉴" width="600" height="400" loading="lazy"></p>
<h4 id="select">Select 요소 스타일 하는 방법</h4>
<p><code>select</code> 요소를 스타일링하는 건 가끔 혼란스럽고 브라우저 안에서 일관성이 없게 만듭니다. 그러나 언제든 다음처럼 시도해볼 수 있습니다:</p>
<pre><code class="language-html">&lt;form action="#"&gt;
  &lt;label for="lang"&gt;Language&lt;/label&gt;
  &lt;select name="languages" id="lang"&gt;
    &lt;option value="select"&gt;Select a Language&lt;/option&gt;
    &lt;option value="javascript"&gt;JavaScript&lt;/option&gt;
    &lt;option value="php"&gt;PHP&lt;/option&gt;
    &lt;option value="java"&gt;Java&lt;/option&gt;
    &lt;option value="golang"&gt;Golang&lt;/option&gt;
    &lt;option value="python"&gt;Python&lt;/option&gt;
    &lt;option value="c#"&gt;C#&lt;/option&gt;
    &lt;option value="C++"&gt;C++&lt;/option&gt;
    &lt;option value="erlang"&gt;Erlang&lt;/option&gt;
  &lt;/select&gt;
  &lt;input type="submit" value="Submit" /&gt;
&lt;/form&gt;
</code></pre>
<pre><code class="language-css">select {
  margin-bottom: 10px;
  margin-top: 10px;
  font-family: cursive, sans-serif;
  outline: 0;
  background: #2ecc71;
  color: #fff;
  border: 1px solid crimson;
  padding: 4px;
  border-radius: 9px;
}
</code></pre>
<p>저는 위의 CSS 코드에서 select 박스의 텍스트에 다음과 같은 모습을 주었습니다.</p>
<ul>
<li>cursive 글꼴과 white 글자 색,</li>
<li>포커스 될 때 생기는 못생긴 아웃라인을 없애기 위해 <code>outline</code>에 0,</li>
<li>초록빛을 띤 배경,</li>
<li>1 px 두께의 진홍색 테두리,</li>
<li>모든 면의 약간 둥근 테두리를 위한 <code>border-radius</code> 4 px,</li>
<li>그리고 약간의 공백을 위한 <code>padding</code> 4 px.</li>
</ul>
<p>이제 select 박스가 훨씬 나아 보이네요.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/09/select-styled.gif" alt="초록빛 배경의 둥근 테두리를 가진 드롭박스에서 메뉴를 선택하는 모습" width="600" height="400" loading="lazy"></p>
<h4 id="">결론</h4>
<p><code>select</code> 태그는 HTML 안에 드롭다운과 콤보 리스트를 만들 때 정말 유용해요. 마치 라디오 버튼과 체크 박스가 하나의 패키지에 들어있는 거 같아요.</p>
<p>라디오 버튼으로는 리스트에서 하나의 항목만 선택할 수 있다는 거 기억하세요 - 그런데 체크박스로는 여러 항목을 선택할 수 있답니다. <code>select</code>는 하나의 항목 또는 여러 항목을 선택할 수 있게 설정할 수 있어 더 유연해요.</p>
<p><code>select</code> 태그의 단 한 가지 문제점은 스타일링 하기가 무척 까다롭다는 거예요. 합리적인 해결방안은 훌륭한 유틸리티 클래스를 제공 <code>select</code> 요소와 <code>form</code>을 스타일링 할 수 있게 해주는 CSS 라이브러리를 사용하는 거예요.</p>
<p>이 튜토리얼을 통해 <code>select</code> 태그가 익숙해져 여러분의 프로젝트에 사용할 수 있기를 바라요.</p>
<p>읽어주셔서 감사하고 코딩 계속해주세요!</p>
<!--kg-card-end: markdown--> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ HTML 폰트 크기 - CSS 인라인 스타일을 이용해서 폰트 크기를 변경하는 방법 ]]>
                </title>
                <description>
                    <![CDATA[ HTML의 폰트는 웹 페이지의 모양과 전체적인 분위기에 있어서 중요한 역할을 합니다. 여러분은 폰트의 색상, 굵기, 크기 등을 고를 수 있습니다. 그리고 이 기능들은 여러분의 웹사이트와 앱을 더 나아 보이게 하고 유저에게 더 잘 받아들여지게 할 것입니다. CSS에서 font-size 속성을 사용하여 웹 페이지에서 글자 크기를 크게 또는 작게 변경할 수 있습니다. ]]>
                </description>
                <link>https://www.freecodecamp.org/korean/news/html-ponteu-keugi-css-inrain-seutaileul-iyonghaeseo-ponteu-keugireul-byeongyeonghaneun-bangbeob/</link>
                <guid isPermaLink="false">638009874d426206f9a4fd62</guid>
                
                    <category>
                        <![CDATA[ HTML ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Seyoung Joo ]]>
                </dc:creator>
                <pubDate>Wed, 07 Dec 2022 07:03:29 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/korean/news/content/images/2022/11/fontsize-.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>기사 원문:</strong> <a href="https://www.freecodecamp.org/news/html-font-size-how-to-change-text-size-using-inline-css-style/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">HTML Font Size – How to Change Text Size Using Inline CSS Style</a>
      </p><!--kg-card-begin: markdown--><h4 id="html">HTML의 폰트는 웹 페이지의 모양과 전체적인 분위기에 있어서 중요한 역할을 합니다.</h4>
<p>여러분은 폰트의 색상, 굵기, 크기 등을 고를 수 있습니다.<br>
그리고 이 기능들은 여러분의 웹사이트와 앱을 더 나아 보이게 하고 유저에게 더 잘 받아들여지게 할 것입니다.<br>
CSS에서 <code>font-size</code> 속성을 사용하여 웹 페이지에서 글자 크기를 크게 또는 작게 변경할 수 있습니다. 또한 외부 스타일, 내부 스타일, 또는 인라인 스타일 등 어떤 종류의 CSS에서도 <code>font-size</code> 속성을 사용할 수 있습니다.</p>
<h2 id="css">인라인 CSS란 무엇일까요?</h2>
<p>인라인 CSS는 HTML 요소를 스타일링하는 데 사용할 수 있는 세 가지 방법 중 하나입니다.</p>
<p>class나 id를 속성값으로 가진 요소를 선택하거나, 요소 자체를 선택자로 정의해서 스타일링을 적용하는 대신에, 모든 CSS 스타일들을 열린 태그에 넣는 것을 말합니다.</p>
<p>더불어 모든 스타일링 속성 값들은 <code>style</code> 속성 안에 들어가야 합니다. <code>style</code> 속성은 모든 HTML 태그에서 허용하는 수많은 속성 중 하나입니다.</p>
<p>아래 예제에서 저는 인라인 CSS를 사용하여 글자의 배경 색을 진홍색으로, 글자 색을 <code>#f1f1f1</code> (연회색)으로, 그리고 글자 굵기는 <code>bold</code>로 변경했습니다.</p>
<pre><code class="language-html">&lt;p style="background-color: crimson; color: #f1f1f1; font-weight: bold"&gt;
  Hello Campers...
&lt;/p&gt;
</code></pre>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/09/inline-styling-example.png" alt="폰트 컬러 예시 이미지" width="600" height="400" loading="lazy"></p>
<p>그나저나, 모든 것이 크게 보이는 이유는 제 브라우저가 400% 확대되어 있기 때문입니다. 저는 어떠한 추가 스타일링도 하지 않았습니다 :)</p>
<h2 id="css">인라인 CSS를 사용하여 폰트 사이즈를 변경하는 방법</h2>
<p>인라인 CSS에서 폰트 사이즈를 변경하기 위해서는, <code>style</code> 속성 값을 사용해야 합니다. <code>font-size</code>속성을 입력한 다음, 값을 지정합니다.</p>
<p>내장 값들로는 <code>large</code>,&nbsp;<code>larger</code>,&nbsp;<code>medium</code>,&nbsp;<code>small</code>,&nbsp;<code>x-large</code> 등이 있습니다.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/09/inbuilt-properties.png" alt="스타일 속성값 이미지" width="600" height="400" loading="lazy"></p>
<p>아래의 코드에서, 저는 “Hello Campers…” 글자 크기를 <code>font-size</code>속성의 내장 값 중 하나인 x-large로 변경했습니다.</p>
<pre><code class="language-html">&lt;p style="font-size: x-large"&gt;Hello Campers...&lt;/p&gt;
</code></pre>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/09/font-style-with-inbuilt-value.png" alt="버튼 이미지" width="600" height="400" loading="lazy"></p>
<p>또한 픽셀(px), rem 혹은 em과 같은 단위와 숫자를 함께 사용하여 <code>font-size</code> 속성의 값을 설정할 수도 있습니다.</p>
<p>숫자 값을 사용하면 원하는 폰트 크기를 자유롭게 선택할 수 있으므로 숫자 값을 사용하는 것이 좋습니다.</p>
<p>아래의 코드에서, 저는 인라인 CSS를 사용하여 글자 크기를 <code>30px</code>로 변경했습니다.</p>
<pre><code class="language-html">&lt;p style="font-size: 30px"&gt;Hello Campers...&lt;/p&gt;
</code></pre>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/09/font-style-with-numbered-value.png" alt="버튼 이미지" width="600" height="400" loading="lazy"></p>
<h2 id="">결론</h2>
<p>이 글에서 인라인 CSS를 사용하여 폰트 크기를 변경하는 방법과 <code>font-size</code>의 속성에 대해서 배웠습니다.</p>
<p>하지만 참고로 말하자면, 인라인 CSS는 스타일링에는 좋지만 여러분이 팀으로 일하고 있는 경우라면 HTML 코드를 읽기 어렵게 만들 수도 있습니다. 그래서 인라인 CSS 스타일링에 너무 의지해서는 안 됩니다. 여러분이 쓴 코드를 이해할 수 있는 사람이 오직 여러분 혼자이기를 원하지는 않을 테니까요.</p>
<p>또한 인라인 스타일은 내부 스타일과 외부 스타일보다 우선시 되어 코드를 덮어쓴다는 것에 주의하세요. 가독성을 위해서 HTML과 CSS 코드가 분리되는 외부 스타일이나 내부 스타일을 대신 사용해야 합니다.</p>
<p><code>font-size</code>속성에 값을 할당할 때에는 px 대신 rem 단위를 사용하는 것이 좋습니다. rem을 사용하면 사용자가 화면을 확대하거나 축소할 때 브라우저가 글자 크기를 조정할 수 있는 데에 반해, px을 사용하면 그럴 수 없기 때문입니다.</p>
<p>읽어주셔서 감사합니다. 계속해서 코딩하세요.</p>
<!--kg-card-end: markdown--> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ HTML을 사용해 새 탭에서 링크를 여는 방법 ]]>
                </title>
                <description>
                    <![CDATA[ 브라우저 탭은 참 유용합니다. 탭은 여러 개의 온라인 작업을 동시에 수행하고 멀티태스킹하는 걸 가능하게 합니다. 탭은 이제 매우 보편화되어서 링크를 클릭하면 새 탭에서 열릴 가능성이 높습니다. 새 탭에서 링크를 열도록 하는 방법이 궁금하시다면 이 기사를 계속 읽어보시길 바랍니다! <a>앵커 요소 웹 페이지에 하이퍼링크를 생성하려면 텍스트 혹은 이미지 같은 요소를 앵커 ]]>
                </description>
                <link>https://www.freecodecamp.org/korean/news/how-to-use-html-to-open-link-in-new-tab/</link>
                <guid isPermaLink="false">62de399eb9e7840586028fe0</guid>
                
                    <category>
                        <![CDATA[ HTML ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Boyeon Ihn ]]>
                </dc:creator>
                <pubDate>Thu, 28 Jul 2022 04:52:32 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/korean/news/content/images/2022/07/5f9c98dd740569d1a4ca1c7d.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>기사 원문:</strong> <a href="https://www.freecodecamp.org/news/how-to-use-html-to-open-link-in-new-tab/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How to Use HTML to Open a Link in a New Tab</a>
      </p><!--kg-card-begin: markdown--><h3 id="">브라우저 탭은 참 유용합니다. 탭은 여러 개의 온라인 작업을 동시에 수행하고 멀티태스킹하는 걸 가능하게 합니다.</h3>
<p>탭은 이제 매우 보편화되어서 링크를 클릭하면 새 탭에서 열릴 가능성이 높습니다.</p>
<p>새 탭에서 링크를 열도록 하는 방법이 궁금하시다면 이 기사를 계속 읽어보시길 바랍니다!</p>
<h2 id="a"><code>&lt;a&gt;</code>앵커 요소</h2>
<p>웹 페이지에 하이퍼링크를 생성하려면 텍스트 혹은 이미지 같은 요소를 앵커 요소(<code>&lt;a&gt;</code>)로 감싸고 연결하고 싶은 URL을 <code>href</code> 속성에 설정해야 합니다.</p>
<pre><code class="language-html">&lt;p&gt;Check out &lt;a href="https://www.freecodecamp.org/"&gt;freeCodeCamp&lt;/a&gt;.&lt;/p&gt;
</code></pre>
<p align="center">
    Check out <a href="https://www.freecodecamp.org/">freeCodeCamp</a>.
</p>
<p>위의 링크를 클릭하면 브라우저가 현재 창 또는 현재 탭에서 링크를 엽니다. 이것은 모든 브라우저의 기본 동작입니다.</p>
<p>새 탭에서 링크를 열려면 앵커 요소의 다른 속성을 살펴봐야 합니다.</p>
<h2 id="target">Target 속성</h2>
<p>이 속성은 브라우저가 하이퍼링크를 어떻게 열지를 설정합니다.</p>
<p>새 탭에서 링크를 열도록 하려면, <code>target</code> 속성을 <code>_blank</code>로 설정합니다.</p>
<pre><code class="language-html">&lt;p&gt;Check out &lt;a href="https://www.freecodecamp.org/" target="_blank"&gt;freeCodeCamp&lt;/a&gt;.&lt;/p&gt;
</code></pre>
<p>이제 다른 사용자가 링크를 클릭하면, 해당 사용자의 브라우저 설정에 따라 새 탭 또는 새 창에서 링크가 열립니다.</p>
<h2 id="target_blank"><code>target="_blank"</code>의 보안 문제점</h2>
<p><code>target</code> 속성을 사용할 때마다 앵커 요소에 항상 <code>rel="noreferrer noopener"</code> 속성을 적용하는 것을 권장드립니다.</p>
<pre><code class="language-html">&lt;p&gt;Check out &lt;a href="https://www.freecodecamp.org/" target="_blank" rel="noopener noreferrer"&gt;freeCodeCamp&lt;/a&gt;.&lt;/p&gt;
</code></pre>
<p>출력되는 결과물은 다음과 같습니다.</p>
<p align="center">
    Check out <a href="https://www.freecodecamp.org/" target="_blank" rel="noopener noreferrer">freeCodeCamp</a>.
</p>
<p><code>rel</code> 속성은 현 페이지와 링크된 URL 사이의 관계를 설정합니다. 이를 <code>noopener norefererer</code>로 설정하면 <a href="https://en.wikipedia.org/wiki/Tabnabbing">탭내빙</a>으로 알려진 피싱 공격을 막을 수 있습니다.</p>
<h2 id="tabnabbing">탭내빙(tabnabbing)은 무엇인가요?</h2>
<p>'역 탭내빙(reverse tabnabbing)'이라고도 하는 '탭내빙(tabnabbing)'은 <code>window.object</code> API를 통해 당신의 웹 페이지에 부분적으로 접근하기 위해서 <code>target="_blank"</code>와 브라우저의 기본 동작을 이용하는 취약점 공격(exploit)입니다.</p>
<p>탭내빙을 사용하면, 연결한 페이지로 인해 당신의 페이지가 가짜 로그인 페이지로 재접속될 수 있습니다. 일반적으로 원래 탭이 아니라 방금 열린 탭에 집중하기 때문에 대부분의 사용자가 이 문제를 알아차리지 못합니다. 그런 다음 사용자가 원래 페이지로 다시 돌아오면 당신의 페이지 대신 가짜 로그인 페이지를 보게 될 것이고, 사용자는 가짜 로그인 페이지에 로그인 정보를 입력할지도 모릅니다.</p>
<p>탭내빙이 어떻게 작동하고 악의적인 행위자가 취약점 공격으로 무엇을 할 수 있는지 더 알고 싶다면 <a href="https://www.jitbit.com/alexblog/256-targetblank---the-most-underestimated-vulnerability-ever/">Alex Yumashev의 기사</a>와 <a href="https://owasp.org/www-community/attacks/Reverse_Tabnabbing">OWASP의 기사</a>를 확인해 보십시오.</p>
<p>탭내빙의 안전한 적용 예시를 보고 싶다면, 이 <a href="https://mathiasbynens.github.io/rel-noopener/">페이지</a>와 <a href="https://github.com/mathiasbynens/rel-noopener">해당 깃허브 레포</a>를 통해 취약점 공격 및 <code>rel</code> 속성에 대한 자세한 정보를 읽어보시길 바랍니다.</p>
<h2 id="">요약</h2>
<p>HTML을 사용해 새 탭에서 링크를 여는 것은 매우 쉽습니다. 다음 세 가지 중요한 속성을 가진 앵커(<code>&lt;a&gt;</code>) 요소만 있으면 됩니다:</p>
<ol>
<li><code>href</code> 속성을 연결하고 싶은 페이지의 URL로 설정,</li>
<li>브라우저의 설정에 따라 새 탭 또는 새 창에서 링크를 열도록 <code>target</code> 속성을 <code>_blank</code>로 설정,</li>
<li>링크한 페이지에서 발생할 수 있는 보안 공격을 방지하기 위해 <code>rel</code> 속성을 <code>noreferrer noopener</code>로 설정해야 합니다.</li>
</ol>
<p>최종적으로 완성된 예시는 다음과 같습니다.</p>
<pre><code class="language-html">&lt;p&gt;Check out &lt;a href="https://www.freecodecamp.org/" target="_blank" rel="noopener noreferrer"&gt;freeCodeCamp&lt;/a&gt;.&lt;/p&gt;
</code></pre>
<p>그 결과 브라우저에 다음과 같은 출력이 표시됩니다.</p>
<p align="center">
    Check out <a href="https://www.freecodecamp.org/" target="_blank" rel="noopener noreferrer">freeCodeCamp</a>.
</p>
<p>이 기사를 읽어주셔서 감사합니다. 즐겁게 코딩하시길 바랍니다.</p>
<!--kg-card-end: markdown--> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
