Skip to content
SEO/seo-resources

ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๊ด€๋ จ๊ธ€ ๊ธฐ๋Šฅ์˜ ํ•œ๊ณ„์™€ ์™„์„ฑ๋„ ๋†’์ด๋Š” ๊ฐœ์„  ๋ฐฉ๋ฒ•

ํ‹ฐ์Šคํ† ๋ฆฌ ์นดํ…Œ๊ณ ๋ฆฌ ์ตœ์‹  ๊ธ€ ๋น„๋™๊ธฐ ๋กœ๋”ฉ ์Šคํฌ๋ฆฝํŠธ ์†Œ๊ฐœ

๊ธฐ๋ณธ ๊ด€๋ จ๊ธ€ ํ”Œ๋Ÿฌ๊ทธ์ธ ์‚ฌ์šฉ ์‹œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฏธ์ง€ ๊ณต๋ฐฑ, ์ œ๋ชฉ ์ถ•์•ฝ, Hํƒœ๊ทธ ์ถฉ๋Œ ๋ฌธ์ œ๋ฅผ ๋ถ„์„ํ•˜๊ณ  ์‹ค์ œ๋กœ ํ‹ฐ์Šคํ† ๋ฆฌ์— ๋ฐ”๋กœ ์ ์šฉ ๊ฐ€๋Šฅํ•œ ์ตœ์ ํ™” ์ฝ”๋“œ์™€ ์ ์šฉ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.


์ด๋ฒˆ๊ธ€์—๋Š” ํ‹ฐ์Šคํ† ๋ฆฌ ๋ธ”๋กœ๊ทธ์—์„œ ๋ณธ๋ฌธ ํ•˜๋‹จ์— ๋™์ผ์นดํ…Œ๊ณ ๋ฆฌ์˜ ์ตœ์‹  ํฌ์ŠคํŒ… 5๊ฐœ๋ฅผ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.. ์ด ์ฝ”๋“œ๋Š” SEO์—์„œ ๋ฐœ์ƒํ• ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋ฅผ ์ตœ์†Œํ™” ํ•˜๊ณ  ๋ธŒ๋ผ์šฐ์ €์˜ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๋ฅผ ๋ฐฉํ•ดํ•˜์ง€ ์•Š์œผ๋ฉด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.


๊ธฐ์กด ์ตœ์‹ ๊ธ€๊ณผ ๊ด€๋ จ๊ธ€์˜ ๋ฌธ์ œ์ 

๊ธฐ๋ณธ์ ์œผ๋กœ ํ‹ฐ์Šคํ† ๋ฆฌ ๋ธ”๋กœ๊ทธ์—์„œ๋Š” ๊ด€๋ จ ๊ธ€๊ณผ ์ž์ฒด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•ด ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€์„ ๊ธ€ ๋ณธ๋ฌธ ํ•˜๋‹จ์— ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ์ด ๊ธฐ๋Šฅ์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ € ์—ญ์‹œ ๊ธฐ์กด์—๋Š” ๊ด€๋ จ ๊ธ€ ๊ธฐ๋Šฅ์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€ ํ”Œ๋Ÿฌ๊ทธ์ธ๋งŒ ์‚ฌ์šฉํ•ด ์™”์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ตœ๊ทผ์—๋Š” ๊ตณ์ด ์ด๋Ÿฌํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๊ณ  ํŒ๋‹จํ•˜์—ฌ, ์ œ๊ฐ€ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ๋ฅผ ์ œ์ž‘ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์šฐ์„ , ์™œ ํ‹ฐ์Šคํ† ๋ฆฌ์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ์‰ฝ๊ณ  ํŽธ๋ฆฌํ•œ ๊ด€๋ จ ๊ธ€ ๋ฐ ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€ ๊ธฐ๋Šฅ์ด ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š”์ง€๋ถ€ํ„ฐ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

1. ๊ด€๋ จ ๊ธ€ ๊ธฐ๋Šฅ์˜ ๋ฌธ์ œ์ 

์ฝ˜ํ…์ธ  ์ œ์ž‘ ์‹œ ์ด๋ฏธ์ง€๋ฅผ ์ฒจ๋ถ€ํ•˜์ง€ ์•Š์œผ๋ฉด, ์ด๋ฏธ์ง€ ๋ˆ„๋ฝ์œผ๋กœ ์ธํ•ด ์ „์ฒด ๋””์ž์ธ์ด ๋ณด๊ธฐ ์ข‹์ง€ ์•Š๊ฒŒ ๊นจ์ง‘๋‹ˆ๋‹ค.๋˜ํ•œ ์ œ๋ชฉ์ด ์ง€๋‚˜์น˜๊ฒŒ ์งง๊ฒŒ ๋…ธ์ถœ๋˜์–ด, ๋ฐฉ๋ฌธ์ž๊ฐ€ ํ•ด๋‹น ๊ธ€์ด ์–ด๋–ค ๋‚ด์šฉ์„ ๋‹ด๊ณ  ์žˆ๋Š”์ง€ ์ „ํ˜€ ํŒŒ์•…ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

ํ‹ฐ์Šคํ† ๋ฆฌ ๋ธ”๋กœ๊ทธ ๊ด€๋ จ๊ธ€ SEO ๋ฌธ์ œ์ 
ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๊ด€๋ จ ๊ธ€ ๊ธฐ๋Šฅ์˜ ์ด๋ฏธ์ง€ ๋ˆ„๋ฝ ๋ฐ ์ฝ˜ํ…์ธ  ํŒŒ์•… ํ•œ๊ณ„


2. ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€ ๊ธฐ๋Šฅ์˜ ๋ฌธ์ œ์ 

์นดํ…Œ๊ณ ๋ฆฌ ์ƒ๋‹จ ์ œ๋ชฉ์— H4 ํƒœ๊ทธ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ ์šฉ๋˜์–ด ์žˆ์–ด, ๋ณธ๋ฌธ ์ฝ˜ํ…์ธ ์—์„œ H ํƒœ๊ทธ๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ํ—ค๋”ฉ ๊ตฌ์กฐ(Hierarchy)๊ฐ€ ๊ผฌ์ด๋ฉด์„œ SEO(์ฝ”์–ด ์›น ๋ฐ”์ดํƒˆ ๋ฐ ๋ฌธ์„œ ๊ตฌ์กฐ)์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๊ธฐ๋ณธ ๊ธ€์ž ์ƒ‰์ƒ ๋Œ€๋น„๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์•„, ์ ‘๊ทผ์„ฑ ์ ์ˆ˜(Accessibility Score)๊ฐ€ ํ•˜๋ฝํ•˜๋Š” ์›์ธ์ด ๋ฉ๋‹ˆ๋‹ค..

ํ‹ฐ์Šคํ† ๋ฆฌ ์Šคํ‚ค์˜ ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ๊ธ€์˜ SEO ๋ฌธ์ œ์ 
๊ธฐ๋ณธ ํ”Œ๋Ÿฌ๊ทธ์ธ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ œ๋ชฉ H ํƒœ๊ทธ ๊ตฌ์กฐ์™€ ๊ธ€์ž ์ƒ‰์ƒ ๋Œ€๋น„์œจ์˜ ๋ฌธ์ œ์ 

์นดํ…Œ๊ณ ๋ฆฌ ๋‹ค๋ฅธ๊ธ€ ์ฝ”๋“œ ์ž‘๋™ ๋ฐฉ์‹

1. ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฐ ํŒŒ์‹ฑ ๋กœ์ง: Fetch API์™€ DOMParser

์Šคํฌ๋ฆฝํŠธ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ํ˜„์žฌ ๋ณด๊ณ  ์žˆ๋Š” ๊ธ€์˜ ์นดํ…Œ๊ณ ๋ฆฌ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • ๋น„๋™๊ธฐ ํ†ต์‹  (Fetch API):fetch("/category/" + categoryPath)๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์นดํ…Œ๊ณ ๋ฆฌ ๋ชฉ๋ก ํŽ˜์ด์ง€์˜ ์ „์ฒด HTML ์†Œ์Šค๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ์ƒˆ๋กœ๊ณ ์นจ ์—†์ด ๋ฐฐ๊ฒฝ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.
  • ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ํŒŒ์‹ฑ (DOMParser): ๊ฐ€์ ธ์˜จ ํ…์ŠคํŠธ ํ˜•ํƒœ์˜ HTML ๋ฐ์ดํ„ฐ๋ฅผ DOMParser().parseFromString์„ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ์ƒ์˜ ๊ฐ€์ƒ DOM ๋ฌธ์„œ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‹ค์ œ ํ™”๋ฉด์—๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ  ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. ๋ฐ์ดํ„ฐ ์ •์ œ ๋ฐ ๋ณด์•ˆ ์ฒ˜๋ฆฌ

์ˆ˜์ง‘๋œ ๋ฐ์ดํ„ฐ ์ค‘ ์œ ํšจํ•œ ์ฝ˜ํ…์ธ ๋งŒ์„ ์„ ๋ณ„ํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค.

๋‹จ๊ณ„ ์ ์šฉ ๊ธฐ์ˆ  ๋ฐ ๋กœ์ง ๋ชฉ์ 
์ค‘๋ณต ๊ฒ€์‚ฌ Set() ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ currentPath ๋น„๊ต ํ˜„์žฌ ์ฝ๊ณ  ์žˆ๋Š” ๊ธ€์ด ๋ชฉ๋ก์— ์ค‘๋ณต ๋…ธ์ถœ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€
๋ฐ์ดํ„ฐ ์ถ”์ถœ querySelectorAll ๋ฐ querySelector ์ œ๋ชฉ, ๋งํฌ, ์š”์•ฝ๋ฌธ(excerpt) ๋“ฑ์˜ ํŠน์ • ํด๋ž˜์Šค ์š”์†Œ ์„ ๋ณ„
ํ…์ŠคํŠธ ๊ฐ€๊ณต trim() ๋ฐ ์ •๊ทœํ‘œํ˜„์‹ replace(/\s+/g, " ") ๋ถˆํ•„์š”ํ•œ ๊ณต๋ฐฑ ์ œ๊ฑฐ ๋ฐ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ ์ •๊ทœํ™”
๊ธธ์ด ์ œํ•œ slice(0, 120) ๋ ˆ์ด์•„์›ƒ ๊นจ์ง ๋ฐฉ์ง€๋ฅผ ์œ„ํ•œ ์š”์•ฝ๋ฌธ ๊ธธ์ด ์ตœ์ ํ™”

3. ๋™์  DOM ์ƒ์„ฑ

์ตœ์ข…์ ์œผ๋กœ ๊ฐ€๊ณต๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์ œ ์›น ํŽ˜์ด์ง€์— ์‚ฝ์ž…ํ•˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.

  • ๋™์  ๋…ธ๋“œ ์‚ฝ์ž…:document.createElement("li")์™€ innerHTML์„ ์กฐํ•ฉํ•˜์—ฌ ๊ฐ ๊ฒŒ์‹œ๊ธ€์˜ ๋งํฌ์™€ ์ œ๋ชฉ์„ ํฌํ•จํ•œ HTML ๊ตฌ์กฐ๋ฅผ ์ƒ์„ฑํ•œ ๋’ค, appendChild๋กœ ๊ธฐ์กด ๋ชฉ๋ก(ul)์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

4. ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์ „๋žต

๋„คํŠธ์›Œํฌ ์˜ค๋ฅ˜๋‚˜ ์นดํ…Œ๊ณ ๋ฆฌ ์ •๋ณด ๋ถ€์žฌ ์‹œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด catch ๊ตฌ๋ฌธ๊ณผ ์กฐ๊ฑด๋ฌธ์„ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๊ฐ€์ ธ์˜ฌ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•˜๋‚˜๋„ ์—†์„ ๊ฒฝ์šฐ sectionEl.style.display = "none" ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•ด ๋นˆ ์˜์—ญ์ด ๋…ธ์ถœ๋˜์ง€ ์•Š๋„๋ก UI์˜ ์™„์„ฑ๋„๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

5. ๊ธ€ ํ•˜๋‹จ ๊ด‘๊ณ  ๋…ธ์ถœ ์ตœ์ ํ™”

์ฝ˜ํ…์ธ  ํ•˜๋‹จ์— ๊ด‘๊ณ ๋ฅผ ๋ฐฐ์น˜ํ•˜๋ฉด ๋Œ€๋ถ€๋ถ„ ๋…ธ์ถœ ์„ฑ๊ณผ๊ฐ€ ์ข‹์ง€ ์•Š์€ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.
๊ทธ ์ด์œ  ์ค‘ ํ•˜๋‚˜๋Š” ๊ด‘๊ณ  ์ฃผ๋ณ€์— ์˜๋ฏธ ์žˆ๋Š” ์ฝ˜ํ…์ธ ๊ฐ€ ๋ถ€์กฑํ•˜์—ฌ ๊ด‘๊ณ  ์ž…์ฐฐ(Ad Auction)์— ๋ถˆ๋ฆฌํ•˜๊ฒŒ ์ž‘์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์•„๋ž˜ ์ฝ”๋“œ๋Š” ๋‹จ์ˆœํžˆ ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€์„ ์ œ๋ชฉ๋งŒ ๋‚˜์—ดํ•˜๋Š” ๋ฐฉ์‹์ด ์•„๋‹ˆ๋ผ,
ํ•ด๋‹น ๊ธ€๊ณผ ๊ด€๋ จ๋œ ์š”์•ฝ ๋‚ด์šฉ์„ ํ•จ๊ป˜ ํ‘œ์‹œํ•˜๋„๋ก ๊ตฌ์„ฑํ•˜์—ฌ,
๊ด‘๊ณ  ๋ฌธ๋งฅ ์‹ ํ˜ธ(Contextual Signal)๋ฅผ ๊ฐ•ํ™”ํ•˜๊ณ  ๊ด‘๊ณ  ๋…ธ์ถœ์ด ๋ณด๋‹ค ์›ํ™œํ•˜๊ฒŒ ์ด๋ฃจ์–ด์ง€๋„๋ก ์„ค๊ณ„ํ–ˆ์Šต๋‹ˆ๋‹ค.

์นดํ…Œ๊ณ ๋ฆฌ ์ตœ์‹  ๊ธ€ ์ž๋™ ์ถœ๋ ฅ ์ฝ”๋“œ ์„ค๋ช…๋ฐ ์„ค์น˜ ๋ฐฉ๋ฒ•

์ด ์ฝ”๋“œ๋Š” ํ˜„์žฌ ๋ณด๊ณ  ์žˆ๋Š” ๊ธ€์ด ์†ํ•œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ๊ธฐ์ค€์œผ๋กœ, ๊ฐ™์€ ์นดํ…Œ๊ณ ๋ฆฌ์˜ ์ตœ์‹  ๊ธ€ 5๊ฐœ๋ฅผ ์ž๋™์œผ๋กœ ๋ถˆ๋Ÿฌ์™€ ๊ธ€ ํ•˜๋‹จ์— ์ถœ๋ ฅํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ•ฉ๋‹ˆ๋‹ค.

ํŽ˜์ด์ง€๊ฐ€ ๋กœ๋“œ๋˜๋ฉด ํ˜„์žฌ ๊ธ€์˜ ์นดํ…Œ๊ณ ๋ฆฌ๋ช…์„ ์ฝ์–ด ํ•ด๋‹น ์นดํ…Œ๊ณ ๋ฆฌ ํŽ˜์ด์ง€๋ฅผ ์ง์ ‘ ๋ถˆ๋Ÿฌ์˜ค๊ณ , ๊ทธ ์•ˆ์—์„œ ์ œ๋ชฉ๊ณผ ์š”์•ฝ(excerpt) ์ •๋ณด๋ฅผ ์ถ”์ถœํ•ด ๋ชฉ๋ก ํ˜•ํƒœ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ํ˜„์žฌ ๋ณด๊ณ  ์žˆ๋Š” ๊ธ€์€ ์ œ์™ธ๋˜๋ฉฐ, ์ค‘๋ณต ๊ธ€๋„ ์ž๋™์œผ๋กœ ํ•„ํ„ฐ๋ง๋ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์š”์•ฝ ๋ฌธ์žฅ์„ ํ•จ๊ป˜ ์ถœ๋ ฅํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋‹จ์ˆœํ•œ ์ œ๋ชฉ ๋‚˜์—ด ๋ฐฉ์‹๋ณด๋‹ค ์ฝ˜ํ…์ธ  ๋ฌธ๋งฅ์ด ๊ฐ•ํ™”๋˜์–ด๊ธ€ ํ•˜๋‹จ ๊ด‘๊ณ (์• ๋“œ์„ผ์Šค) ๋…ธ์ถœ ๋ฐ ์ž…์ฐฐ ํ™˜๊ฒฝ์—๋„ ๊ธ์ •์ ์ธ ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ณ„๋„์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ๊ทธ๋Œ€๋กœ ํ™œ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋ณ๊ณ  ์•ˆ์ •์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์ด ํŠน์ง•์ž…๋‹ˆ๋‹ค.

section id="category-latest"
 P์ด ์นดํ…Œ๊ณ ๋ฆฌ ์ตœ์‹  ๊ธ€/P
 ul id="category-latest-list"/ul
/section

script
(function () {
 "use strict";

 if (!/^\/\d+$/.test(location.pathname)) return;

 const categoryEl = document.querySelector(".category");
 const listEl = document.getElementById("category-latest-list");
 const sectionEl = document.getElementById("category-latest");
 if (!categoryEl || !listEl) return;

 const categoryPath = categoryEl.textContent.trim();
 if (!categoryPath) return;

 const currentPath = location.pathname;
 const used = new Set();

 fetch("/category/" + categoryPath)
 .then((r) = r.text())
 .then((html) = {
 const doc = new DOMParser().parseFromString(html, "text/html");
 const items = doc.querySelectorAll("ul.posts-container li");

 let count = 0;

 for (const item of items) {
 if (count = 5) break;

 const linkEl = item.querySelector(".post-item a[href^='/']");
 const titleEl = item.querySelector(".title");
 const descEl = item.querySelector(".excerpt");

 if (!linkEl || !titleEl) continue;

 const url = linkEl.getAttribute("href");
 if (!url || url === currentPath || used.has(url)) continue;
 used.add(url);

 const title = titleEl.textContent.trim();
 if (!title) continue;

 let desc = "";
 if (descEl) {
 desc = descEl.textContent.trim().replace(/\s+/g, " ").slice(0, 120);
 }

 const li = document.createElement("li");
 li.innerHTML =
 'a href="' +
 url +
 '"' +
 'strong class="cat-title"' +
 title +
 "/strong" +
 (desc ? 'span class="cat-desc"' + desc + "/span" : "") +
 "/a";

 listEl.appendChild(li);
 count++;
 }

 if (count === 0 && sectionEl) sectionEl.style.display = "none";
 })
 .catch(() = {
 if (sectionEl) sectionEl.style.display = "none";
 });
})();
/script

ํ‹ฐ์Šคํ† ๋ฆฌ ๋ธ”๋กœ๊ทธ ์„ค์น˜ ๋ฐฉ๋ฒ•

1. HTML ์‚ฝ์ž… ์œ„์น˜ ์„ ํƒ

์•„๋ž˜ ์œ„์น˜ ์ค‘ ํ•˜๋‚˜๋งŒ ์„ ํƒํ•ด ์‚ฝ์ž…ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

  • ๊ธ€์“ฐ๊ธฐ ํ™”๋ฉด HTML ๋ชจ๋“œ ๊ธ€ ํ•˜๋‹จ
  • ์Šคํ‚จ ํŽธ์ง‘ HTML /article ๋˜๋Š” /div!-- article -- ๋ฐ”๋กœ ์œ„
  • ์Šคํ‚จ ํŽธ์ง‘ HTML /body ๋ฐ”๋กœ ์œ„


2. ์ฝ”๋“œ ์‚ฝ์ž…

์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ๊ทธ๋Œ€๋กœ ๋ณต์‚ฌํ•ด ์„ ํƒํ•œ ์œ„์น˜์— ๋ถ™์—ฌ ๋„ฃ์Šต๋‹ˆ๋‹ค.

  • ๋ชจ๋ฐ”์ผPC ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ๊ธ€ ํŽ˜์ด์ง€(/์ˆซ์ž)์—์„œ๋งŒ ์‹คํ–‰๋˜๋„๋ก ์กฐ๊ฑด์ด ์ด๋ฏธ ํฌํ•จ๋˜์–ด ์žˆ์Œ
  • ์ถ”๊ฐ€ ์ˆ˜์ • ์—†์ด ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

(์‚ฌ์šฉ ์ค‘์ธ ์Šคํ‚จ์—์„œ .category, .posts-container, .title, .excerpt ๊ตฌ์กฐ๊ฐ€ ์œ ์ง€๋˜์–ด์•ผ ์ •์ƒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. )

3. ๊ธฐ๋ณธ CSS

#category-latest {
 margin: 48px auto 0;
 padding-top: 28px;
 border-top: 1px solid #e6e6e6;
 max-width: 1200px;
}

#category-latest p, .related-articles p {
 font-size: 1.15rem;
 font-weight: 700;
 margin-bottom: 20px;
 color: #111;
}

#category-latest ul {
 list-style: none;
 padding: 0;
 margin: 0;
}

#category-latest li {
 margin-bottom: 20px;
}

#category-latest a {
 display: block;
 padding: 14px 16px;
 border-radius: 10px;
 text-decoration: none;
 background: #fafafa;
 transition: background 0.2s ease;
}

#category-latest a:hover {
 background: #f0f0f0;
}

#category-latest strong {
 display: block;
 font-size: 1.2rem;
 font-weight: 600;
 line-height: 1.4;
 color: #111;
}

#category-latest span {
 display: block;
 margin-top: 6px;
 font-size: 0.85rem;
 line-height: 1.5;
 color: #666;
}

@media (max-width: 768px) {
 #category-latest {
 margin-top: 32px;
 padding-top: 20px;
 }

 #category-latest a {
 padding: 12px 14px;
 }

 category-latest span {
 font-size: 0.8rem;
 }
}

4. ์ ์šฉ ์˜ˆ์ œ

์•„๋ž˜๋Š” ๊ธฐ๋ณธ CSS๋ฅผ ์ ์šฉํ•œ ์˜ˆ์ œ ์ด๋ฏธ์ง€์ž…๋‹ˆ๋‹ค. ์ž์‹ ์˜ ๋ธ”๋กœ๊ทธ ๊ฐœ์„ฑ์— ๋งž๊ฒŒ ์œ„ CSS๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ ์‚ฌ์šฉํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

ํ‹ฐ์Šคํ† ๋ฆฌ ๋ธ”๋กœ๊ทธ ์นดํ…Œ๊ณ ๋ฆฌ ์ตœ์‹ ๊ธ€ ๋ณด๊ธฐ ์ฝ”๋“œ ๊ณต์œ 
๊ธฐ๋ณธ CSS๊ฐ€ ์ ์šฉ๋œ ์นดํ…Œ๊ณ ๋ฆฌ ์ตœ์‹ ๊ธ€ ๋ชฉ๋ก


๊ฒฐ๋ก ์ ์œผ๋กœ ์ด ์ฝ”๋“œ๋Š” ๋น„๋™๊ธฐ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ๊ณผ ๋ธŒ๋ผ์šฐ์ € ์ตœ์ ํ™” API๋ฅผ ํ™œ์šฉํ•ด,
ํ‹ฐ์Šคํ† ๋ฆฌ ๋ธ”๋กœ๊ทธ์˜ ๋‚ด๋ถ€ ๋งํฌ ๊ตฌ์กฐ๋ฅผ ๊ฐœ์„ ํ•˜๊ณ  ์‚ฌ์šฉ์ž ์ฒด๋ฅ˜ ์‹œ๊ฐ„์„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋Š˜๋ ค์ฃผ๋Š” ์Šคํฌ๋ฆฝํŠธ์ž…๋‹ˆ๋‹ค.
๊ด€์‹ฌ ์žˆ์œผ์‹  ๋ถ„๋“ค์€ ํ•œ ๋ฒˆ ์ ์šฉํ•ด ๋ณด์…”๋„ ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค.

Latest in this category

    ์ฟ ํŒกํŒŒํŠธ๋„ˆ์Šค API V2 ๊ธฐ๋ฐ˜์œผ๋กœ ์ตœ์‹ ์ƒํ’ˆ ๋ฐ ์ธ๊ธฐ์ƒํ’ˆ์ด ์ž๋™ ๋…ธ์ถœ๋ฉ๋‹ˆ๋‹ค.

    AI ์ฑ—๋ด‡์œผ๋กœ ๊ด€๋ จ ์ •๋ณด๋ฅผ ๋น ๋ฅด๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉˆ์ถค
    ๋…ธ๋ž˜ ์žฌ์ƒ ๋ฉˆ์ถค