์ฝ”๋“œ ๋ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ์„ค๋ช…

๋ณ€๊ฒฝ ๋‚ด์šฉ

  1. ์†Œ์…œ ๋งํฌ ์ถ”๊ฐ€
    • Email ๋ฐ GitHub ๋งํฌ๋ฅผ ์ถ”๊ฐ€.
    • SVG ์•„์ด์ฝ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ๊ฐ์  ์š”์†Œ ์ถ”๊ฐ€.
  2. ์ ‘๊ทผ์„ฑ ํ–ฅ์ƒ
    • ๊ฐ ๋งํฌ์— aria-label ์†์„ฑ์„ ์ถ”๊ฐ€ํ•ด ์ ‘๊ทผ์„ฑ ๊ฐ•ํ™”.
    • target="_blank" ๋ฐ rel="noopener noreferrer"๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์•ˆ ๊ฐ•ํ™”.
  3. ๋™์  ๋งํฌ ๊ตฌ์กฐ
    • links ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•ด ์ฝ”๋“œ ๊ฐ€๋…์„ฑ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ž„.

์ฃผ์š” ์ฝ”๋“œ ์„ค๋ช…

1. ๋งํฌ ์ •์˜

  • href๋Š” ์‹ค์ œ ๋งํฌ๋กœ ์—ฐ๊ฒฐ.
  • icon์€ SVG๋กœ ์ •์˜, ํฌ๊ธฐ ๋ฐ ์ƒ‰์ƒ ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ๊ฐ€๋Šฅ.
const links = {
ย  Email: {
ย  ย  href: "mailto:ticani0610@gmail.com",
ย  ย  icon: (
ย  ย  ย  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
ย  ย  ย  ย  <path d="M12 13.065L2 6V18h20V6l-10 7.065z" fill="currentColor" />
ย  ย  ย  ย  <path d="M22 4H2c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h20c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm0 2.83v.024l-10 7.058L2 6.854V6h20v.83z" />
ย  ย  ย  </svg>
ย  ย  ),
ย  },
ย  GitHub: {
ย  ย  href: "https://github.com/Sameta-cani",
ย  ย  icon: (
ย  ย  ย  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
ย  ย  ย  ย  <path d="M12 .5C5.4.5 0 5.9 0 12.5c0 5.3 3.4 9.8 8.1 11.3.6.1.8-.2.8-.5v-2.1c-3.3.7-4-1.6-4-1.6-.6-1.5-1.5-1.9-1.5-1.9-1.2-.8.1-.8.1-.8 1.4.1 2.2 1.5 2.2 1.5 1.1 2 3 1.4 3.7 1.1.1-.8.4-1.4.7-1.7-2.7-.3-5.6-1.3-5.6-5.8 0-1.3.5-2.4 1.2-3.2-.1-.3-.5-1.5.1-3 0 0 1-.3 3.3 1.2a11.5 11.5 0 0 1 6 0c2.3-1.5 3.3-1.2 3.3-1.2.6 1.5.2 2.7.1 3 .8.8 1.2 1.9 1.2 3.2 0 4.5-2.8 5.5-5.6 5.8.4.3.8 1 .8 2.1v3.1c0 .3.2.6.8.5a12.5 12.5 0 0 0 8.1-11.3C24 5.9 18.6.5 12 .5z" />
ย  ย  ย  </svg>
ย  ย  ),
ย  },
}

2. ๋™์  ๋งํฌ ์ƒ์„ฑ

  • Object.entries()๋ฅผ ์‚ฌ์šฉํ•ด links ๊ฐ์ฒด๋ฅผ ์ˆœํšŒ.
  • ๋™์ ์œผ๋กœ <li>์™€ <a> ํƒœ๊ทธ๋ฅผ ์ƒ์„ฑํ•ด ํ™•์žฅ ๊ฐ€๋Šฅ์„ฑ์„ ํ™•๋ณด.
{Object.entries(links).map(([key, { href, icon }]) => (
ย  <li key={key}>
ย  ย  <a href={href} target="_blank" rel="noopener noreferrer" aria-label={key}>
ย  ย  ย  {icon}
ย  ย  </a>
ย  </li>
))}

๋น„์ฃผ์–ผ ๊ฒฐ๊ณผ

  • Email ๋ฐ GitHub ๋งํฌ๊ฐ€ ํฌํ•จ๋œ ํ‘ธํ„ฐ.
  • SVG ์•„์ด์ฝ˜์œผ๋กœ ์ง๊ด€์ ์ด๊ณ  ์„ธ๋ จ๋œ ๋””์ž์ธ.
  • ๋งˆ์šฐ์Šค ์˜ค๋ฒ„ ์‹œ SVG์˜ ๊ธฐ๋ณธ ์ƒํ˜ธ์ž‘์šฉ ํšจ๊ณผ๋ฅผ ์œ ์ง€.

์ฝ”๋“œ์˜ ์žฅ์ 

  1. ์œ ์ง€๋ณด์ˆ˜ ์šฉ์ด
    • ๋งํฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•  ๋•Œ links ๊ฐ์ฒด๋งŒ ์ˆ˜์ •ํ•˜๋ฉด ๋จ.
  2. ์žฌ์‚ฌ์šฉ์„ฑ ํ™•๋ณด
    • ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ์—์„œ๋„ ๋™์ผํ•œ ๋งํฌ ๊ตฌ์กฐ๋ฅผ ์‰ฝ๊ฒŒ ํ™œ์šฉ ๊ฐ€๋Šฅ.
  3. ์ ‘๊ทผ์„ฑ๊ณผ ๋ณด์•ˆ ๊ฐ•ํ™”
    • aria-label๋กœ ์ ‘๊ทผ์„ฑ ์ง€์›.
    • ์™ธ๋ถ€ ๋งํฌ์— rel="noopener noreferrer"๋ฅผ ์ถ”๊ฐ€ํ•ด ๋ณด์•ˆ ์ทจ์•ฝ์  ๋ฐฉ์ง€.