๋น ์ธ๋ค์ผ ์จ๊ธฐ๊ณ ๊ธ ์์ฝ ํ๋! ๋ธ๋ก๊ทธ ๋ ์ด์์ ์๋ ์ ๋ฆฌ
๋ธ๋ก๊ทธ๋ ์น์ฌ์ดํธ์ ๋ฉ์ธ/์นดํ ๊ณ ๋ฆฌ ํ์ด์ง์์ ์ด๋ฏธ์ง๊ฐ ์๋ ๊ฒ์๊ธ์ ๋น ์ธ๋ค์ผ ๊ณต๊ฐ์ ์๋์ผ๋ก ์จ๊ธฐ๊ณ ๊ธ ์์ฝ(Excerpt) ์์ญ์ ํ๋ํ์ฌ ๋ ์ด์์์ ๊น๋ํ๊ฒ ์ ๋ฆฌํ๋ JavaScript ์ฝ๋ ์ ์ฉ ๋ฐฉ๋ฒํ๊ธฐ!
์ด ์๋ ์ ๋ฆฌ ์คํฌ๋ฆฝํธ๋ ์ฌ์ฉ์ ๊ฒฝํ(UX)์ ํฅ์์ํค๊ณ ํ์ด์ง ๋ก๋ฉ ์๋ ์ต์ ํ์ ๊ธฐ์ฌํ์ฌ ๊ถ๊ทน์ ์ผ๋ก ๊ฒ์ ์์ง ์ต์ ํ(SEO)์ ๊ธ์ ์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ํฐ์คํ ๋ฆฌ ๋ธ๋ก๊ทธ ์ด์์๋ฅผ ์ํ ๋ง์ถคํ ํ์ ํฌํจํฉ๋๋ค.
๋ธ๋ก๊ทธ๋ ์น์ฌ์ดํธ ์ด์์์ ์ด๋ฏธ์ง๋ ๊ฒ์ ์์ง ์ต์ ํ(SEO)์ ๊ธ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น ์ ์๋ ์ค์ํ ์์ ์ค ํ๋์
๋๋ค. ์ค์ ๋ก ์ ์ ํ ์ด๋ฏธ์ง๊ฐ ํฌํจ๋ ๊ธ์ ๊ฒ์ ๊ฒฐ๊ณผ์์ ๋ ๋์ ๋๊ณ ๋ฐฉ๋ฌธ์ ๊ด์ฌ์ ๋๊ธฐ ์ฝ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋ ๊ฒ์๊ธ์ ๋ฐ๋์ ์ด๋ฏธ์ง๋ฅผ ๋ฃ์ด์ผ ํ๋ ๊ฒ์ ์๋๋๋ค.
์คํ๋ ค ์ฝํ
์ธ ์ ์ฑ๊ฒฉ์ด๋ ์ฃผ์ ์ ๋ฐ๋ผ ์ด๋ฏธ์ง๋ ๋๋ก ๋ถ์ ์ ์ธ ์ํฅ์ ์ค ์๋ ์์ผ๋ฉฐ, ๋ถํ์ํ ์ด๋ฏธ์ง ์ฝ์
์ ํ์ด์ง ๋ก๋ฉ ์๋๋ฅผ ์ ํ์์ผ ์ฌ์ฉ์ ๊ฒฝํ(UX)์ ๋จ์ด๋จ๋ฆด ์ ์์ต๋๋ค.
ํนํ ๋ฉ์ธ ํ์ด์ง๋ ์นดํ ๊ณ ๋ฆฌ ๋ฆฌ์คํธ ๋ฑ์์๋ ํ ์คํธ ์ค์ฌ์ ๊ธ๋ค์ด ์ด๋ฏธ์ง ์์ด ๋ ธ์ถ๋๋ ๊ฒฝ์ฐ๊ฐ ๋น๋ฒํ๋ฐ, ์ด๋ HTML ๊ตฌ์กฐ์ ์ด๋ฏธ์ง๊ฐ ๋ค์ด๊ฐ ์๋ฆฌ(์: ์ธ๋ค์ผ ์์ญ, figure ํ๊ทธ ๋ฑ)์ ์ด๋ฏธ์ง๊ฐ ์์ผ๋ฉด ๋น ๊ณต๊ฐ์ด ๊ทธ๋๋ก ๋จ์ ๋์์ธ์ด ๊นจ์ง๊ฑฐ๋ ํ์ด์ง ๋ ์ด์์์ด ํํธ๋ฌ์ ธ ์ฌ์ฉ์ ๊ฒฝํ์ด ์ ํ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
๋ฐ๋ผ์, ๋ธ๋ก๊ทธ ์ด์์๋ ์ด๋ฏธ์ง ์ ๋ฌด์ ๋ฐ๋ฅธ ๋ ์ด์์ ์กฐ์ ๊ณผ ๋น ์ธ๋ค์ผ ์จ๊ธฐ๊ธฐ ๊ฐ์ ๋ฐฉ๋ฒ์ ํ์ฉํ ์ ์์ต๋๋ค. ์ด๋ฒ ๊ธ์์ ๊ฐ๋จํ๊ฒ ํด๊ฒฐ ํ ์ ์๋ ๋ฐฉ๋ฒ์ ์์๋ณด๊ฒ ์ต๋๋ค.
๋น ์ด๋ฏธ์ง ๊ณต๊ฐ์ ์ ๊ฑฐํ๊ณ ์ฝํ ์ธ ๊ฐ๋ ์ฑ ๋์ด๋ JS ์ฝ๋ ์ ์ฉ๋ฒ
์ด ๋น ๊ณต๊ฐ ๋ฌธ์ ๋ ๋ฐฉ๋ฌธ์์ ํ์ด์ง ์ฒด๋ฅ ์๊ฐ ๊ฐ์, ์ฌ์ดํธ ์ ๋ขฐ๋ ํ๋ฝ์ผ๋ก ์ด์ด์ ธ ๊ฒฐ๊ณผ์ ์ผ๋ก ๊ฒ์ ์์ง ์ต์ ํ(SEO)์๋ ๋ถ์ ์ ์ธ ์ํฅ์ ์ค ์ ์์ผ๋ฏ๋ก ์ฃผ์๊ฐ ํ์ํฉ๋๋ค.
์ด๋ฏธ์ง๊ฐ ์์ ๋ ๋น ๊ณต๊ฐ์ ๊ฐ์ถ๋ ๊ฐ๋จํ JavaScript ์คํฌ๋ฆฝํธ
์๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ HTML ๋ด ํน์ ์ด๋ฏธ์ง ์ปจํ ์ด๋ ์์(span.thum, figure.card-img-container, ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ figure)๋ฅผ ๊ฒ์ฌํด์, ํด๋น ์์ญ์ ์ด๋ฏธ์ง(img ํ๊ทธ)๊ฐ ์์ผ๋ฉด ํด๋น ์์๋ฅผ ์์ ํ๋ฉด์์ ์จ๊ฒจ ์ค๋๋ค. ์ด๋ฅผ ํตํด ๋ถํ์ํ ๋น ๊ณต๊ฐ ๋ ธ์ถ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
script
document.addEventListener('DOMContentLoaded', () = {
document.querySelectorAll('span.thum, figure.card-img-container, figure').forEach(el = {
const img = el.querySelector('img');
if (!img) {
el.style.display = 'none';
}
});
});
/script
์ฌ์ฉ๋ฒ ๋ฐ ๋์ ์๋ฆฌ
- ์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ธ๋ก๊ทธ ๋ฉ์ธ ํ์ด์ง, ์นดํ
๊ณ ๋ฆฌ ํ์ด์ง ํน์ ์ด๋ฏธ์ง ์ธ๋ค์ผ์ด ๋
ธ์ถ๋๋ ๋ชจ๋ ํ์ด์ง์ ์ฝ์
ํฉ๋๋ค. (์ผ๋ฐ์ ์ผ๋ก HTML ํธ์ง์
/bodyํ๊ทธ ์ง์ ์ ์ฝ์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.) - HTML ๊ตฌ์กฐ ๋ด
span.thum,figure.card-img-container, ํน์figureํ๊ทธ๊ฐ ์ด๋ฏธ์ง ์ปจํ ์ด๋ ์ญํ ์ ํ๋ค๋ฉด, ์ด ์คํฌ๋ฆฝํธ๊ฐ ์๋์ผ๋ก ๋ด๋ถ์ ์ด๋ฏธ์ง ์ ๋ฌด๋ฅผ ํ๋จํฉ๋๋ค. - ์ด๋ฏธ์ง๊ฐ ์๋ ๊ฒฝ์ฐ ํด๋น ์ปจํ ์ด๋๋ ์จ๊ฒจ์ง๋ฏ๋ก, ๋น ๊ณต๊ฐ์ด ์ฌ๋ผ์ง๊ณ ๋ ์ด์์์ด ์์ฐ์ค๋ฝ๊ฒ ์ ๋๋ฉ๋๋ค.
์ ์ด ์คํฌ๋ฆฝํธ๊ฐ ํ์ํ๊ฐ์? (UX, SEO ๊ด์ )
- ์ฌ์ฉ์ ๊ฒฝํ(UX) ํฅ์
์ด๋ฏธ์ง๊ฐ ์๋๋ฐ ๋น ๋ฐ์ค๋ง ๋จ์ ์๋ค๋ฉด ๋ฐฉ๋ฌธ์๋ ํ์ด์ง๊ฐ ์ด์ํ๊ณ ์กฐ์กํ๋ค๊ณ ๋๋ ์ ์์ต๋๋ค. ๋น ๊ณต๊ฐ์ด ์ฌ๋ผ์ง๋ฉด ๋์์ธ ์์ฑ๋๊ฐ ์ฌ๋ผ๊ฐ๊ณ , ๋ฐฉ๋ฌธ์ ๋ง์กฑ๋๊ฐ ๋์์ง๋๋ค. - ํ์ด์ง ๋ก๋ฉ ์๋ ์ต์ ํ
๋ถํ์ํ ๋น ๊ณต๊ฐ์ ์คํ์ผ์ด๋ ์์๊ฐ ๋จ์ ์์ผ๋ฉด ๋ ๋๋ง ๋ถ๋ด์ด ์ฝ๊ฐ ์ฆ๊ฐํ ์ ์์ต๋๋ค. ์ด๋ฅผ ์ ๊ฑฐํ๋ฉด ๊ฐ์ ์ ์ผ๋ก ์๋ ํฅ์์ ๊ธฐ์ฌํ ์ ์์ต๋๋ค. - ๊ฒ์ ์์ง ์ต์ ํ(SEO) ํจ๊ณผ
๊ฒ์ ์์ง์ ์ฌ์ฉ์ ์ฒดํ์ ์ค์ํ ํ๊ฐ ์์๋ก ์ผ์ต๋๋ค. ๊น๋ํ๊ณ ์๋ฏธ ์๋ ์ฝํ ์ธ ๊ตฌ์กฐ๋ ๊ฒ์ ๋ญํน์ ๊ธ์ ์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ์ด๋ฏธ์ง๊ฐ ์์ผ๋ฉด ํด๋น ๊ณต๊ฐ์ ๊ฐ์ถ๋ ๊ฒ์ ์ฝํ ์ธ ๊ฐ๋ ์ฑ๊ณผ ๊ตฌ์กฐ ์ดํด๋ ๊ฐ์ ์ ๋์์ด ๋ฉ๋๋ค.
์ถ๊ฐ ํ: ํฐ์คํ ๋ฆฌ ๋ธ๋ก๊ทธ ๋น ์ธ๋ค์ผ ์จ๊ธฐ๊ธฐ ๋ฐ ๊ธ ์์ฝ ํ๋ ์๋ํ
ํฐ์คํ ๋ฆฌ ๋ธ๋ก๊ทธ๋ฅผ ์ด์ํ๋ค ๋ณด๋ฉด, ๋ฉ์ธ ํ๋ฉด์ด๋ ์นดํ ๊ณ ๋ฆฌ ํ์ด์ง ๋ฑ์์ ์ธ๋ค์ผ(์ด๋ฏธ์ง)์ด ๋น์ด ์๋ ํฌ์คํธ๊ฐ ์๋์ฒ๋ผ ํ์ ๋ฐ์ค๋ก ๋จ์ ์๋ ๊ฑธ ๋ณผ ์ ์์ต๋๋ค.
์ด๋ฐ ๊ฒฝ์ฐ์ ๋์์ธ ์์ฑ๋๋ ๋จ์ด์ง๊ณ , ์ฌ์ฉ์ ์ ์ฅ์์๋ ํด๋ฆญ ์ ๋ ํจ๊ณผ๊ฐ ์ค์ด๋ค๊ฒ ๋ฉ๋๋ค.

ํ์ง๋ง ๋งค๋ฒ ์ด๋ฏธ์ง๊ฐ ์๋ ๊ธ๋ง๋ค ์ธ๋ค์ผ ์จ๊ธฐ๊ธฐ ์ฒ๋ฆฌ๋ฅผ ์๋์ผ๋ก ํ๊ธฐ์ ๋ฒ๊ฑฐ๋กญ์ต๋๋ค.
์ด๋ฅผ ์ํด ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ด๋ฏธ์ง๊ฐ ์๋ ํญ๋ชฉ์ ์๋ ๊ฐ์งํ์ฌ ์ธ๋ค์ผ์ ์จ๊ธฐ๊ณ , ๊ทธ๋งํผ์ ๊ณต๊ฐ์ ๊ธ ์์ฝ(excerpt)์ผ๋ก ์ฑ์ฐ๋ ๋ฐฉ์์ด ๋งค์ฐ ํจ๊ณผ์ ์
๋๋ค.

๊ธ ์์ฝ ํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋ JavaScript ์คํฌ๋ฆฝํธ
์๋ ์คํฌ๋ฆฝํธ๋ฅผ ํฐ์คํ ๋ฆฌ ๋ธ๋ก๊ทธ์ ์ฝ์ ํด ์ฃผ์ธ์. ์ด ์ฝ๋๋ ์ด๋ฏธ์ง ์ ๋ฌด๋ฅผ ํ๋จํ์ฌ ๋ ์ด์์์ ๋์ ์ผ๋ก ์ ๋ฆฌํ๊ณ ๊ธ ์์ฝ์ ํ์ฅํฉ๋๋ค.
์ฝ์
์์น:
ํฐ์คํ ๋ฆฌ ๊ด๋ฆฌ์ ์คํจ ํธ์ง HTML ํธ์ง์์ /body ํ๊ทธ ๋ฐ๋ก ์์ชฝ์ ๋ถ์ฌ ๋ฃ๊ธฐ
์๋ ์ฝ๋๋ ํฐ์คํ ๋ฆฌ Book Club ์์์ ๋๋ค. ์คํจ์ ๋ฐ๋ผ ์ ํ์๋ฅผ (.thum, .post-item ๋ฑ) ๋ณ๊ฒฝํด ์ฃผ์๊ณ , ๊ธ ๋์ด๋ ์ด๋ฏธ์ง ํฌ๊ธฐ์ ๋ง๊ฒ ์์ ํด ์ฃผ์ธ์.
script
document.addEventListener('DOMContentLoaded', () = {
const processElement = el = {
const thum = el.querySelector('.thum, span.thum');
const figure = el.querySelector('figure');
const hasImgInThum = thum?.querySelector('img');
const hasImgInFigure = figure?.querySelector('img');
const hasImage = hasImgInThum || hasImgInFigure;
if (!hasImage) {
if (thum) thum.style.display = 'none';
if (figure) figure.style.display = 'none';
el.classList.add('no-img');
const excerpt = el.querySelector('.excerpt');
if (excerpt) {
excerpt.style.webkitLineClamp = '9'; // CSS๋ก ์ค์ ๋ ์ค ์ ํ์ ํ์ด ์์ฝ๊ธ์ ํ๋
excerpt.style.maxHeight = 'none'; // ์ต๋ ๋์ด ์ ํ ํด์
}
} else {
el.classList.remove('no-img');
}
};
document.querySelectorAll('.post-item, li').forEach(processElement);
});
/script
.post-item๋๋liํญ๋ชฉ ๋ด์์ ์ธ๋ค์ผspan class="thum",div class="thum",figure๋ฑ ๋ด๋ถ์imgํ๊ทธ๊ฐ ์๋ ๊ฒฝ์ฐ ์๋์ผ๋ก ์จ๊น ์ฒ๋ฆฌํ์ฌ ๋น ์ธ๋ค์ผ ์จ๊ธฐ๊ธฐ ๊ธฐ๋ฅ์ ์ํํฉ๋๋ค.- ์ด๋ฏธ์ง๊ฐ ์๋ ๊ฒฝ์ฐ, ๋์ ๊ธ ์์ฝ(excerpt)์ ์ค ์๋ฅผ ๋๋ ค์ ๋ ์ด์์์ ์ฑ์์ผ๋ก์จ ์ฝํ ์ธ ๊ฐ๋ ์ฑ์ ๋์ ๋๋ค.
- ์ด๋ฏธ์ง๊ฐ ์๋ ๊ฒฝ์ฐ์ ๊ธฐ์กด ๋์์ธ ๊ทธ๋๋ก ์ ์ง๋ฉ๋๋ค.
- ์ ์ฉ ๋์: ํฐ์คํ ๋ฆฌ ๋ฉ์ธํ๋ฉด, ์นดํ ๊ณ ๋ฆฌ ๋ฆฌ์คํธ, ๊ด๋ จ๊ธ ์์ญ ๋ฑ ๋ธ๋ก๊ทธ ๋ ์ด์์ ์๋ ์ ๋ฆฌ๊ฐ ํ์ํ ๋ชจ๋ ์์ญ
Q1: ๋ธ๋ก๊ทธ ๊ธ์ ์ด๋ฏธ์ง๋ ๊ผญ ๋ฃ์ด์ผ ํ๋์? SEO์ ์ ์ํฅ์ ์ฃผ์ง ์๋์?
์ด๋ฏธ์ง๋ ๊ฒ์ ์์ง ์ต์ ํ(SEO)์ ๊ธ์ ์ ์ํฅ์ ์ค ์ ์์ง๋ง, ๋ชจ๋ ๊ธ์ ๋ฐ๋์ ํ์ํ์ง๋ ์์ต๋๋ค. ์คํ๋ ค ์ฝํ ์ธ ์ฑ๊ฒฉ์ ๋ฐ๋ผ ๋ถํ์ํ ์ด๋ฏธ์ง ์ฝ์ ์ ํ์ด์ง ๋ก๋ฉ ์๋ ์ ํ๋ฅผ ์ผ์ผ์ผ ์ฌ์ฉ์ ๊ฒฝํ(UX)์ ๋จ์ด๋จ๋ฆฌ๊ณ , ์ด๋ ๊ฐ์ ์ ์ผ๋ก SEO์ ๋ถ์ ์ ์ธ ์ํฅ์ ์ค ์ ์์ต๋๋ค. ํ ์คํธ ์ค์ฌ์ ์ฝํ ์ธ ๋ผ๋ฉด ์ด๋ฏธ์ง๋ฅผ ์๋ตํ๊ณ ๋ ์ด์์์ ๊น๋ํ๊ฒ ์ ๋ฆฌํ๋ ๊ฒ์ด ๋ ํจ๊ณผ์ ์ผ ์ ์์ต๋๋ค.
Q2: ์ด๋ฏธ์ง๊ฐ ์์ ๋ ๋น ์ธ๋ค์ผ ๊ณต๊ฐ ๋๋ฌธ์ ๋ฐ์ํ๋ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ ๋ ๋ฌด์์ด๋ฉฐ, ์ ํด๊ฒฐํด์ผ ํ๋์?
๋ฉ์ธ ํ์ด์ง๋ ์นดํ ๊ณ ๋ฆฌ ๋ฆฌ์คํธ ๋ฑ์์ ์ด๋ฏธ์ง๊ฐ ์๋ ๊ธ์ ์ธ๋ค์ผ ์๋ฆฌ์ ๋น ๊ณต๊ฐ(์: ํ์ ๋ฐ์ค)์ด ๋จ์ ๋์์ธ์ด ๊นจ์ง๊ณ ๋ ์ด์์์ด ํํธ๋ฌ์ ธ ์ฌ์ฉ์ ๊ฒฝํ์ด ๋จ์ด์ง๋๋ค. ์ด '๋น ๊ณต๊ฐ ๋ฌธ์ '๋ ๋ฐฉ๋ฌธ์๊ฐ ์ฌ์ดํธ๋ฅผ ์ ๋ขฐํ์ง ๋ชปํ๊ฒ ๋ง๋ค๊ณ , ์ฒด๋ฅ ์๊ฐ ๊ฐ์์ ๊ฐ์ UX ์ ์ํฅ์ ํตํด ๊ฒ์ ๋ญํน ํ๋ฝ์ผ๋ก ์ด์ด์ง ์ ์์ผ๋ฏ๋ก, JavaScript ์คํฌ๋ฆฝํธ๋ก ๋ธ๋ก๊ทธ ๋ ์ด์์์ ์๋ ์ ๋ฆฌํ์ฌ ํด๊ฒฐํด์ผ ํฉ๋๋ค.
Q3: ๋น ์ธ๋ค์ผ ๊ณต๊ฐ์ ์จ๊ธฐ๊ณ ๊ธ ์์ฝ(excerpt)์ ํ๋ํ๋ ์คํฌ๋ฆฝํธ๋ ๋ชจ๋ ๋ธ๋ก๊ทธ ํ๋ซํผ์ ์ ์ฉ ๊ฐ๋ฅํ๊ฐ์?
์คํฌ๋ฆฝํธ์ ๊ธฐ๋ณธ ๋
ผ๋ฆฌ(์ด๋ฏธ์ง ์ ๋ฌด ํ๋จ ํ ์์ ์จ๊น/ํ๋)๋ ๋ชจ๋ ์น์ฌ์ดํธ์ ์ ์ฉ ๊ฐ๋ฅํฉ๋๋ค. ํ์ง๋ง ์ฝ๋ ๋ด๋ถ์ ์ฌ์ฉ๋ ์ ํ์(.post-item, .thum, .excerpt ๋ฑ)๋ ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ๋ ๋ธ๋ก๊ทธ ์คํจ(ํ
ํ๋ฆฟ)์ด๋ ํ๋ซํผ(ํฐ์คํ ๋ฆฌ, ์๋ํ๋ ์ค ๋ฑ)์ HTML ๊ตฌ์กฐ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ํด๋น ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ์์ ์ ๋ธ๋ก๊ทธ HTML ๊ตฌ์กฐ์ ๋ง๊ฒ ์ ํ์๋ฅผ ์์ ํ๋ ์์
์ด ํ์์ ์
๋๋ค.