๐Ÿ“Œ HTML ํ•˜์ดํผ๋งํฌ & ๋‚ด๋น„๊ฒŒ์ด์…˜ ์™„๋ฒฝ ์ •๋ฆฌ


๐ŸŒ 1๏ธโƒฃ ํ•˜์ดํผ๋งํฌ ๊ธฐ๋ณธ ๊ตฌ์กฐ์™€ ๊ฐœ๋…

<a href="https://www.example.com">Example ์‚ฌ์ดํŠธ๋กœ ์ด๋™</a>
์š”์†Œ ์—ญํ•  ๋น„์œ  ๐ŸŒŸ
<a> ํ•˜์ดํผ๋งํฌ ์ƒ์„ฑ ํƒœ๊ทธ ๐Ÿ“ฌ ๋งํฌ๊ฐ€ ์ ํžŒ ํŽธ์ง€ ๋ด‰ํˆฌ (๋ˆ„๋ฅด๋ฉด ์ด๋™)
href ๋ชฉ์ ์ง€ ์ฃผ์†Œ (URL, ํŒŒ์ผ, ์•ต์ปค, ์ด๋ฉ”์ผ, ์ „ํ™”) ๐Ÿ“ ๋ชฉ์ ์ง€ ์ฃผ์†Œ (์›น ์ฃผ์†Œ, ๋ฌธ์„œ ๋‚ด ์œ„์น˜, ํŒŒ์ผ ๊ฒฝ๋กœ)
target ๋งํฌ ์—ด๋ฆด ์œ„์น˜ (_blank, _self ๋“ฑ) ๐ŸชŸ ์ƒˆ ์ฐฝ/ํ˜„์žฌ ์ฐฝ์—์„œ ์—ด๊ธฐ
rel ๋งํฌ์™€ ํ˜„์žฌ ๋ฌธ์„œ์˜ ๊ด€๊ณ„ (๋ณด์•ˆ, SEO) ๐Ÿ”’ ๋ณด์•ˆ ์ž๋ฌผ์‡  & SEO ์ง€์‹œ๋ฌธ

๐Ÿงฉ 2๏ธโƒฃ ๋‹ค์–‘ํ•œ href ํ™œ์šฉ ์‹ฌํ™” + ์˜ˆ์ œ

๋ชฉ์  ์˜ˆ์ œ ์„ค๋ช… ์‹ค๋ฌด ํŒ
์™ธ๋ถ€ ๋งํฌ <a href="https://google.com">Google</a> ๋‹ค๋ฅธ ์›น์‚ฌ์ดํŠธ๋กœ ์ด๋™ โœ… ์™ธ๋ถ€๋Š” target="_blank" + rel="noopener noreferrer"
๋‚ด๋ถ€ ๋งํฌ <a href="about.html">About</a> ๊ฐ™์€ ์‚ฌ์ดํŠธ ๋‚ด ๋‹ค๋ฅธ ํŽ˜์ด์ง€ โœ… SPA์—์„œ๋Š” ๋ผ์šฐํŒ… ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ
ํŽ˜์ด์ง€ ๋‚ด ์ด๋™ <a href="#services">์„œ๋น„์Šค๋กœ ์ด๋™</a><section id="services"> ๊ฐ™์€ ํŽ˜์ด์ง€ ๋‚ด ํŠน์ • ์œ„์น˜ โœ… ๊ธด ํŽ˜์ด์ง€ ๋ชฉ์ฐจ ํ•„์ˆ˜
ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ <a href="file.pdf" download>ํŒŒ์ผ ๋ฐ›๊ธฐ</a> ํด๋ฆญ ์‹œ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ โœ… ์‚ฌ์šฉ์ž ํŽธ์˜์„ฑ ๋†’์ž„
์ด๋ฉ”์ผ ์ „์†ก <a href="mailto:info@example.com">์ด๋ฉ”์ผ ๋ณด๋‚ด๊ธฐ</a> ์ด๋ฉ”์ผ ์•ฑ ์‹คํ–‰ โœ… ์ง์ ‘ ์—ฐ๋ฝ ์œ ๋„ ๊ฐ€๋Šฅ
์ „ํ™” ๊ฑธ๊ธฐ <a href="tel:01012345678">์ „ํ™” ๊ฑธ๊ธฐ</a> ๋ชจ๋ฐ”์ผ์—์„œ ์ „ํ™” ์•ฑ ์‹คํ–‰ โœ… ๋ชจ๋ฐ”์ผ UX ๊ฐ•ํ™”

๐ŸŽฏ 3๏ธโƒฃ target ์†์„ฑ ์‹ฌํ™”

๊ฐ’ ์„ค๋ช… ์‚ฌ์šฉ ์˜ˆ
_self ํ˜„์žฌ ์ฐฝ(ํƒญ)์—์„œ ์—ด๊ธฐ (๊ธฐ๋ณธ) <a href="about.html" target="_self">About</a>
_blank ์ƒˆ ์ฐฝ(ํƒญ)์—์„œ ์—ด๊ธฐ <a href="https://naver.com" target="_blank">Naver</a>
_parent ๋ถ€๋ชจ ํ”„๋ ˆ์ž„์—์„œ ์—ด๊ธฐ ํ”„๋ ˆ์ž„ ๊ตฌ์กฐ์—์„œ๋งŒ ์‚ฌ์šฉ
_top ์ตœ์ƒ์œ„ ํ”„๋ ˆ์ž„์—์„œ ์—ด๊ธฐ ์—ฌ๋Ÿฌ ์ค‘์ฒฉ๋œ ํ”„๋ ˆ์ž„ ๋ฒ—์–ด๋‚จ

โœ… ์‹ค๋ฌด: ์™ธ๋ถ€ ์‚ฌ์ดํŠธ๋Š” _blank + rel="noopener noreferrer" ํ•„์ˆ˜


๐Ÿ” 4๏ธโƒฃ rel ์†์„ฑ ์‹ฌํ™” + SEO & ๋ณด์•ˆ ํฌ์ธํŠธ

๊ฐ’ ์—ญํ•  ์‹ค๋ฌด ํฌ์ธํŠธ
noopener ์ƒˆ ํƒญ์—์„œ ์™ธ๋ถ€ ํŽ˜์ด์ง€๊ฐ€ window.opener๋กœ ํ˜„์žฌ ์ฐฝ ์ œ์–ด ๋ชปํ•˜๊ฒŒ ๋ณด์•ˆ ํ•„์ˆ˜!
noreferrer Referer ์ •๋ณด ์ˆจ๊น€ โ†’ ๋‚ด๊ฐ€ ์–ด๋””์„œ ์™”๋Š”์ง€ ๋ชจ๋ฅด๊ฒŒ ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ
nofollow ๊ฒ€์ƒ‰์—”์ง„ ํฌ๋กค๋Ÿฌ๊ฐ€ ์ด ๋งํฌ ๋”ฐ๋ผ๊ฐ€์ง€ ๋ง๋ผ๊ณ  ์š”์ฒญ ๊ด‘๊ณ /์ŠคํŒธ์„ฑ ๋งํฌ์— ํ•„์ˆ˜
external ์™ธ๋ถ€ ๋งํฌ์ž„์„ ์Šคํฌ๋ฆฐ๋ฆฌ๋”์—๊ฒŒ ์•Œ๋ฆผ ์ ‘๊ทผ์„ฑ ํ–ฅ์ƒ
ugc User Generated Content (์‚ฌ์šฉ์ž ์ž‘์„ฑ ์ฝ˜ํ…์ธ )์ž„์„ ๋ช…์‹œ ๊ฒŒ์‹œํŒ, ๋Œ“๊ธ€ ๋“ฑ์— ์‚ฌ์šฉ
sponsored ๊ด‘๊ณ ๋‚˜ ํ˜‘์ฐฌ ๋งํฌ์ž„์„ ๋ช…์‹œ SEO ํˆฌ๋ช…์„ฑ ์œ ์ง€

โœ… Best Practice ์˜ˆ์‹œ:

<a href="https://externalsite.com" target="_blank" rel="noopener noreferrer">
  ์™ธ๋ถ€ ์‚ฌ์ดํŠธ
</a>

๐Ÿ—๏ธ 5๏ธโƒฃ ํŽ˜์ด์ง€ ๋‚ด ์•ต์ปค ๋งํฌ ์‹ค์ „ ์˜ˆ์ œ (๊ธด ํŽ˜์ด์ง€ ์Šคํฌ๋กค๋ง ์ตœ์ ํ™”)

<nav>
  <ul>
    <li><a href="#section1">๐Ÿ”ฝ 1๋ฒˆ ์„น์…˜์œผ๋กœ ์ด๋™</a></li>
    <li><a href="#section2">๐Ÿ”ฝ 2๋ฒˆ ์„น์…˜์œผ๋กœ ์ด๋™</a></li>
  </ul>
</nav>

<section id="section1">
  <h2>๐Ÿ“Œ 1๋ฒˆ ์„น์…˜</h2>
  <p>1๋ฒˆ ๋‚ด์šฉ...</p>
</section>

<section id="section2">
  <h2>๐Ÿ“Œ 2๋ฒˆ ์„น์…˜</h2>
  <p>2๋ฒˆ ๋‚ด์šฉ...</p>
</section>

โœ… SPA์—์„œ๋„ ๋‚ด๋ถ€ ๋ผ์šฐํ„ฐ๋กœ ๋Œ€์ฒด ๊ฐ€๋Šฅ.


๐Ÿงญ 6๏ธโƒฃ <nav> ํ™œ์šฉ ์‹ฌํ™” + SEO & ์ ‘๊ทผ์„ฑ

โœ… ์˜ˆ์ œ:

<nav aria-label="๋ฉ”์ธ ๋‚ด๋น„๊ฒŒ์ด์…˜">
  <ul>
    <li><a href="index.html">๐Ÿ  Home</a></li>
    <li><a href="about.html">๐Ÿ‘ค About</a></li>
    <li><a href="#services">๐Ÿ› ๏ธ Services</a></li>
    <li><a href="https://github.com" target="_blank" rel="noopener">๐Ÿ’ป GitHub</a></li>
  </ul>
</nav>
ํฌ์ธํŠธ ์„ค๋ช…
์‹œ๋งจํ‹ฑ ๊ตฌ์กฐ <nav> ์‚ฌ์šฉ โ†’ ๊ฒ€์ƒ‰์—”์ง„ & ์Šคํฌ๋ฆฐ๋ฆฌ๋” ์ดํ•ด ๊ฐ€๋Šฅ
ARIA Label aria-label ์ถ”๊ฐ€ โ†’ ์ ‘๊ทผ์„ฑ ํ–ฅ์ƒ
์‹ค๋ฌด ์ ์šฉ ๋ฉ”๋‰ด๋ฐ”, ํ—ค๋”, ํ‘ธํ„ฐ์— <nav> ์ ๊ทน ์‚ฌ์šฉ

๐Ÿ“Š 7๏ธโƒฃ SPA์—์„œ ํ•˜์ดํผ๋งํฌ & ๋‚ด๋น„๊ฒŒ์ด์…˜ ํ™œ์šฉ๋ฒ•

โœ… React ์˜ˆ์‹œ (React Router):

import { Link } from 'react-router-dom';

<nav>
  <Link to="/">๐Ÿ  Home</Link>
  <Link to="/about">๐Ÿ‘ค About</Link>
  <a href="https://github.com" target="_blank" rel="noopener noreferrer">๐Ÿ’ป GitHub</a>
</nav>
ํฌ์ธํŠธ ์„ค๋ช…
SPA ๋‚ด๋ถ€ ์ด๋™ <Link> โ†’ ํŽ˜์ด์ง€ ์ƒˆ๋กœ๊ณ ์นจ ์—†์ด ๋น ๋ฅธ ์ด๋™
์™ธ๋ถ€ ์ด๋™ <a> + target="_blank" rel="noopener noreferrer"

๐Ÿ’ผ 8๏ธโƒฃ ๊ธฐ์ˆ  ๋ฉด์ ‘ ์˜ˆ์ƒ ์งˆ๋ฌธ ์‹ฌํ™” ๋ฒ„์ „

์งˆ๋ฌธ ํ•ต์‹ฌ ์ •๋ฆฌ
<a> ํƒœ๊ทธ์˜ ์ฃผ์š” ์†์„ฑ์€? href, target, rel, ํ…์ŠคํŠธ
noopener์™€ noreferrer ์ฐจ์ด์ ์€? noopener: ๋ณด์•ˆ, ์™ธ๋ถ€ ์ œ์–ด ์ฐจ๋‹จnoreferrer: Referer ์ •๋ณด ์ˆจ๊น€
<nav> ํƒœ๊ทธ์˜ ์—ญํ• ๊ณผ SEO ์˜ํ–ฅ์€? ์‹œ๋งจํ‹ฑ ๋‚ด๋น„๊ฒŒ์ด์…˜ ์ œ๊ณต, ์Šคํฌ๋ฆฐ๋ฆฌ๋” ํƒ์ƒ‰์„ฑ โ†‘, SEO ๊ธ์ •์ 
์™ธ๋ถ€ ๋งํฌ ๋ณด์•ˆ ์„ค์ • ๋ฐฉ๋ฒ•์€? target="_blank" + rel="noopener noreferrer" ํ•„์ˆ˜
SPA์—์„œ๋Š” <a> ๋Œ€์‹  ๋ฌด์—‡์„ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€? <Link> (React ๊ธฐ์ค€) โ†’ ํด๋ผ์ด์–ธํŠธ ๋ผ์šฐํŒ… ์ตœ์ ํ™”
nofollow์˜ ์‚ฌ์šฉ์ฒ˜๋Š”? ๊ด‘๊ณ , ์ŠคํŒธ, ์‚ฌ์šฉ์ž ์ƒ์„ฑ ์ฝ˜ํ…์ธ  ๋“ฑ ๊ฒ€์ƒ‰์—”์ง„ ํฌ๋กค๋ง ์ œํ•œ ํ•„์š” ์‹œ ์‚ฌ์šฉ

๐Ÿš€ 9๏ธโƒฃ ์‹ค๋ฌด Best Practice + ์ถ”๊ฐ€ ๊ณ ๊ธ‰ ํฌ์ธํŠธ

ํฌ์ธํŠธ ์ด์œ 
์™ธ๋ถ€ ๋งํฌ โ†’ target="_blank" + rel="noopener noreferrer" ์กฐํ•ฉ ๋ณด์•ˆ + ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ + SEO ์ตœ์ ํ™”
๋‚ด๋น„๊ฒŒ์ด์…˜์€ ๋ฐ˜๋“œ์‹œ <nav>๋กœ ๋ฌถ๊ธฐ + ARIA ํ™œ์šฉ ์ ‘๊ทผ์„ฑ & SEO ํ–ฅ์ƒ
๋งํฌ ํ…์ŠคํŠธ๋Š” ๋ช…ํ™•ํ•˜๊ฒŒ โ†’ โ€œ์—ฌ๊ธฐ ํด๋ฆญโ€ โŒ, โ€œGitHub ๋ฐฉ๋ฌธํ•˜๊ธฐโ€ โœ… UX & SEO ์˜ํ–ฅ
ํŽ˜์ด์ง€ ๋‚ด ๋ชฉ์ฐจ, ๊ธด ๊ธ€์—๋Š” ์•ต์ปค ์ ๊ทน ํ™œ์šฉ ์‚ฌ์šฉ์ž ํŽธ์˜์„ฑ & ๋น ๋ฅธ ์ด๋™
๊ด‘๊ณ /ํ˜‘์ฐฌ ๋งํฌ๋Š” rel="sponsored" ๋ช…์‹œ ๊ตฌ๊ธ€ SEO ํˆฌ๋ช…์„ฑ ์ง€ํ‚ค๊ธฐ
UGC ์ฝ˜ํ…์ธ  โ†’ rel="ugc" + nofollow ์ถ”์ฒœ ๋Œ“๊ธ€, ๊ฒŒ์‹œํŒ ์ŠคํŒธ ๋ฐฉ์ง€