<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>DocsArchives &amp;gt; 커뮤니티 &amp;gt; html</title>
<link>https://docsarchives.com/html</link>
<language>ko</language>
<description>html (2025-09-07 20:19:13)</description>

<item>
<title>PDF VIEWER 구현하기</title>
<link>https://docsarchives.com/html/31</link>
<description><![CDATA[<p><span style="color:rgb(85,85,85);font-family:'Spoqa Han Sans', sans-serif;font-size:15px;background-color:rgb(255,255,255);">1. iframe 사용</span></p><p><span style="color:rgb(85,85,85);font-family:'Spoqa Han Sans', sans-serif;font-size:15px;background-color:rgb(255,255,255);"><br /></span></p><p><span style="background-color:rgb(255,255,255);font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">[code=html]&lt;iframe src="<a href="/test.pdf">http://홈페이지주소/test.pdf</a>" style="width:800px; height:700px;" frameborder="0"&gt;&lt;/iframe&gt;[/code]</span></span></p><p><span style="background-color:rgb(255,255,255);font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;"><br /></span></span></p><p><span style="color:rgb(85,85,85);font-family:'Spoqa Han Sans', sans-serif;font-size:15px;background-color:rgb(255,255,255);">2. embed 사용</span><span style="background-color:rgb(255,255,255);font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;"></span></span></p><p><span style="color:rgb(85,85,85);font-family:'Spoqa Han Sans', sans-serif;font-size:15px;background-color:rgb(255,255,255);"><br /></span></p><p><span style="background-color:rgb(255,255,255);font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">[code=html]&lt;embed src="/assets/test.pdf" type="application/pdf" /&gt;[/code]</span></span></p><p><span style="background-color:rgb(255,255,255);font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;"><br /></span></span></p><p><span style="color:rgb(85,85,85);font-family:'Spoqa Han Sans', sans-serif;font-size:15px;background-color:rgb(255,255,255);">3. 구글뷰어 이용</span><span style="background-color:rgb(255,255,255);font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;"></span></span></p><p><span style="color:rgb(85,85,85);font-family:'Spoqa Han Sans', sans-serif;font-size:15px;background-color:rgb(255,255,255);"><br /></span></p><p><span style="background-color:rgb(255,255,255);font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">[code=html]&lt;iframe src="<a href="http://docs.google.com/gview?url=http://%ED%99%88%ED%8E%98%EC%9D%B4%EC%A7%80%EC%A3%BC%EC%86%8C/test.pdf&amp;embedded=true" rel="nofollow">http://docs.google.com/gview?url=http://홈페이지주소/test.pdf&amp;embedded=true</a>" style="width:800px; height:700px;" frameborder="0"&gt;&lt;/iframe&gt;[/code]</span></span></p><p><span style="background-color:rgb(255,255,255);font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;"><br /></span></span></p><p><span style="background-color:rgb(255,255,255);font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">4. </span></span><span style="background-color:rgb(255,255,255);color:rgb(85,85,85);font-family:'Spoqa Han Sans', sans-serif;font-size:15px;">PDF.js 사용 - worker</span></p><p><span style="background-color:rgb(255,255,255);color:rgb(85,85,85);font-family:'Spoqa Han Sans', sans-serif;font-size:15px;"><br /></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">[code=html]&lt;!DOCTYPE html&gt;</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">&lt;html lang="en"&gt;</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">&lt;head&gt;</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">    &lt;meta charset="UTF-8"&gt;</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">    &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">    &lt;title&gt;PDF.js Example - All Pages&lt;/title&gt;</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">    &lt;style&gt;</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">        #pdf-viewer {</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">            width: 100%;</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">            height: 100vh;</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">            overflow: auto;</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">        }</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">        canvas {</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">            display: block;</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">            margin: 10px auto;</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">        }</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">    &lt;/style&gt;</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">&lt;/head&gt;</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">&lt;body&gt;</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">    &lt;div id="pdf-viewer"&gt;&lt;/div&gt;</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;"><br /></span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">    &lt;!-- Include PDF.js library --&gt;</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">    &lt;script src="<a href="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/3.3.122/pdf.min.js" rel="nofollow">https://cdnjs.cloudflare.com/ajax/libs/pdf.js/3.3.122/pdf.min.js</a>"&gt;&lt;/script&gt;</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">    &lt;script&gt;</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">        const url = 'YOUR_PDF_URL';</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;"><br /></span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">        // Load the PDF.js library</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">        const pdfjsLib = window['pdfjs-dist/build/pdf'];</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;"><br /></span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">        // Specify the workerSrc property</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">        pdfjsLib.GlobalWorkerOptions.workerSrc = '<a href="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/3.3.122/pdf.worker.min.js" rel="nofollow">https://cdnjs.cloudflare.com/ajax/libs/pdf.js/3.3.122/pdf.worker.min.js</a>';</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;"><br /></span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">        // Load the PDF document</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">        const loadingTask = pdfjsLib.getDocument(url);</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">        loadingTask.promise.then(pdf =&gt; {</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">            console.log('PDF loaded');</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;"><br /></span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">            const viewer = document.getElementById('pdf-viewer');</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;"><br /></span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">            // Loop through each page</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">            for (let pageNum = 1; pageNum &lt;= pdf.numPages; pageNum++) {</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">                // Fetch the page</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">                pdf.getPage(pageNum).then(page =&gt; {</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">                    console.log(`Page ${pageNum} loaded`);</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;"><br /></span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">                    const scale = 1.5;</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">                    const viewport = page.getViewport({ scale });</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;"><br /></span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">                    // Prepare canvas using PDF page dimensions</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">                    const canvas = document.createElement('canvas');</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">                    const context = canvas.getContext('2d');</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">                    canvas.height = viewport.height;</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">                    canvas.width = viewport.width;</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;"><br /></span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">                    // Append the canvas to the viewer container</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">                    viewer.appendChild(canvas);</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;"><br /></span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">                    // Render the PDF page into the canvas context</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">                    const renderContext = {</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">                        canvasContext: context,</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">                        viewport</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">                    };</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">                    page.render(renderContext).promise.then(() =&gt; {</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">                        console.log(`Page ${pageNum} rendered`);</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">                    });</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">                });</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">            }</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">        }).catch(error =&gt; {</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">            console.error('Error loading PDF: ', error);</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">        });</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">    &lt;/script&gt;</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">&lt;/body&gt;</span></span></p><p><span style="font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">&lt;/html&gt;</span></span></p><p><span style="font-size:15px;color:rgb(85,85,85);font-family:'Spoqa Han Sans', sans-serif;">[/code]</span></p><p><span style="font-size:15px;color:rgb(85,85,85);font-family:'Spoqa Han Sans', sans-serif;"><br /></span></p><p><span style="background-color:rgb(255,255,255);font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">5. </span></span><span style="background-color:rgb(255,255,255);color:rgb(85,85,85);font-family:'Spoqa Han Sans', sans-serif;font-size:15px;">PDF.js 사용 - viewer</span><span style="font-size:15px;color:rgb(85,85,85);font-family:'Spoqa Han Sans', sans-serif;"></span></p><p><span style="background-color:rgb(255,255,255);color:rgb(85,85,85);font-family:'Spoqa Han Sans', sans-serif;font-size:15px;"><br /></span></p><p><span style="background-color:rgb(255,255,255);font-family:'Spoqa Han Sans', sans-serif;color:rgb(85,85,85);"><span style="font-size:15px;">[code=html]&lt;p align="middle"&gt;&lt;iframe src="/pdfjs/web/viewer.html?file=</span></span><span style="background-color:rgb(253,253,253);color:rgb(25,144,184);font-family:Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;font-size:15.2px;white-space:pre;"><a href="/test.pdf">http://홈페이지주소/test.pdf</a></span><span style="font-size:15px;background-color:rgb(255,255,255);color:rgb(85,85,85);font-family:'Spoqa Han Sans', sans-serif;">"&gt;&lt;/iframe&gt;&lt;/p&gt;[/code]</span></p>]]></description>
<dc:creator>DocsArchives</dc:creator>
<dc:date>2025-09-07T20:19:13+09:00</dc:date>
</item>


<item>
<title>접근성을 위한 ARIA 속성 사용</title>
<link>https://docsarchives.com/html/30</link>
<description><![CDATA[<p style="text-align:center;" align="center"><b>모두에게 친절한 웹</b></p><p style="text-align:center;" align="center"><b><br /></b></p><p style="text-align:left;" align="left">​웹 접근성은 시각, 청각 등 다양한 사용자에게 웹을 제공하는 기술입니다. HTML5만으로는 한계가 있어 <strong>ARIA(Accessible Rich Internet Applications)</strong> 속성을 활용하면 보조 기술과의 호환성을 높일 수 있습니다.<br /></p>
<h2>ARIA 속성 예시</h2><div><div><span style="font-size:12px;">[code=html]&lt;button aria-label="검색"&gt;????&lt;/button&gt;</span></div><div><span style="font-size:12px;"><br /></span></div><div><span style="font-size:12px;">&lt;nav aria-label="주요 메뉴"&gt;</span></div><div><span style="font-size:12px;">  &lt;ul&gt;</span></div><div><span style="font-size:12px;">    &lt;li&gt;&lt;a href="/"&gt;홈&lt;/a&gt;&lt;/li&gt;</span></div><div><span style="font-size:12px;">    &lt;li&gt;&lt;a href="/about"&gt;소개&lt;/a&gt;&lt;/li&gt;</span></div><div><span style="font-size:12px;">  &lt;/ul&gt;</span></div><div><span style="font-size:12px;">&lt;/nav&gt;</span></div><div><span style="font-size:12px;"><br /></span></div><div><span style="font-size:12px;">&lt;div role="alert"&gt;</span></div><div><span style="font-size:12px;">  오류가 발생했습니다!</span></div><div><span style="font-size:12px;">&lt;/div&gt;</span></div><div><span style="font-size:12px;">[/code]</span></div></div><div><span style="font-size:12px;"><br /></span></div><div><ul><li><p><code>aria-label</code>: 요소에 대한 설명 제공</p>
</li>
<li>
<p><code>role</code>: 요소의 역할 정의 (<code>alert</code>, <code>navigation</code>, <code>button</code>)</p>
</li>
</ul>
<h2>실무 활용 사례</h2>
<ol>
<li>
<p>스크린리더 친화적인 메뉴 제작</p>
</li>
<li>
<p>동적 콘텐츠 변경 알림</p>
</li>
<li>
<p>웹 애플리케이션 버튼과 모달 대체</p></li></ol><div> </div></div><div><br /></div><div><p>ARIA 속성을 적절히 사용하면 <strong>모든 사용자에게 친절한 웹사이트</strong>를 만들 수 있습니다. 단순히 보이는 것뿐 아니라 접근성과 UX를 고려한 설계가 필수입니다.</p> </div>]]></description>
<dc:creator>DocsArchives</dc:creator>
<dc:date>2025-09-07T20:08:40+09:00</dc:date>
</item>


<item>
<title>아이프레임(iframe)과 외부 콘텐츠 삽입</title>
<link>https://docsarchives.com/html/29</link>
<description><![CDATA[<p>외부 콘텐츠를 웹페이지에 삽입할 때 사용하는 것이 <strong><code>&lt;iframe&gt;</code> 태그</strong>입니다. 지도, 동영상, 광고 등 다양한 활용이 가능합니다.</p><h2>기본 사용법</h2><div><span style="font-size:12px;">[code=html]&lt;iframe width="560" height="315" src="<a href="https://www.youtube.com/embed/HudTGfYF0Ug?si=JL0tu-F9AKXvw1f2" rel="nofollow">https://www.youtube.com/embed/HudTGfYF0Ug?si=JL0tu-F9AKXvw1f2</a>" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen&gt;&lt;/iframe&gt;[/code]</span></div><div><span style="font-size:12px;"><br /></span></div><div><ul><li><p><code>src</code>: 외부 콘텐츠 URL</p>
</li>
<li>
<p><code>width</code>, <code>height</code>: 크기 지정</p>
</li>
<li>
<p><code>allowfullscreen</code>: 전체 화면 허용</p>
</li>
</ul>
<h2>실무 활용 사례</h2>
<ol>
<li>
<p>유튜브 동영상 삽입</p>
</li>
<li>
<p>구글 지도 표시</p>
</li>
<li>
<p>외부 웹 앱 연동</p>
</li>
</ol>
<h2>접근성 팁</h2>
<ul>
<li>
<p><code>title</code> 속성으로 콘텐츠 설명 제공</p></li></ul><div> </div></div><div><div><span style="font-size:12px;">[code=html]&lt;iframe src="..." title="유튜브 소개 영상"&gt;&lt;/iframe&gt;</span></div><div><span style="font-size:12px;">[/code]</span></div></div><div><span style="font-size:12px;"><br /></span></div><div>iframe은 강력하지만, 과도한 사용은 속도 저하와 보안 문제를 야기할 수 있습니다. 필요한 경우에만 사용하고, 접근성을 고려하는 것이 중요합니다.<span style="font-size:12px;"></span></div>]]></description>
<dc:creator>DocsArchives</dc:creator>
<dc:date>2025-09-07T20:07:01+09:00</dc:date>
</item>


<item>
<title>메타 태그와 SEO 최적화</title>
<link>https://docsarchives.com/html/28</link>
<description><![CDATA[<p style="text-align:center;" align="center"><b>검색 엔진 친화적 HTML</b></p><p style="text-align:center;" align="center"><b><br /></b></p><p style="text-align:left;" align="left">​웹페이지가 검색 엔진에 잘 노출되려면 <strong>메타 태그(Meta Tag)</strong> 사용이 필수입니다. 메타 태그는 페이지 정보, 문자셋, 뷰포트 등 브라우저와 검색 엔진에 중요한 데이터를 제공합니다.<br /></p>
<h2>기본 메타 태그</h2><div><div><span style="font-size:12px;">[code=html]&lt;head&gt;</span></div><div><span style="font-size:12px;">  &lt;meta charset="UTF-8"&gt;</span></div><div><span style="font-size:12px;">  &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;</span></div><div><span style="font-size:12px;">  &lt;meta name="description" content="HTML 기초부터 SEO 최적화까지 배우는 블로그"&gt;</span></div><div><span style="font-size:12px;">  &lt;meta name="keywords" content="HTML, CSS, 웹개발, SEO"&gt;</span></div><div><span style="font-size:12px;">  &lt;title&gt;웹 개발 블로그&lt;/title&gt;</span></div><div><span style="font-size:12px;">&lt;/head&gt;</span></div><div><span style="font-size:12px;">[/code]</span></div></div><div><span style="font-size:12px;"><br /></span></div><div><ul><li><p><code>charset</code>: 문자 인코딩 설정</p>
</li>
<li>
<p><code>viewport</code>: 모바일 화면 대응</p>
</li>
<li>
<p><code>description</code>: 검색 결과 설명</p>
</li>
<li>
<p><code>keywords</code>: 핵심 키워드(현재 SEO에서는 참고용)</p>
</li>
</ul>
<h2>실무 활용 사례</h2>
<ol>
<li>
<p>블로그 포스트: <code>description</code>과 <code>title</code> 최적화</p>
</li>
<li>
<p>e커머스: 상품 페이지 SEO 강화</p>
</li>
<li>
<p>반응형 웹: 모바일 뷰포트 최적화</p></li></ol><div> </div></div><div>메타 태그는 눈에 보이지 않지만, SEO와 사용자 경험에 큰 영향을 줍니다. 모든 페이지에서 필수적으로 설정해야 합니다.</div>]]></description>
<dc:creator>DocsArchives</dc:creator>
<dc:date>2025-09-07T20:05:11+09:00</dc:date>
</item>


<item>
<title>리스트 태그 활용</title>
<link>https://docsarchives.com/html/27</link>
<description><![CDATA[<p style="text-align:center;" align="center"><b>순서 있는 데이터 표현</b></p><p style="text-align:center;" align="center"><b><br /></b></p><p style="text-align:left;" align="left">​웹에서는 목록 형태로 정보를 전달하는 경우가 많습니다. HTML에서는 <strong>순서가 있는 목록(<code>&lt;ol&gt;</code>)</strong>, <strong>순서 없는 목록(<code>&lt;ul&gt;</code>)</strong>, **정의 목록(<code>&lt;dl&gt;</code>)**을 제공하여 구조화된 데이터를 쉽게 표현할 수 있습니다.<br /></p>
<h2>기본 사용법</h2><div><div><span style="font-size:12px;">[code=html]&lt;h3&gt;할 일 목록&lt;/h3&gt;</span></div><div><span style="font-size:12px;">&lt;ul&gt;</span></div><div><span style="font-size:12px;">  &lt;li&gt;HTML 공부&lt;/li&gt;</span></div><div><span style="font-size:12px;">  &lt;li&gt;CSS 연습&lt;/li&gt;</span></div><div><span style="font-size:12px;">  &lt;li&gt;JavaScript 실습&lt;/li&gt;</span></div><div><span style="font-size:12px;">&lt;/ul&gt;</span></div><div><span style="font-size:12px;"><br /></span></div><div><span style="font-size:12px;">&lt;h3&gt;단계별 과정&lt;/h3&gt;</span></div><div><span style="font-size:12px;">&lt;ol&gt;</span></div><div><span style="font-size:12px;">  &lt;li&gt;계획 수립&lt;/li&gt;</span></div><div><span style="font-size:12px;">  &lt;li&gt;개발 진행&lt;/li&gt;</span></div><div><span style="font-size:12px;">  &lt;li&gt;테스트 및 배포&lt;/li&gt;</span></div><div><span style="font-size:12px;">&lt;/ol&gt;</span></div><div><span style="font-size:12px;"><br /></span></div><div><span style="font-size:12px;">&lt;h3&gt;용어 정의&lt;/h3&gt;</span></div><div><span style="font-size:12px;">&lt;dl&gt;</span></div><div><span style="font-size:12px;">  &lt;dt&gt;HTML&lt;/dt&gt;</span></div><div><span style="font-size:12px;">  &lt;dd&gt;웹 문서의 구조를 정의하는 마크업 언어&lt;/dd&gt;</span></div><div><span style="font-size:12px;">  &lt;dt&gt;CSS&lt;/dt&gt;</span></div><div><span style="font-size:12px;">  &lt;dd&gt;웹 문서의 스타일을 지정하는 언어&lt;/dd&gt;</span></div><div><span style="font-size:12px;">&lt;/dl&gt;</span></div><div><span style="font-size:12px;">[/code]</span></div></div><div><span style="font-size:12px;"><br /></span></div><div><h2>실무 활용 사례</h2>
<ol>
<li>
<p>블로그 글에서 요약 목록 작성</p>
</li>
<li>
<p>가이드 페이지에서 단계별 설명 제공</p>
</li>
<li>
<p>FAQ 페이지에서 질문-답변 구조</p>
</li>
</ol>
<h2>접근성 팁</h2>
<ul>
<li>
<p>목록 안에 중요한 콘텐츠가 포함되면 <code>&lt;strong&gt;</code> 등으로 강조</p>
</li>
<li>
<p>화면 읽기 프로그램이 목록의 시작과 끝을 알 수 있도록 <code>&lt;ul&gt;</code>/<code>&lt;ol&gt;</code> 사용</p></li></ul><div>리스트 태그를 적절히 활용하면 정보 전달력이 높아지고, 구조화된 콘텐츠를 제작할 수 있습니다.</div></div>]]></description>
<dc:creator>DocsArchives</dc:creator>
<dc:date>2025-09-07T20:04:19+09:00</dc:date>
</item>


<item>
<title>테이블 작성 및 접근성 개선</title>
<link>https://docsarchives.com/html/26</link>
<description><![CDATA[<p style="text-align:center;" align="center"><b>데이터 표현의 기본</b></p><p style="text-align:center;" align="center"><b><br /></b></p><p style="text-align:left;" align="left">​HTML에서 **테이블(<code>&lt;table&gt;</code>)**은 데이터를 행과 열로 정리해 표시하는 가장 직관적인 방법입니다. 단순히 보기 좋게 만드는 것뿐만 아니라 접근성과 SEO까지 고려해야 합니다.<br /></p>
<h2>기본 테이블 구조</h2><div><div><span style="font-size:12px;">[code=html]&lt;table border="1"&gt;</span></div><div><span style="font-size:12px;">  &lt;caption&gt;회원 정보&lt;/caption&gt;</span></div><div><span style="font-size:12px;">  &lt;thead&gt;</span></div><div><span style="font-size:12px;">    &lt;tr&gt;</span></div><div><span style="font-size:12px;">      &lt;th&gt;이름&lt;/th&gt;</span></div><div><span style="font-size:12px;">      &lt;th&gt;이메일&lt;/th&gt;</span></div><div><span style="font-size:12px;">      &lt;th&gt;가입일&lt;/th&gt;</span></div><div><span style="font-size:12px;">    &lt;/tr&gt;</span></div><div><span style="font-size:12px;">  &lt;/thead&gt;</span></div><div><span style="font-size:12px;">  &lt;tbody&gt;</span></div><div><span style="font-size:12px;">    &lt;tr&gt;</span></div><div><span style="font-size:12px;">      &lt;td&gt;홍길동&lt;/td&gt;</span></div><div><span style="font-size:12px;">      &lt;td&gt;hong@example.com&lt;/td&gt;</span></div><div><span style="font-size:12px;">      &lt;td&gt;2025-09-06&lt;/td&gt;</span></div><div><span style="font-size:12px;">    &lt;/tr&gt;</span></div><div><span style="font-size:12px;">    &lt;tr&gt;</span></div><div><span style="font-size:12px;">      &lt;td&gt;김철수&lt;/td&gt;</span></div><div><span style="font-size:12px;">      &lt;td&gt;kim@example.com&lt;/td&gt;</span></div><div><span style="font-size:12px;">      &lt;td&gt;2025-08-30&lt;/td&gt;</span></div><div><span style="font-size:12px;">    &lt;/tr&gt;</span></div><div><span style="font-size:12px;">  &lt;/tbody&gt;</span></div><div><span style="font-size:12px;">&lt;/table&gt;</span></div><div><span style="font-size:12px;">[/code]</span></div></div><div><span style="font-size:12px;"><br /></span></div><div><ul><li><p><code>&lt;caption&gt;</code>: 테이블 제목, 접근성과 SEO에 도움</p>
</li>
<li>
<p><code>&lt;thead&gt;</code>: 헤더 영역</p>
</li>
<li>
<p><code>&lt;tbody&gt;</code>: 데이터 영역</p>
</li>
<li>
<p><code>&lt;th&gt;</code>: 열 제목, 화면 읽기 프로그램이 데이터를 이해할 수 있도록 도움</p>
</li>
</ul>
<h2>실무 활용 사례</h2>
<ol>
<li>
<p><strong>관리자 페이지</strong>: 회원 리스트, 주문 내역</p>
</li>
<li>
<p><strong>통계 페이지</strong>: 매출, 방문자 수 등 데이터 표시</p>
</li>
<li>
<p><strong>교육 콘텐츠</strong>: 시험 성적, 학습 진행 상황</p>
</li>
</ol>
<h2>접근성 팁</h2>
<ul>
<li>
<p><code>scope="col"</code> 또는 <code>scope="row"</code> 속성으로 스크린리더 지원</p>
</li>
<li>
<p>테이블이 크면 스크롤 가능한 영역으로 처리</p></li></ul><div><div><span style="font-size:12px;">[code=html]&lt;th scope="col"&gt;이름&lt;/th&gt;</span></div><div><span style="font-size:12px;">&lt;th scope="row"&gt;홍길동&lt;/th&gt;</span></div><div><span style="font-size:12px;">[/code]</span></div></div></div><div><span style="font-size:12px;"><br /></span></div><div>테이블은 단순한 데이터 표시 도구가 아니라 <strong>구조화된 정보를 전달</strong>하는 방법입니다. 접근성과 시맨틱을 고려해 작성하면 사용자와 검색 엔진 모두에게 친절한 테이블이 됩니다.<span style="font-size:12px;"></span></div>]]></description>
<dc:creator>DocsArchives</dc:creator>
<dc:date>2025-09-07T20:03:20+09:00</dc:date>
</item>


<item>
<title>앵커와 내비게이션 구조 설계</title>
<link>https://docsarchives.com/html/25</link>
<description><![CDATA[<p style="text-align:center;" align="center"><b>사용자가 길을 잃지 않게 만드는 HTML</b></p><p style="text-align:center;" align="center"><b><br /></b></p><p style="text-align:left;" align="left">​웹사이트에서 사용자가 원하는 정보를 쉽게 찾도록 돕는 것이 **내비게이션(Navigation)**의 핵심입니다. HTML에서는 <code>&lt;a&gt;</code>와 <code>&lt;nav&gt;</code> 태그를 활용해 사이트 구조를 명확하게 설계할 수 있습니다.<br /></p>
<h2>기본 앵커 사용법</h2>
<p>앵커(<code>&lt;a&gt;</code> 태그)는 페이지 내 이동이나 외부 링크 연결에 사용됩니다.</p><p><span style="font-size:12px;">[code=html]&lt;a href="<a href="https://example.com" rel="nofollow">https://example.com</a>"&gt;홈페이지 이동&lt;/a&gt;</span></p><p><span style="font-size:12px;">&lt;a href="#section2"&gt;페이지 섹션 2로 이동&lt;/a&gt;</span></p><p><span style="font-size:12px;">[/code]</span></p><p><span style="font-size:12px;"><br /></span></p><p><code>href="#"</code>처럼 단순히 페이지 상단으로 이동하거나, <code>id</code> 속성과 함께 내부 링크로 연결할 수 있습니다.</p><h2>내비게이션 구조</h2><p>HTML5에서는 <code>&lt;nav&gt;</code> 태그로 내비게이션 영역을 명확히 구분합니다.</p><p><span style="font-size:12px;">[code=html]&lt;nav&gt;</span></p><p><span style="font-size:12px;">  &lt;ul&gt;</span></p><p><span style="font-size:12px;">    &lt;li&gt;&lt;a href="/"&gt;홈&lt;/a&gt;&lt;/li&gt;</span></p><p><span style="font-size:12px;">    &lt;li&gt;&lt;a href="/about"&gt;소개&lt;/a&gt;&lt;/li&gt;</span></p><p><span style="font-size:12px;">    &lt;li&gt;&lt;a href="/services"&gt;서비스&lt;/a&gt;&lt;/li&gt;</span></p><p><span style="font-size:12px;">    &lt;li&gt;&lt;a href="/contact"&gt;연락처&lt;/a&gt;&lt;/li&gt;</span></p><p><span style="font-size:12px;">  &lt;/ul&gt;</span></p><p><span style="font-size:12px;">&lt;/nav&gt;</span></p><p><span style="font-size:12px;">[/code]</span></p><p><span style="font-size:12px;"><br /></span></p><p>검색 엔진과 보조기기는 <code>&lt;nav&gt;</code>를 통해 페이지의 구조와 중요한 링크를 빠르게 이해할 수 있습니다.</p><h2>실무 활용 사례</h2><ol>
<li>
<p><strong>메인 메뉴</strong>: 헤더에 사이트 주요 메뉴 구성</p>
</li>
<li>
<p><strong>사이드바</strong>: 블로그 카테고리 목록 제공</p>
</li>
<li>
<p><strong>푸터 링크</strong>: 사이트 맵, 개인정보처리방침, 이용약관 등</p>
</li>
</ol><h2>접근성 팁</h2><ul>
<li>
<p><code>&lt;ul&gt;</code>과 <code>&lt;li&gt;</code>를 사용하여 목록 구조를 명확히 작성</p>
</li>
<li>
<p>스크린리더가 메뉴 항목을 쉽게 읽도록 <code>aria-label</code> 속성 활용</p></li></ul><div><div><span style="font-size:12px;">[code=html]&lt;nav aria-label="주요 메뉴"&gt;</span></div><div><span style="font-size:12px;">  &lt;ul&gt;</span></div><div><span style="font-size:12px;">    &lt;li&gt;&lt;a href="/"&gt;홈&lt;/a&gt;&lt;/li&gt;</span></div><div><span style="font-size:12px;">    ...</span></div><div><span style="font-size:12px;">  &lt;/ul&gt;</span></div><div><span style="font-size:12px;">&lt;/nav&gt;</span></div><div><span style="font-size:12px;">[/code]</span></div></div><div><span style="font-size:12px;"><br /></span></div><div>앵커와 내비게이션 설계는 사용자가 웹사이트를 편리하게 탐색하게 하는 핵심 요소입니다. 시맨틱 태그와 접근성을 고려하면 <strong>UX와 SEO</strong>를 동시에 향상시킬 수 있습니다.<span style="font-size:12px;"></span></div>]]></description>
<dc:creator>DocsArchives</dc:creator>
<dc:date>2025-09-07T20:02:06+09:00</dc:date>
</item>


<item>
<title>이미지 최적화와 &lt;picture&gt; 태그</title>
<link>https://docsarchives.com/html/24</link>
<description><![CDATA[<p style="text-align:center;" align="center"><b>반응형 웹 이미지</b></p><p style="text-align:center;" align="center"><b><br /></b></p><p style="text-align:left;" align="left">​웹에서 이미지는 콘텐츠 전달의 핵심입니다. 하지만 이미지를 무분별하게 사용하면 페이지 로딩 속도가 느려지고 사용자 경험이 떨어집니다. HTML에서는 <strong><code>&lt;img&gt;</code>와 <code>&lt;picture&gt;</code> 태그</strong>로 최적화된 이미지 제공이 가능합니다.<br /></p>
<h2>기본 이미지 삽입</h2><div><div><span style="font-size:12px;">[code=html]&lt;img src="image.jpg" alt="상품 이미지" width="600"&gt;</span></div><div><span style="font-size:12px;">[/code]</span></div></div><div><span style="font-size:12px;"><br /></span></div><div><p><code>alt</code> 속성은 시각장애인을 위한 설명과 SEO에도 필수입니다.</p>
<h2><code>&lt;picture&gt;</code> 태그로 반응형 이미지 제공</h2></div><div><div><span style="font-size:12px;">[code=html]&lt;picture&gt;</span></div><div><span style="font-size:12px;">  &lt;source media="(max-width: 600px)" srcset="image-small.jpg"&gt;</span></div><div><span style="font-size:12px;">  &lt;source media="(max-width: 1200px)" srcset="image-medium.jpg"&gt;</span></div><div><span style="font-size:12px;">  &lt;img src="image-large.jpg" alt="반응형 상품 이미지"&gt;</span></div><div><span style="font-size:12px;">&lt;/picture&gt;</span></div><div><span style="font-size:12px;">[/code]</span></div></div><div><span style="font-size:12px;"><br /></span></div><div><p>사용자의 화면 크기에 따라 최적화된 이미지를 자동으로 선택합니다.</p>
<h2>이미지 최적화 팁</h2>
<ol>
<li>
<p>WebP, AVIF와 같은 최신 포맷 사용</p>
</li>
<li>
<p>용량 줄이기 (압축, 크기 조정)</p>
</li>
<li>
<p>lazy-loading 적용 (<code>loading="lazy"</code>)</p></li></ol><div><div><span style="font-size:12px;">[code=html]&lt;img src="image.jpg" alt="상품 이미지" loading="lazy"&gt;</span></div><div><span style="font-size:12px;">[/code]</span></div></div></div><div><span style="font-size:12px;"><br /></span></div><div><h2>실무 활용 사례</h2>
<ul>
<li>
<p>반응형 웹: 모바일, 태블릿, PC에서 최적 이미지 제공</p>
</li>
<li>
<p>e커머스: 상품 썸네일, 상세 이미지</p>
</li>
<li>
<p>블로그: 글 속 이미지 최적화</p></li></ul><div> </div></div><div>이미지 최적화와 <code>&lt;picture&gt;</code> 태그 활용은 <strong>속도와 사용자 경험</strong>을 동시에 만족시키는 핵심 기법입니다. SEO와 모바일 환경을 고려하면 반드시 적용해야 합니다.</div>]]></description>
<dc:creator>DocsArchives</dc:creator>
<dc:date>2025-09-07T19:58:55+09:00</dc:date>
</item>


<item>
<title>오디오·비디오 태그 활용</title>
<link>https://docsarchives.com/html/23</link>
<description><![CDATA[<p style="text-align:center;" align="center"><b>멀티미디어 콘텐츠 삽입</b></p><p style="text-align:center;" align="center"><b><br /></b></p><p style="text-align:left;" align="left">​현대 웹에서는 텍스트와 이미지뿐만 아니라 오디오와 비디오 콘텐츠도 필수입니다. HTML5에서는 <strong><code>&lt;audio&gt;</code>와 <code>&lt;video&gt;</code></strong> 태그를 통해 멀티미디어를 간단히 삽입할 수 있습니다.<br /></p>
<h2>기본 사용법</h2><div><div><span style="font-size:12px;">[code=html]&lt;audio controls&gt;</span></div><div><span style="font-size:12px;">  &lt;source src="audio.mp3" type="audio/mpeg"&gt;</span></div><div><span style="font-size:12px;">  브라우저가 오디오 태그를 지원하지 않습니다.</span></div><div><span style="font-size:12px;">&lt;/audio&gt;</span></div><div><span style="font-size:12px;"><br /></span></div><div><span style="font-size:12px;">&lt;video controls width="600"&gt;</span></div><div><span style="font-size:12px;">  &lt;source src="video.mp4" type="video/mp4"&gt;</span></div><div><span style="font-size:12px;">  브라우저가 비디오 태그를 지원하지 않습니다.</span></div><div><span style="font-size:12px;">&lt;/video&gt;</span></div><div><span style="font-size:12px;">[/code]</span></div></div><div><span style="font-size:12px;"><br /></span></div><div><p><code>controls</code> 속성은 재생, 일시정지, 볼륨 조절 등 기본 컨트롤을 제공합니다.</p>
<h2>추가 속성</h2>
<ul>
<li>
<p><code>autoplay</code>: 페이지 로드 시 자동 재생</p>
</li>
<li>
<p><code>loop</code>: 반복 재생</p>
</li>
<li>
<p><code>muted</code>: 음소거 상태로 시작</p>
</li>
<li>
<p><code>poster</code>: 비디오 로딩 전 표시할 이미지</p></li></ul><div><div><span style="font-size:12px;">[code=html]&lt;video controls autoplay muted loop poster="thumbnail.jpg" width="600"&gt;</span></div><div><span style="font-size:12px;">  &lt;source src="video.mp4" type="video/mp4"&gt;</span></div><div><span style="font-size:12px;">&lt;/video&gt;</span></div><div><span style="font-size:12px;">[/code]</span></div></div></div><div><span style="font-size:12px;"><br /></span></div><div><h2>실무 활용 사례</h2>
<ol>
<li>
<p><strong>제품 소개 페이지</strong>: 동영상으로 제품 기능 시연</p>
</li>
<li>
<p><strong>음악 사이트</strong>: 오디오 스트리밍 재생</p>
</li>
<li>
<p><strong>교육 플랫폼</strong>: 강의 영상 삽입</p>
</li>
</ol>
<h2>접근성 고려</h2>
<ul>
<li>
<p><code>&lt;track&gt;</code> 태그를 사용해 자막 제공</p>
</li>
<li>
<p>오디오/비디오에 대한 텍스트 대체 설명 제공</p></li></ul><div><div><span style="font-size:12px;">[code=html]&lt;track kind="subtitles" src="subtitles.vtt" srclang="ko" label="한국어"&gt;</span></div><div><span style="font-size:12px;">[/code]</span></div></div></div><div><span style="font-size:12px;"><br /></span></div><div><p>오디오·비디오 태그를 적절히 활용하면 사용자 경험을 풍부하게 만들 수 있습니다. HTML5에서 제공하는 속성을 잘 활용하면 별도의 플러그인 없이도 멀티미디어 콘텐츠를 구현할 수 있습니다.</p><span style="font-size:12px;"></span></div>]]></description>
<dc:creator>DocsArchives</dc:creator>
<dc:date>2025-09-07T19:57:08+09:00</dc:date>
</item>


<item>
<title>폼(Form) 요소와 입력값 검증</title>
<link>https://docsarchives.com/html/22</link>
<description><![CDATA[<p style="text-align:center;" align="center"><b>사용자 데이터를 안전하게 받는 방법</b></p><p style="text-align:center;" align="center"><b><br /></b></p><p style="text-align:left;" align="left">​웹사이트에서 사용자와 상호작용할 때 가장 많이 사용하는 HTML 요소가 바로 <strong>폼(Form)</strong> 입니다. 로그인, 회원가입, 게시글 작성 등 대부분의 웹 서비스는 폼을 통해 데이터를 입력받습니다.<br /></p>
<h2>폼의 기본 구조</h2>
<p>폼은 <code>&lt;form&gt;</code> 태그 안에 다양한 입력 요소(input, select, textarea 등)를 넣어 구성합니다.</p><p><span style="font-size:12px;">[code=html]&lt;form action="/submit" method="post"&gt;</span></p><p><span style="font-size:12px;">  &lt;label for="username"&gt;사용자 이름:&lt;/label&gt;</span></p><p><span style="font-size:12px;">  &lt;input type="text" id="username" name="username" required&gt;</span></p><p><span style="font-size:12px;"><br /></span></p><p><span style="font-size:12px;">  &lt;label for="email"&gt;이메일:&lt;/label&gt;</span></p><p><span style="font-size:12px;">  &lt;input type="email" id="email" name="email" required&gt;</span></p><p><span style="font-size:12px;"><br /></span></p><p><span style="font-size:12px;">  &lt;label for="password"&gt;비밀번호:&lt;/label&gt;</span></p><p><span style="font-size:12px;">  &lt;input type="password" id="password" name="password" required&gt;</span></p><p><span style="font-size:12px;"><br /></span></p><p><span style="font-size:12px;">  &lt;button type="submit"&gt;회원가입&lt;/button&gt;</span></p><p><span style="font-size:12px;">&lt;/form&gt;</span></p><p><span style="font-size:12px;">[/code]</span></p><p><span style="font-size:12px;"><br /></span></p><p>위 예시에서 <code>required</code> 속성은 입력을 필수로 만들고, <code>type="email"</code>은 이메일 형식을 자동으로 검증합니다.</p><h2>입력값 검증</h2><p>폼 검증은 <strong>사용자가 올바른 데이터를 입력했는지 확인</strong>하는 과정입니다. HTML5에서는 기본적인 검증을 제공하지만, JavaScript를 통해 더 세밀한 검증도 가능합니다.</p><p><br /></p><p><span style="font-size:12px;">[code=html]&lt;script&gt;</span></p><p><span style="font-size:12px;">  const form = document.querySelector("form");</span></p><p><span style="font-size:12px;"><br /></span></p><p><span style="font-size:12px;">  form.addEventListener("submit", (e) =&gt; {</span></p><p><span style="font-size:12px;">    const username = document.getElementById("username").value;</span></p><p><span style="font-size:12px;">    if (username.length &lt; 3) {</span></p><p><span style="font-size:12px;">      alert("사용자 이름은 최소 3자 이상이어야 합니다.");</span></p><p><span style="font-size:12px;">      e.preventDefault(); // 제출 막기</span></p><p><span style="font-size:12px;">    }</span></p><p><span style="font-size:12px;">  });</span></p><p><span style="font-size:12px;">&lt;/script&gt;</span></p><p><span style="font-size:12px;">[/code]</span></p><p><span style="font-size:12px;"><br /></span></p><h2>실무 활용 사례</h2><ol>
<li>
<p><strong>로그인 폼</strong>: 이메일과 비밀번호 형식 검증</p>
</li>
<li>
<p><strong>회원가입 폼</strong>: 비밀번호 강도 체크, 중복 확인</p>
</li>
<li>
<p><strong>게시판 입력</strong>: 글자 수 제한, 금지어 필터링</p>
</li>
</ol><h2>접근성 고려</h2><p>폼 레이블 <code>&lt;label&gt;</code>을 반드시 사용하여 스크린리더 사용자도 입력 필드를 쉽게 이해할 수 있게 합니다. <code>for</code> 속성과 <code>id</code>를 연결하면 시각적 레이블뿐 아니라 접근성까지 확보할 수 있습니다.</p><p><br /></p><p>폼과 입력값 검증은 웹 개발의 필수 요소입니다. HTML5 속성과 JavaScript를 적절히 활용하면, 사용자가 편리하게 입력하고 동시에 안전하게 데이터를 받을 수 있습니다.</p>
<pre class="overflow-visible!"></pre><div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"></div></div></div><div class="overflow-y-auto p-4" dir="ltr"></div></div>]]></description>
<dc:creator>DocsArchives</dc:creator>
<dc:date>2025-09-07T19:55:37+09:00</dc:date>
</item>


<item>
<title>시맨틱 태그 사용하기</title>
<link>https://docsarchives.com/html/21</link>
<description><![CDATA[<p style="text-align:center;" align="center"><b>구조를 살리는 HTML 작성법</b></p><p style="text-align:center;" align="center"><b><br /></b></p><p style="text-align:left;" align="left">​웹 개발에서 HTML은 단순히 화면에 콘텐츠를 표시하는 도구가 아닙니다. HTML을 올바르게 작성하면 검색 엔진 최적화(SEO)와 접근성 향상에도 도움이 됩니다. 그 핵심이 바로 <strong>시맨틱 태그(Semantic Tag)</strong> 의 활용입니다.<br /></p>
<h2>시맨틱 태그란?</h2>
<p>시맨틱(Semantic)은 “의미 있는”이라는 뜻을 가지고 있습니다. 따라서 시맨틱 태그란 단순히 레이아웃을 꾸미는 용도가 아니라, <strong>콘텐츠의 의미와 구조</strong>를 명확히 설명하는 HTML 태그를 말합니다.</p>
<p>예를 들어, <code>div</code>만 사용해서 웹페이지를 만들 수도 있지만, 이렇게 작성하면 구조를 파악하기 어렵습니다.</p><p><span style="font-size:12px;">[code=html]&lt;div class="top"&gt;&lt;/div&gt;</span></p><p><span style="font-size:12px;">&lt;div class="menu"&gt;&lt;/div&gt;</span></p><p><span style="font-size:12px;">&lt;div class="content"&gt;&lt;/div&gt;</span></p><p><span style="font-size:12px;">&lt;div class="bottom"&gt;&lt;/div&gt;</span></p><p><span style="font-size:12px;">[/code]</span></p><p><span style="font-size:12px;"><br /></span></p><p>하지만 시맨틱 태그를 사용하면 훨씬 명확해집니다.<span style="font-size:12px;"></span></p><p><span style="font-size:12px;">[code=html]&lt;header&gt;&lt;/header&gt;</span></p><p><span style="font-size:12px;">&lt;nav&gt;&lt;/nav&gt;</span></p><p><span style="font-size:12px;">&lt;main&gt;&lt;/main&gt;</span></p><p><span style="font-size:12px;">&lt;footer&gt;&lt;/footer&gt;</span></p><p><span style="font-size:12px;">[/code]</span></p><p><span style="font-size:12px;"><br /></span></p><p>검색 엔진과 보조기기도 이 구조를 이해하기 쉬워집니다.</p><h2>주요 시맨틱 태그 정리</h2><ul>
<li>
<p><code>&lt;header&gt;</code>: 페이지나 섹션의 머리글을 표현합니다.</p>
</li>
<li>
<p><code>&lt;nav&gt;</code>: 내비게이션 메뉴를 표시합니다.</p>
</li>
<li>
<p><code>&lt;main&gt;</code>: 문서의 주요 콘텐츠 영역입니다.</p>
</li>
<li>
<p><code>&lt;article&gt;</code>: 독립적인 콘텐츠 단위를 나타냅니다. 블로그 글, 뉴스 기사 등에 적합합니다.</p>
</li>
<li>
<p><code>&lt;section&gt;</code>: 주제별로 묶은 콘텐츠 블록입니다.</p>
</li>
<li>
<p><code>&lt;aside&gt;</code>: 본문과 직접적인 관련은 없지만 부가적인 정보를 제공할 때 사용합니다.</p>
</li>
<li>
<p><code>&lt;footer&gt;</code>: 페이지나 섹션의 바닥글을 표현합니다. 저작권, 연락처 등이 들어갑니다.</p></li></ul><div><h2>코드 예시</h2></div><div><div><span style="font-size:12px;">[code=html]&lt;!DOCTYPE html&gt;</span></div><div><span style="font-size:12px;">&lt;html lang="ko"&gt;</span></div><div><span style="font-size:12px;">&lt;head&gt;</span></div><div><span style="font-size:12px;">  &lt;meta charset="UTF-8"&gt;</span></div><div><span style="font-size:12px;">  &lt;title&gt;시맨틱 태그 예시&lt;/title&gt;</span></div><div><span style="font-size:12px;">&lt;/head&gt;</span></div><div><span style="font-size:12px;">&lt;body&gt;</span></div><div><span style="font-size:12px;">  &lt;header&gt;</span></div><div><span style="font-size:12px;">    &lt;h1&gt;내 블로그&lt;/h1&gt;</span></div><div><span style="font-size:12px;">  &lt;/header&gt;</span></div><div><span style="font-size:12px;">  &lt;nav&gt;</span></div><div><span style="font-size:12px;">    &lt;ul&gt;</span></div><div><span style="font-size:12px;">      &lt;li&gt;&lt;a href="/"&gt;홈&lt;/a&gt;&lt;/li&gt;</span></div><div><span style="font-size:12px;">      &lt;li&gt;&lt;a href="/about"&gt;소개&lt;/a&gt;&lt;/li&gt;</span></div><div><span style="font-size:12px;">      &lt;li&gt;&lt;a href="/contact"&gt;연락하기&lt;/a&gt;&lt;/li&gt;</span></div><div><span style="font-size:12px;">    &lt;/ul&gt;</span></div><div><span style="font-size:12px;">  &lt;/nav&gt;</span></div><div><span style="font-size:12px;">  &lt;main&gt;</span></div><div><span style="font-size:12px;">    &lt;article&gt;</span></div><div><span style="font-size:12px;">      &lt;h2&gt;첫 번째 글&lt;/h2&gt;</span></div><div><span style="font-size:12px;">      &lt;p&gt;이것은 시맨틱 태그를 활용한 예시입니다.&lt;/p&gt;</span></div><div><span style="font-size:12px;">    &lt;/article&gt;</span></div><div><span style="font-size:12px;">    &lt;aside&gt;</span></div><div><span style="font-size:12px;">      &lt;p&gt;관련 글: HTML 기본 구조&lt;/p&gt;</span></div><div><span style="font-size:12px;">    &lt;/aside&gt;</span></div><div><span style="font-size:12px;">  &lt;/main&gt;</span></div><div><span style="font-size:12px;">  &lt;footer&gt;</span></div><div><span style="font-size:12px;">    &lt;p&gt;&amp;copy; 2025 내 블로그&lt;/p&gt;</span></div><div><span style="font-size:12px;">  &lt;/footer&gt;</span></div><div><span style="font-size:12px;">&lt;/body&gt;</span></div><div><span style="font-size:12px;">&lt;/html&gt;</span></div><div><span style="font-size:12px;">[/code]</span></div></div><div><span style="font-size:12px;"><br /></span></div><div><p>이렇게 작성하면, 사람뿐만 아니라 <strong>검색 엔진 크롤러</strong>도 페이지의 구조를 더 잘 이해할 수 있습니다.</p>
<h2>실무에서의 장점</h2>
<ol>
<li>
<p><strong>SEO 향상</strong>: 검색 엔진은 시맨틱 태그를 분석하여 콘텐츠의 중요도를 판단합니다.</p>
</li>
<li>
<p><strong>접근성 개선</strong>: 화면 읽기 프로그램(Screen Reader)이 태그의 의미를 기반으로 콘텐츠를 전달합니다.</p>
</li>
<li>
<p><strong>유지보수 용이</strong>: 시맨틱 태그만 봐도 페이지의 구조를 직관적으로 이해할 수 있습니다.</p></li></ol><div> </div></div><div>HTML에서 시맨틱 태그를 제대로 활용하는 것은 단순히 “보이는 것”을 넘어서, 웹사이트의 품질을 높이는 핵심 습관입니다. 시맨틱 태그를 습관적으로 사용하면 검색엔진, 보조기기, 개발자 모두에게 친절한 코드를 만들 수 있습니다.</div>]]></description>
<dc:creator>DocsArchives</dc:creator>
<dc:date>2025-09-07T19:53:35+09:00</dc:date>
</item>


<item>
<title>로컬 스토리지</title>
<link>https://docsarchives.com/html/20</link>
<description><![CDATA[<p style="text-align:center;" align="center"><b>브라우저 안의 작은 데이터베이스</b></p><p style="text-align:center;" align="center"><b><br /></b></p><p style="text-align:left;" align="left">​웹 애플리케이션에서는 사용자의 데이터를 저장해야 하는 경우가 많습니다. 간단한 데이터는 서버가 아니라 <strong>브라우저 내부 저장소</strong>에 보관할 수 있습니다.<br /></p>
<h2>LocalStorage 사용법</h2><div><div><span style="font-size:12px;">[code=javascript]// 저장</span></div><div><span style="font-size:12px;">localStorage.setItem("username", "hong");</span></div><div><span style="font-size:12px;">// 불러오기</span></div><div><span style="font-size:12px;">console.log(localStorage.getItem("username"));</span></div><div><span style="font-size:12px;">// 삭제</span></div><div><span style="font-size:12px;">localStorage.removeItem("username");</span></div><div><span style="font-size:12px;">[/code]</span></div></div><div><span style="font-size:12px;"><br /></span></div><div><p>LocalStorage는 브라우저를 껐다 켜도 데이터가 남아 있습니다.</p>
<h2>활용 사례</h2>
<ul>
<li>
<p>로그인 상태 유지</p>
</li>
<li>
<p>사용자 환경 설정 저장</p>
</li>
<li>
<p>쇼핑몰 장바구니</p></li></ul><div>LocalStorage는 작지만 강력한 저장소입니다. 서버 부담을 줄이고 사용자 경험을 향상시키는 좋은 도구입니다.</div></div><div><br /></div>]]></description>
<dc:creator>DocsArchives</dc:creator>
<dc:date>2025-09-07T19:51:09+09:00</dc:date>
</item>


<item>
<title>에러 처리</title>
<link>https://docsarchives.com/html/19</link>
<description><![CDATA[<p style="text-align:center;" align="center"><b>안정적인 웹 만들기</b></p><p style="text-align:center;" align="center"><b><br /></b></p><p style="text-align:left;" align="left">​코드를 실행하다 보면 오류가 발생할 수 있습니다. 이를 방치하면 프로그램이 멈추지만, 에러 처리를 하면 안전하게 실행을 이어갈 수 있습니다.<br /></p>
<h2>try-catch</h2><div><div><span style="font-size:12px;">[code=javascript]try {</span></div><div><span style="font-size:12px;">  throw new Error("문제가 발생했습니다!");</span></div><div><span style="font-size:12px;">} catch (err) {</span></div><div><span style="font-size:12px;">  console.error(err.message);</span></div><div><span style="font-size:12px;">}</span></div><div><span style="font-size:12px;">[/code]</span></div></div><div><br /></div><div><h2>finally</h2></div><div><div><span style="font-size:12px;">[code=javascript]try {</span></div><div><span style="font-size:12px;">  console.log("작업 실행");</span></div><div><span style="font-size:12px;">} finally {</span></div><div><span style="font-size:12px;">  console.log("항상 실행됨");</span></div><div><span style="font-size:12px;">}</span></div><div><span style="font-size:12px;">[/code]</span></div></div><div><span style="font-size:12px;"><br /></span></div><div>에러 처리는 사용자 경험을 지키는 핵심입니다. 반드시 try-catch와 에러 로그 관리 방식을 익혀야 합니다.<span style="font-size:12px;"></span></div><div><h2><br /></h2></div>]]></description>
<dc:creator>DocsArchives</dc:creator>
<dc:date>2025-09-07T19:50:10+09:00</dc:date>
</item>


<item>
<title>this 키워드</title>
<link>https://docsarchives.com/html/18</link>
<description><![CDATA[<p style="text-align:center;" align="center"><b>문맥에 따라 달라지는 값</b></p><p style="text-align:center;" align="center"><b><br /></b></p><p style="text-align:left;" align="left">​JavaScript에서 <code>this</code>는 함수가 <strong>어떻게 호출되었는가</strong>에 따라 값이 달라집니다.<br /></p><p align="left"><span style="font-size:12px;">[code=javascript]console.log(this); // 전역 객체</span></p><p align="left"><span style="font-size:12px;">[/code]</span></p><p align="left"><span style="font-size:12px;"><br /></span></p><p align="left">객체의 메서드 안에서 호출하면 다른 값이 됩니다.<span style="font-size:12px;"></span></p><p align="left"><span style="font-size:12px;">[code=javascript]const obj = {</span></p><p align="left"><span style="font-size:12px;">  name: "홍길동",</span></p><p align="left"><span style="font-size:12px;">  sayName() {</span></p><p align="left"><span style="font-size:12px;">    console.log(this.name);</span></p><p align="left"><span style="font-size:12px;">  }</span></p><p align="left"><span style="font-size:12px;">};</span></p><p align="left"><span style="font-size:12px;">obj.sayName(); // 홍길동</span></p><p align="left"><span style="font-size:12px;">[/code]</span></p><p align="left"><span style="font-size:12px;"><br /></span></p><p align="left">또한 <code>bind</code>, <code>call</code>, <code>apply</code>로 강제로 바꿀 수도 있습니다.<span style="font-size:12px;"></span></p><p align="left"><span style="font-size:12px;">[code=javascript]function greet() {</span></p><p align="left"><span style="font-size:12px;">  console.log(this.name);</span></p><p align="left"><span style="font-size:12px;">}</span></p><p align="left"><span style="font-size:12px;">const user = { name: "철수" };</span></p><p align="left"><span style="font-size:12px;">greet.call(user); // 철수</span></p><p align="left"><span style="font-size:12px;">[/code]</span></p><p align="left"><span style="font-size:12px;"><br /></span></p><p align="left"><code>this</code>는 혼란스럽지만, 제대로 이해하면 JavaScript를 한 단계 깊게 다룰 수 있습니다.<span style="font-size:12px;"></span></p>]]></description>
<dc:creator>DocsArchives</dc:creator>
<dc:date>2025-09-07T19:48:43+09:00</dc:date>
</item>


<item>
<title>모듈 시스템</title>
<link>https://docsarchives.com/html/17</link>
<description><![CDATA[<p style="text-align:center;" align="center"><b>코드의 체계적인 관리</b></p><p style="text-align:center;" align="center"><b><br /></b></p><p style="text-align:left;" align="left">​프로젝트가 커지면 하나의 파일에 모든 코드를 담을 수 없습니다. 이때 필요한 것이 <strong>모듈 시스템</strong>입니다.<br /></p>
<h2>ES6 모듈</h2><div><div><span style="font-size:12px;">[code=javascript]// math.js</span></div><div><span style="font-size:12px;">export function add(a, b) {</span></div><div><span style="font-size:12px;">  return a + b;</span></div><div><span style="font-size:12px;">}</span></div><div><span style="font-size:12px;"><br /></span></div><div><span style="font-size:12px;">// main.js</span></div><div><span style="font-size:12px;">import { add } from "./math.js";</span></div><div><span style="font-size:12px;">console.log(add(2, 3));</span></div><div><span style="font-size:12px;">[/code]</span></div></div><div><span style="font-size:12px;"><br /></span></div><div><p>이렇게 <code>export</code>와 <code>import</code>를 통해 기능을 나누어 관리할 수 있습니다.</p>
<h2>장점</h2>
<ul>
<li>
<p>코드 재사용성 증가</p>
</li>
<li>
<p>유지보수 편리</p>
</li>
<li>
<p>네임스페이스 충돌 방지</p></li></ul><div> </div></div><div>모듈 시스템은 현대 JavaScript 개발에서 필수입니다. React, Vue, Node.js 모두 모듈 시스템을 기반으로 동작합니다.</div>]]></description>
<dc:creator>DocsArchives</dc:creator>
<dc:date>2025-09-07T19:47:08+09:00</dc:date>
</item>

</channel>
</rss>
