Video.mp4
- ํ๋ก์ ํธ ์๊ฐ
- ๊ธฐ์ ์คํ
- ๊ธฐ๋ฅ ์ค๋ช
- ํฌ๋ก์ค๋ธ๋ผ์ฐ์ง ๊ฒ์ฌ
- K-PopDemonHunters ๋ณด๋ฌ๊ฐ๊ธฐ
K-Pop ๋ฐ๋ชฌ ํํฐ์ค ํฌ ์ฌ์ดํธ ํ์์ผ๋ก ์ ์๋ ๊ณ ์ฑ๋ฅ ๋ฐ์ํ ์น ํฌํธํด๋ฆฌ์ค์ ๋๋ค.
์์ JavaScript(ES6+)์ ์ต์ํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฅผ ์ฌ์ฉํ๋ฉฐ ๊ทธ์ธ ์ ๋๋งค์ด์ ํจ๊ณผ๋ฅผ ์ง์ CSS์ ์ฌ์ฉํ์ฌ ์ ์ํ์์ต๋๋ค.
๋ชจ๋ ๋๋ฐ์ด์ค์์ ์ต์ ์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๊ณ Lighthouse 97์ ์ด์์ด๋ผ๋ ์ ์๋ฅผ ๋ฌ์ฑํ์์ต๋๋ค.
jQuery ์์ด ์์ JavaScript์ Media Query, Flexbox/Grid๋ฅผ ํ์ฉํ์ฌ
PC, ํ๋ธ๋ฆฟ, ๋ชจ๋ฐ์ผ 3๋จ๊ณ ๋ ์ด์์ ์ ํ์ ๊ตฌํํ์ต๋๋ค.
๋ํ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ์์กด๋๋ฅผ ์ต๋ํ ๋ฎ์ถ๊ณ ์ฝ๋์ ๊ฒฝ๋ํ๋ฅผ ์๋ํ์์ต๋๋ค.
์ด 144๊ฐ์ ๋๊ท๋ชจ ๋ฏธ๋์ด ์์
ํ๊ฒฝ์์๋ ๋น ๋ฅธ ์ด๊ธฐ ๋ก๋ฉ ์๋๋ฅผ ํ๋ณดํ๊ธฐ ์ํด,
Intersection Observer API ๋ฐ ์ฐจ์ธ๋ ์ด๋ฏธ์ง ํฌ๋งท์ธ AVIF๋ฅผ ์ ๊ทน ํ์ฉํ์ฌ ์ด๋ฏธ์ง ํ์ผ ํฌ๊ธฐ๋ฅผ ์ค์ฌ ์ฑ๋ฅ์ ์ต์ ํ์ ์ ๊ฒฝ์ป์ต๋๋ค.
์ธ๋ถ JSON ํ์ผ์ ์ ์ฅ๋ ์บ๋ฆญํฐ ๊ทธ๋ฃน ๋ฐ ์์ธ ๋ฐ์ดํฐ๋ฅผ fetch API๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋๊ธฐ์ ์ผ๋ก ๋ถ๋ฌ์ต๋๋ค.
์ฌ์ฉ์๊ฐ ์๋จ ํญ ๋ฉ๋ด(HUNTR/X, SAJA BOYS ๋ฑ)๋ฅผ ํด๋ฆญํ๋ฉด, ํด๋น ๊ทธ๋ฃน์ ๋ฐ์ดํฐ๋ง ํํฐ๋งํ์ฌ
์บ๋ฆญํฐ ์นด๋,์คํ ๋ฆฌ ์น์
๋ฑ ๋ชจ๋ ๊ด๋ จ ์ฝํ
์ธ ๋ฅผ ๋์ ์ผ๋ก ์์ฑํ๊ณ ๋ ๋๋งํฉ๋๋ค.
W3C ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ํต๊ณผํ๊ณ ์๋งจํฑ ๋งํฌ์ ์์น์ ์ฒ ์ ํ ์ค์ํ์ฌ ๊ฐ๋ฐ์ ๊ธฐ๋ณธ์ ์ง์ผฐ์ต๋๋ค.
์คํ ๋ฆฌ๋ณด๋ PDF ๋ค์ด๋ก๋
PC-Tablet-Mobile์ 3๋จ๊ณ ํด์๋ ๋ณํ์ ์๋ฒฝํ๊ฒ ๋์ํ๊ธฐ ์ํด,
๊ฐ ์น์
(About, Characters, News, Gallery)์ ๋ณต์กํ ๊ตฌ์กฐ๋ฅผ
CSS Grid Layout (grid-template-areas) ์ ํ์ฉํ์ฌ ์๋งจํฑํ๊ณ ์ ์ง๋ณด์ํ๊ธฐ ์ฝ๊ฒ ์ค๊ณํ์ต๋๋ค.
์ปดํฌ๋ํธ ๋ด๋ถ ์ ๋ ฌ์๋ Flexbox๋ฅผ ์ ๊ทน ํ์ฉํ์ฌ ์ ์ฐ์ฑ์ ๋์์ต๋๋ค.
์ด 144๊ฐ์ ์ด๋ฏธ์ง์ ๋น๋์ค ์์
ํ๊ฒฝ์์๋ ๋น ๋ฅธ ์ด๊ธฐ ๋ก๋ฉ ์๋๋ฅผ ํ๋ณดํ๊ธฐ ์ํด,
๊ฐ ์น์
๋ง๋ค Intersection Observer API๋ฅผ ์ ๊ทน์ ์ผ๋ก ํ์ฉํ์ต๋๋ค.
๊ฐ ์น์
์ ์ฝํ
์ธ ๊ฐ ์ค์ ๋ก ํ๋ฉด์ ๋ณด์ผ ๋๋ง ์ ๋๋ฉ์ด์
ํจ๊ณผ๊ฐ ๋ถ๋๋ฝ๊ฒ ๋ํ๋๋๋ก ๊ตฌํํ์ฌ,
๋ถํ์ํ ์ด๊ธฐ ๋ ๋๋ง ๋ถํ๋ฅผ ํ๊ธฐ์ ์ผ๋ก ์ค์์ต๋๋ค. ๋ํ, ๊ฐ ์์์ ์์ฐจ์ ์ธ ์ง์ฐ ์๊ฐ(transition-delay) ์
์ ์ฉํ์ฌ ์๊ฐ์ ์ธ ์ฆ๊ฑฐ์์ ๋ํ์ต๋๋ค. ์ด๋ฏธ์ง์๋ loading="lazy" ์์ฑ์ ์ฌ์ฉํ์ฌ ์ถ๊ฐ์ ์ธ ์ฑ๋ฅ ๊ฐ์ ์ ๋๋ชจํ์ต๋๋ค.
JavaScript ์์ด **CSS Animation (@keyframes)**๊ณผ clip-path ์์ฑ์ ์ฐฝ์์ ์ผ๋ก ํ์ฉํ์ฌ,
Characters ๋ฐ News ์น์
์ํ๋จ์ '์ฐจ์์ ๊ท ์ด'์ฒ๋ผ ๋ณด์ด๋ ๋
ํนํ ๋์ ๊ฒฝ๊ณ์ ํจ๊ณผ๋ฅผ ๊ตฌํํ์ต๋๋ค.
๋ํ, CSS transition์ ํ์ฉํ์ฌ ์ด๋ฏธ์ง ํธ๋ฒ ์ ํ๋/๋ฐ๊ธฐ ๋ณํ, ์ค๋ฒ๋ ์ด ํจ๊ณผ ๋ฑ ๋ค์ํ ์ธํฐ๋์
์ ์ถ๊ฐํ์ต๋๋ค.
-
Trailer ์น์ : ํ๋ฉด ๋๋น๋ฅผ ๊ฐ์งํ์ฌ PC์์๋ ์ปค์คํ ์ธ๋ค์ผ ๊ทธ๋ฆฌ๋ ๋ ์ด์์์,
๋ชจ๋ฐ์ผ/ํ๋ธ๋ฆฟ์์๋ Swiper ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ธฐ๋ฐ์ ์บ๋ฌ์ UI๋ฅผ ๋์ ์ผ๋ก ์ ํํ์ฌ ๋ณด์ฌ์ค๋๋ค.
YouTube ์์์ ํด๋ฆญ ์ ๋์ ์ผ๋ก iframe์ ์์ฑํ์ฌ ๋ชจ๋ฌ ํ์ ์ผ๋ก ์ฌ์ํฉ๋๋ค. -
๋ฐฐ๊ฒฝ ์ฒ๋ฆฌ: ํ๋ฉด ๋๋น์ ๋ฐ๋ผ PC,์ผ๋ฐํ ๋ธ๋ฆฟ์์๋ ๋ฐฐ๊ฒฝ ๋น๋์ค๋ฅผ,
์ํํ ๋ธ๋ฆฟ, ๋ชจ๋ฐ์ผ์์๋ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง๋ฅผ ๋ณด์ฌ์ฃผ๋๋ก JavaScript๋ก ์ ์ดํ์ฌ
๋ชจ๋ฐ์ผ ํ๊ฒฝ์ ๋ฐ์ดํฐ ์ฌ์ฉ๋๊ณผ ์ฑ๋ฅ์ ์ต์ ํํ์ต๋๋ค. -
JavaScript๋ก ํ๋ฒ๊ฑฐ ๋ฉ๋ด, ์คํฌ๋กค Top ๋ฒํผ, ์ปค์คํ ๋ง์ฐ์ค ์ปค์ ๋ฑ ๋ค์ํ UI ์ปดํฌ๋ํธ๋ฅผ ๊ตฌํํ์ต๋๋ค.
์ด ํ์ด์ง๋ ๋จ์ํ ์ ๋ณด ๋์ด์ ๋์ด, ๋์ ์ธ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ๋ค์ฑ๋ก์ด ์ธํฐ๋์
์ ํตํด ์ฌ์ฉ์์๊ฒ ํ๋ถํ ๊ฒฝํ์ ์ ๊ณตํ๋ ๋ฐ ์ง์คํ์ต๋๋ค.
์ธ๋ถ JSON ํ์ผ์ ์ ์ฅ๋ ์บ๋ฆญํฐ ๊ทธ๋ฃน ๋ฐ ์์ธ ๋ฐ์ดํฐ๋ฅผ fetch API๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋๊ธฐ์ ์ผ๋ก ๋ถ๋ฌ์ต๋๋ค.
์ฌ์ฉ์๊ฐ ์๋จ ํญ ๋ฉ๋ด(HUNTR/X, SAJA BOYS ๋ฑ)๋ฅผ ํด๋ฆญํ๋ฉด, ํด๋น ๊ทธ๋ฃน์ ๋ฐ์ดํฐ๋ง ํํฐ๋งํ์ฌ
์บ๋ฆญํฐ ์นด๋,์คํ ๋ฆฌ ์น์
๋ฑ ๋ชจ๋ ๊ด๋ จ ์ฝํ
์ธ ๋ฅผ ๋์ ์ผ๋ก ์์ฑํ๊ณ ๋ ๋๋งํฉ๋๋ค.
๊ฐ ์บ๋ฆญํฐ๋ฅผ ์๊ฐํ๋ ์นด๋ ๋ด๋ถ๋ Grid Layout์ ์ฌ์ฉํ์ฌ
์ด๋ฏธ์ง ์ฌ๋ผ์ด๋, ์ ๋ณด ํ
์คํธ, ์ค๋ช
, ๋น๋์ค, ์ถ๊ฐ ์ด๋ฏธ์ง ๋ฑ ๋ค์ํ ์ปดํฌ๋ํธ๋ฅผ ๋ณต์กํ๋ฉด์๋ ์ ๊ตํ๊ฒ ๋ฐฐ์นํ์ต๋๋ค.
์ด ๊ตฌ์กฐ๋ ํ๋ฉด ํฌ๊ธฐ์ ๋ฐ๋ผ ์ ์ฐํ๊ฒ ๋ณ๊ฒฝ๋์ด ๋ฐ์ํ ๋์์ธ์ ํจ๊ณผ์ ์ผ๋ก ์ง์ํฉ๋๋ค.
๊ฐ ์บ๋ฆญํฐ ์นด๋ ์๋จ์ ์ด๋ฏธ์ง ์์ญ์๋ Swiper.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ์ฉํ์ฌ ์ด๋ฏธ์ง ์ฌ๋ผ์ด๋๋ฅผ ๊ตฌํํ์ต๋๋ค.
์ค์ํ ์ ์, ํญ ํด๋ฆญ์ผ๋ก ์ฝํ
์ธ ๊ฐ ๋์ ์ผ๋ก ์์ฑ๋ ๋๋ง๋ค ์๋ก์ด Swiper ์ธ์คํด์ค๋ฅผ JavaScript๋ก ์ ํํ๊ฒ
์ด๊ธฐํํ๊ณ ์
๋ฐ์ดํธ ํ์ฌ ์ค๋ฅ ์์ด ์๋ํ๋๋ก ๊ตฌํ ํ์ต๋๋ค.



