CSS ์คํฌ๋กค ๋์ ๋ฌผ๋ฆฌ ์์ง์ ํ๊ตฌํ๊ณ , ์ฌ์ค์ ์ธ ์คํฌ๋กค ๋์ญํ์ผ๋ก ์น UX๋ฅผ ํฅ์์ํค๋ ๋ฐฉ๋ฒ๊ณผ ๊ธ๋ก๋ฒ ์น ๊ฐ๋ฐ์ ์ํ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์์๋ด ๋๋ค.
์ฌ์ค์ ์ธ ์คํฌ๋กค ๋์ญํ ๊ตฌํ: CSS ์คํฌ๋กค ๋์ ๋ฌผ๋ฆฌ ์์ง
๊ดํํ๊ณ ๋์์์ด ์งํํ๋ ์น ๊ฐ๋ฐ ํ๊ฒฝ์์ ์ฌ์ฉ์ ๊ฒฝํ(UX)์ ๋ฌด์๋ณด๋ค ์ค์ํฉ๋๋ค. ์๋ฌด๋ฆฌ ๋ฏธ๋ฌํ ์ํธ์์ฉ์ด๋ผ๋ ๋ชจ๋ ์ํธ์์ฉ์ ์น์ฌ์ดํธ์ ํ์ง๊ณผ ๋ฐ์์ฑ์ ๋ํ ์ฌ์ฉ์์ ์ธ์์ ๊ธฐ์ฌํฉ๋๋ค. ์ด๋ฌํ ์ํธ์์ฉ ์ค์์๋ ์คํฌ๋กค๋ง์ ๊ทผ๋ณธ์ ์ด๊ณ ์ด๋์๋ ์กด์ฌํ๋ ์ก์ ์ ๋๋ค. ์์ญ ๋ ๋์ ์คํฌ๋กค๋ง์ ์์ ํ ๊ธฐ๊ณ์ ์ธ ์ผ์ด์์ต๋๋ค. ๋ง์ฐ์ค ํ ํด๋ฆญ ํ ๋ฒ์ ๊ณ ์ ๋ ํฝ์ ์๊ฐ ์ด๋ํ๊ฑฐ๋ ํฐ์น ์ ์ค์ฒ์ ๋ํด ์ ํ์ ์ธ ์์ง์์ ๋ณด์์ต๋๋ค. ๊ธฐ๋ฅ์ ์ด๊ธด ํ์ง๋ง, ํ๋ ๋์งํธ ์ธํฐํ์ด์ค์์ ๊ธฐ๋ํ๊ฒ ๋ ์ ๊ธฐ์ ์ด๊ณ ์์ฐ์ค๋ฌ์ด ๋๋์ด ๋ถ์กฑํ ๊ฒฝ์ฐ๊ฐ ๋ง์์ต๋๋ค.
CSS ์คํฌ๋กค ๋์ ๋ฌผ๋ฆฌ ์์ง์ด๋ผ๋ ๊ฐ๋ ์ ๋์ ํด ๋ด ์๋ค. ์ด๋ ์น ์คํฌ๋กค๋ง์ ์ฌ์ค์ ์ธ ๋ฌผ๋ฆฌํ์ ๋ถ์ด๋ฃ๋ ํจ๋ฌ๋ค์์ ์ ํ์ ๋๋ค. ์ด๋ ๋จ์ํ ๋ถ๋๋ฌ์ด ์คํฌ๋กค๋ง์ ๊ดํ ๊ฒ์ด ์๋๋๋ค. ๊ด์ฑ, ๋ง์ฐฐ, ํ์ฑ ๋ฐ ๊ธฐํ ์ค์ ๋ฌผ๋ฆฌ์ ์์ฑ์ ์๋ฎฌ๋ ์ด์ ํ์ฌ ๋งค๋ ฅ์ ์ด๊ณ ์ง๊ด์ ์ด๋ฉฐ ์ง์ ์ผ๋ก ๋์ ์ธ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ง๋๋ ๊ฒ์ ๋๋ค. ์คํฌ๋กค์ด ๊ฐ์๊ธฐ ๋ฉ์ถ๋ ๊ฒ์ด ์๋๋ผ ๋ถ๋๋ฝ๊ฒ ๊ฐ์ํ๊ฑฐ๋, ์ฝํ ์ธ ์ ๋์ ๋๋ฌํ์ ๋ ๋ง์กฑ์ค๋ฝ๊ณ ๋ฏธ๋ฌํ ๋ฐ์ด์ค ํจ๊ณผ๋ฅผ ์ฃผ๋ ์ฃ์ง๋ฅผ ์์ํด ๋ณด์ธ์. ์ด๋ฌํ ๋์์ค๊ฐ ์ข์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์ง์ ์ผ๋ก ํ๋ฅญํ ์ธํฐํ์ด์ค๋ก ๊ฒฉ์์ํต๋๋ค.
์ด ํฌ๊ด์ ์ธ ๊ฐ์ด๋์์๋ ์ฌ์ค์ ์ธ ์คํฌ๋กค ๋์ญํ์ ๋ณต์กํ ์ธ๊ณ๋ฅผ ์ฌ๋ ์๊ฒ ๋ค๋ฃน๋๋ค. ์ฐ๋ฆฌ๋ ์คํฌ๋กค ๋ฌผ๋ฆฌํ์ด ๋ฌด์์ ์๋ฐํ๋์ง, ์ ํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์์ ์ด ๋์ด๊ฐ๊ณ ์๋์ง, ์ฌ์ฉ ๊ฐ๋ฅํ ๋๊ตฌ์ ๊ธฐ์ (๋ค์ดํฐ๋ธ CSS ๋ฐ ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๋ฐ ๋ชจ๋), ๊ทธ๋ฆฌ๊ณ ์ฑ๋ฅ๊ณผ ์ ์ธ๊ณ ์ฌ์ฉ์๋ฅผ ์ํ ์ ๊ทผ์ฑ์ ์ ์งํ๋ฉด์ ์ด๋ฌํ ์ ๊ตํ ์ํธ์์ฉ์ ๊ตฌํํ๊ธฐ ์ํ ์ค์ํ ๊ณ ๋ ค ์ฌํญ์ ํ๊ตฌํ ๊ฒ์ ๋๋ค.
์คํฌ๋กค ๋ฌผ๋ฆฌํ์ด๋ ๋ฌด์์ด๋ฉฐ ์ ์ค์ํ๊ฐ?
ํต์ฌ์ ์ผ๋ก ์คํฌ๋กค ๋ฌผ๋ฆฌํ์ ์ค์ ๋ฌผ๋ฆฌ ์์น์ ๋์งํธ ์ฝํ ์ธ ์คํฌ๋กค๋ง ํ์์ ์ ์ฉํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์์ ํ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ ์ ํ์ ์ธ ์์ง์ ๋์ , ์คํฌ๋กค ๋ฌผ๋ฆฌํ์ ๋ค์๊ณผ ๊ฐ์ ๊ฐ๋ ์ ๋์ ํฉ๋๋ค:
- ๊ด์ฑ: ์ฌ์ฉ์๊ฐ ์คํฌ๋กค์ ๋ฉ์ถ๋ฉด ์ฝํ ์ธ ๊ฐ ๊ฐ์๊ธฐ ๋ฉ์ถ์ง ์๊ณ ์งง์ ์๊ฐ ๋์ ๊ณ์ ์์ง์ด๋ฉฐ ์ ์ฐจ ๊ฐ์ํฉ๋๋ค. ์ด๋ ๋ฌผ๋ฆฌ ์ธ๊ณ์์ ๋ฌผ์ฒด์ ์ด๋๋๊ณผ ๋งค์ฐ ์ ์ฌํฉ๋๋ค.
- ๋ง์ฐฐ: ์ด ํ์ ์์ง์์ ๋ฐํ์ฌ ์์ฉํ๋ฉฐ, ์คํฌ๋กค๋๋ ์ฝํ ์ธ ๊ฐ ๋๋ ค์ง๊ณ ๊ฒฐ๊ตญ ๋ฉ์ถ๊ฒ ํฉ๋๋ค. ๋ง์ฐฐ์ ์์ ์กฐ์ ํ์ฌ ์คํฌ๋กค์ด '๋ฌด๊ฒ๊ฒ' ๋๋ '๊ฐ๋ณ๊ฒ' ๋๊ปด์ง๋๋ก ํ ์ ์์ต๋๋ค.
- ํ์ฑ/์คํ๋ง: ์ฌ์ฉ์๊ฐ ์ฝํ ์ธ ์ ์์์ด๋ ๋์ ์ง๋ ์คํฌ๋กคํ๋ ค๊ณ ํ ๋, ๋ฑ๋ฑํ๊ฒ ๋ฉ์ถ๋ ๋์ ์ฝํ ์ธ ๊ฐ ์ฝ๊ฐ '์ค๋ฒ์ํธ'ํ๋ค๊ฐ ์ ์๋ฆฌ๋ก ๋๋์์ฌ ์ ์์ต๋๋ค. ์ด ์๊ฐ์ ํผ๋๋ฐฑ์ ์คํฌ๋กค ๊ฐ๋ฅ ์์ญ์ ๊ฒฝ๊ณ๋ฅผ ์ฐ์ํ๊ฒ ์๋ ค์ค๋๋ค.
- ์๋: ์ฌ์ฉ์๊ฐ ์คํฌ๋กค์ ์์ํ๋ ์๋๋ ๊ด์ฑ ์คํฌ๋กค์ ๊ฑฐ๋ฆฌ์ ์ง์ ์๊ฐ์ ์ง์ ์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ๋ ๋น ๋ฅธ ํ๋ฆญ(flick)์ ๋ ๊ธธ๊ณ ๋๋ ทํ ์คํฌ๋กค์ ์ด๋ํฉ๋๋ค.
์ ์ด ์์ค์ ๋ํ ์ผ์ด ์ค์ํ ๊น์? ์ฐ๋ฆฌ์ ๋๋ ๋ฌผ๋ฆฌ์ ํ๋์ ์ดํดํ๊ณ ์์ธกํ๋๋ก ์ค๊ณ๋์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋์งํธ ์ธํฐํ์ด์ค๊ฐ ์ด๋ฌํ ํ๋์ ๋ชจ๋ฐฉํ ๋, ๊ทธ๊ฒ๋ค์ ๋ ์ง๊ด์ ์ด๊ณ ์์ธก ๊ฐ๋ฅํ๋ฉฐ ๊ถ๊ทน์ ์ผ๋ก ์ํธ์์ฉํ๊ธฐ์ ๋ ์ฆ๊ฑฐ์์ง๋๋ค. ์ด๋ ๊ณ ์ ๋ฐ ๋ง์ฐ์ค๋ถํฐ ๋ฉํฐํฐ์น ํธ๋ํจ๋๋ ์ค๋งํธํฐ ํ๋ฉด์ ์๊ฐ๋ฝ์ ์ด๋ฅด๊ธฐ๊น์ง ๋ค์ํ ์ฌ์ฉ์ ๊ทธ๋ฃน๊ณผ ์ฅ์น ์ ๋ฐ์ ๊ฑธ์ณ ์ธ์ง ๋ถํ๋ฅผ ์ค์ด๊ณ ๋ง์กฑ๋๋ฅผ ๋์ด๋, ๋ณด๋ค ์ ๋์ ์ด๊ณ ๋งค๋ ฅ์ ์ธ ์ฌ์ฉ์ ๊ฒฝํ์ผ๋ก ์ง์ ์ด์ด์ง๋๋ค.
์น ์คํฌ๋กค๋ง์ ์งํ: ์ ์ ์ธ ๊ฒ์์ ๋์ ์ธ ๊ฒ์ผ๋ก
์น ์คํฌ๋กค๋ง์ ์ฌ์ ์ ์ธํฐ๋ท ์์ฒด์ ๋ ๋์ ์งํ, ์ฆ ์ ์ ๋ฌธ์์์ ํ๋ถํ๊ณ ์ํธ์์ฉ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก์ ๋ณํ๋ฅผ ๋ฐ์ํฉ๋๋ค. ์ด๊ธฐ์ ์คํฌ๋กค๋ง์ ์ฃผ๋ก ์คํฌ๋กค๋ฐ์ ์ํด ๊ตฌ๋๋๋ ๊ธฐ๋ณธ์ ์ธ ๋ธ๋ผ์ฐ์ ๊ธฐ๋ฅ์ด์์ต๋๋ค. ์ฌ์ฉ์ ์ ๋ ฅ์ ๋ฏธ๋ฌํ ๋์ ์์ด ํฝ์ ์ด๋์ผ๋ก ์ง์ ๋ณํ๋์์ต๋๋ค.
์ด์ฐฝ๊ธฐ: ๊ธฐ๋ณธ ์คํฌ๋กค๋ฐ์ ์๋ ์ ์ด
์น์ ์ด์ฐฝ๊ธฐ์ ์คํฌ๋กค๋ง์ ์ค์ฉ์ ์ด์์ต๋๋ค. ๋ทฐํฌํธ๋ฅผ ์ด๊ณผํ๋ ์ฝํ ์ธ ๋ ๋จ์ํ ์คํฌ๋กค๋ฐ๋ฅผ ํ์ํ๊ณ , ์ฌ์ฉ์๋ ์ด๋ฅผ ์๋์ผ๋ก ๋๋๊ทธํ๊ฑฐ๋ ํ์ดํ ํค๋ฅผ ์ฌ์ฉํ์ต๋๋ค. '๋ถ๋๋ฌ์'์ด๋ '๋ฌผ๋ฆฌํ'์ด๋ผ๋ ๊ฐ๋ ์ ์์์ต๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ ๋ถ์: ๋ง์ถคํ ์คํฌ๋กค๋ง ๊ฒฝํ
์น ๊ธฐ์ ์ด ์ฑ์ํจ์ ๋ฐ๋ผ ๊ฐ๋ฐ์๋ค์ ๋ค์ดํฐ๋ธ ๋ธ๋ผ์ฐ์ ์คํฌ๋กค๋ง์ ์ฌ์ ์ํ๊ธฐ ์ํด ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์คํํ๊ธฐ ์์ํ์ต๋๋ค. ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ ์ ์ด๋ฅผ ์ ๊ณตํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ฑ์ฅํ์ฌ ํจ๋ด๋์ค ์คํฌ๋กค๋ง, ๋ง์ถคํ ์คํฌ๋กค ํ์๊ธฐ, ์ด๋ณด์ ์ธ ๋ถ๋๋ฌ์ด ์คํฌ๋กค๋ง๊ณผ ๊ฐ์ ํจ๊ณผ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ์ต๋๋ค. ๋น์๋ก์๋ ํ์ ์ ์ด์์ง๋ง, ์ด๋ ์ข ์ข ๋ณต์กํ DOM ์กฐ์์ ์๋ฐํ์ผ๋ฉฐ ์๋ฒฝํ๊ฒ ์ต์ ํ๋์ง ์์ผ๋ฉด ๋ถ์์ฐ์ค๋ฝ๊ฑฐ๋ ๋ฒ๋ฒ ๊ฑฐ๋ฆฌ๋ ๋๋์ ์ค ์ ์์์ต๋๋ค.
๋ค์ดํฐ๋ธ ๋ถ๋๋ฌ์ด ์คํฌ๋กค๋ง: ๋ ๋์ UX๋ฅผ ํฅํ ํ ๊ฑธ์
๊ฐ์ ๋ ์คํฌ๋กค ๊ฒฝํ์ ๋ํ ์๊ตฌ๊ฐ ์ฆ๊ฐํจ์ ๋ฐ๋ผ ๋ธ๋ผ์ฐ์ ๋ ๋ถ๋๋ฌ์ด ์คํฌ๋กค๋ง์ ๋ํ ๋ค์ดํฐ๋ธ ์ง์์ ๋์
ํ์ผ๋ฉฐ, ์ด๋ ์ข
์ข
scroll-behavior: smooth;
์ ๊ฐ์ ๊ฐ๋จํ CSS ์์ฑ์ผ๋ก ํ์ฑํ๋์์ต๋๋ค. ์ด๋ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ ์คํฌ๋กค(์: ์ต์ปค ๋งํฌ ํด๋ฆญ)์ ๋ํด ๋ธ๋ผ์ฐ์ ์ ์ต์ ํ๋ ์ ๋๋ฉ์ด์
์ ์ ๊ณตํ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ ์ฃผ๋ก ์คํฌ๋กค ๋์์ ์ ๋๋ฉ์ด์
์ ๋ค๋ฃจ์์ ๋ฟ, ์ฌ์ฉ์ ์์ ์คํฌ๋กค(์: ํ๋ฆญ ์ ์ค์ฒ ํ์ ๊ด์ฑ)์ ๋์ญํ์ ๋ค๋ฃจ์ง ์์์ต๋๋ค.
ํ๋: ๋ฌผ๋ฆฌ ๊ธฐ๋ฐ ์ํธ์์ฉ์ ๋ํ ์๊ตฌ
ํฐ์น ์ฅ์น, ๊ณ ์ฃผ์ฌ์จ ๋์คํ๋ ์ด, ๊ฐ๋ ฅํ ํ๋ก์ธ์์ ํ์ฐ์ผ๋ก ์ฌ์ฉ์ ๊ธฐ๋์น๋ ์น์์์ต๋๋ค. ์ฌ์ฉ์๋ค์ ์ด์ ์ค๋งํธํฐ๊ณผ ํ๋ธ๋ฆฟ์์ ๊ณ ๋๋ก ์ ์ ๋ ๋ฌผ๋ฆฌ ๊ธฐ๋ฐ ์คํฌ๋กค๋ง์ ํน์ง์ผ๋ก ํ๋ ์ฑ๊ณผ ์ํธ์์ฉํฉ๋๋ค. ๊ทธ๋ค์ด ์น ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ์ ํํ ๋, ๋น์ทํ ์์ค์ ์ธ๋ จ๋จ๊ณผ ๋ฐ์์ฑ์ ๊ธฐ๋ํฉ๋๋ค. ์ด๋ฌํ ๊ธฐ๋๋ ์น ๊ฐ๋ฐ ์ปค๋ฎค๋ํฐ๊ฐ CSS์ ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฐ์ ์ ๋ชจ๋ ํ์ฉํ์ฌ ์ด๋ฌํ ํ๋ถํ๊ณ ์ฌ์ค์ ์ธ ์คํฌ๋กค ๋์ญํ์ ๋ธ๋ผ์ฐ์ ์ ์ง์ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ๋ชจ์ํ๋๋ก ์ด๋์์ต๋๋ค.
์คํฌ๋กค ๋ฌผ๋ฆฌ ์์ง์ ํต์ฌ ์๋ฆฌ
์ฌ์ค์ ์ธ ์คํฌ๋กค ๋์ญํ์ด ์ด๋ป๊ฒ ๋ฌ์ฑ๋๋์ง ์ง์ ์ผ๋ก ์ดํดํ๋ ค๋ฉด, ๊ทธ ๊ธฐ๋ฐ์ด ๋๋ ๊ทผ๋ณธ์ ์ธ ๋ฌผ๋ฆฌ ์์น์ ํ์ ํ๋ ๊ฒ์ด ํ์์ ์ ๋๋ค. ์ด๊ฒ๋ค์ ๋จ์ง ์ถ์์ ์ธ ๊ฐ๋ ์ด ์๋๋ผ, ์ฌ์ฉ์ ์ ๋ ฅ์ ๋ฐ์ํ์ฌ ์์๊ฐ ์ด๋ป๊ฒ ์์ง์ด๊ณ ๋ฐ์ํ๋์ง๋ฅผ ๊ฒฐ์ ํ๋ ์ํ์ ๋ชจ๋ธ์ ๋๋ค.
1. ๊ด์ฑ: ์ด๋ ์ํ๋ฅผ ์ ์งํ๋ ค๋ ๊ฒฝํฅ
๋ฌผ๋ฆฌํ์์ ๊ด์ฑ์ ์๋, ๋ฐฉํฅ ๋๋ ์ ์ง ์ํ์ ๋ณํ๋ฅผ ํฌํจํ์ฌ ์ด๋ ์ํ์ ๋ณํ์ ๋ํ ๋ชจ๋ ๋ฌผ๋ฆฌ์ ๊ฐ์ฒด์ ์ ํญ์ ๋๋ค. ์คํฌ๋กค ๋ฌผ๋ฆฌํ์์ ์ด๋ ์ฌ์ฉ์๊ฐ ์๊ฐ๋ฝ์ ๋ผ๊ฑฐ๋ ๋ง์ฐ์ค ํ ์ ๋ฉ์ถ ํ์๋ ์ฝํ ์ธ ๊ฐ ์ผ์ ๊ธฐ๊ฐ ๊ณ์ ์คํฌ๋กค๋๋ ๊ฒ์ผ๋ก ๋ณํ๋ฉ๋๋ค. ์ฌ์ฉ์ ์ ๋ ฅ์ ์ด๊ธฐ ์๋๊ฐ ์ด ๊ด์ฑ ์คํฌ๋กค์ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
2. ๋ง์ฐฐ: ์ด๋์ ์ ํญํ๋ ํ
๋ง์ฐฐ์ ์๋ก ๋ฏธ๋๋ฌ์ง๋ ๊ณ ์ฒด ํ๋ฉด, ์ ์ฒด ์ธต, ์ฌ๋ฃ ์์์ ์๋์ ์ธ ์์ง์์ ์ ํญํ๋ ํ์ ๋๋ค. ์คํฌ๋กค ์์ง์์ ๋ง์ฐฐ์ ๊ฐ์๋ ฅ์ผ๋ก ์์ฉํ์ฌ ๊ด์ฑ ์คํฌ๋กค์ ์ ์ฐจ์ ์ผ๋ก ๋ฉ์ถ๊ฒ ํฉ๋๋ค. ๋ง์ฐฐ ๊ฐ์ด ๋์ผ๋ฉด ์ฝํ ์ธ ๊ฐ ๋ ๋นจ๋ฆฌ ๋ฉ์ถ๊ณ , ๊ฐ์ด ๋ฎ์ผ๋ฉด ๋ ๊ธธ๊ณ ๋ถ๋๋ฌ์ด ํ์ฃผ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ด ๋งค๊ฐ๋ณ์๋ ์คํฌ๋กค์ '๋๋'์ ์กฐ์ ํ๋ ๋ฐ ์ค์ํฉ๋๋ค.
3. ์คํ๋ง๊ณผ ํ์ฑ: ๊ฒฝ๊ณ์์ ํ๊ฒจ ๋์ค๊ธฐ
์คํ๋ง์ ๊ธฐ๊ณ์ ์๋์ง๋ฅผ ์ ์ฅํ๋ ํ์ฑ ๊ฐ์ฒด์ ๋๋ค. ์์ถ๋๊ฑฐ๋ ๋์ด๋ ๋, ๋ณ์์ ๋น๋กํ๋ ํ์ ๋ฐํํฉ๋๋ค. ์คํฌ๋กค ๋์ญํ์์ ์คํ๋ง์ ์ฌ์ฉ์๊ฐ ์ฝํ ์ธ ๊ฒฝ๊ณ๋ฅผ ๋์ด ์คํฌ๋กคํ๋ ค๊ณ ํ ๋ '๋ฐ์ด์ค' ํจ๊ณผ๋ฅผ ์๋ฎฌ๋ ์ด์ ํฉ๋๋ค. ์ฝํ ์ธ ๋ ํ๊ณ๋ฅผ ์ฝ๊ฐ ๋์ด ๋์ด๋ฌ๋ค๊ฐ '์คํ๋ง'์ด ๋ค์ ์ ์๋ฆฌ๋ก ๋น๊น๋๋ค. ์ด ํจ๊ณผ๋ ์ฌ์ฉ์๊ฐ ๊ฐ์์ค๋ฌ์ด ์ ์ง ์์ด ์คํฌ๋กค ๊ฐ๋ฅ ์์ญ์ ๋์ ๋๋ฌํ์์ ๋ช ํํ ์๊ฐ์ ํผ๋๋ฐฑ์ผ๋ก ์ ๊ณตํฉ๋๋ค.
์คํ๋ง์ ์ฃผ์ ์์ฑ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ๊ฐ์ฑ(Stiffness): ์คํ๋ง์ด ๋ณํ์ ์ ํญํ๋ ์ ๋. ๋ ๊ฐํ ์คํ๋ง์ ๋ ๋นจ๋ฆฌ ๋๋์์ต๋๋ค.
- ๊ฐ์ (Damping): ์คํ๋ง์ ์ง๋์ด ์ผ๋ง๋ ๋นจ๋ฆฌ ์๋ฉธ๋๋์ง. ๊ฐ์ ๊ฐ ๋์ผ๋ฉด ๋ฐ์ด์ค๊ฐ ์ ๊ณ , ๊ฐ์ ๊ฐ ๋ฎ์ผ๋ฉด ์์ ๋๊ธฐ ์ ์ ๋ ๋ง์ ์ง๋์ด ์์ต๋๋ค.
4. ์๋: ์ด๋์ ์๋ ฅ๊ณผ ๋ฐฉํฅ
์๋๋ ๋ฌผ์ฒด์ ์์น ๋ณํ์จ๊ณผ ๋ฐฉํฅ์ ์ธก์ ํฉ๋๋ค. ์คํฌ๋กค ๋ฌผ๋ฆฌํ์์ ์ฌ์ฉ์์ ์ด๊ธฐ ์คํฌ๋กค ์ ์ค์ฒ ์๋๋ฅผ ํฌ์ฐฉํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ค์ํฉ๋๋ค. ์ด ์๋ ๋ฒกํฐ(์๋ ฅ๊ณผ ๋ฐฉํฅ ๋ชจ๋)๋ ๊ด์ฑ ์คํฌ๋กค๋ง์ ์ด๊ธฐํํ๋ ๋ฐ ์ฌ์ฉ๋๋ฉฐ, ๋ง์ฐฐ์ด ๋ฉ์ถ๊ฒ ํ๊ธฐ ์ ์ ์ฝํ ์ธ ๊ฐ ์ผ๋ง๋ ๋ฉ๋ฆฌ, ์ผ๋ง๋ ๋นจ๋ฆฌ ๊ณ์ ์์ง์ผ์ง์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
5. ๊ฐ์ : ์ง๋์ ์ง์ ์ํค๊ธฐ
์คํ๋ง๊ณผ ๊ด๋ จ์ด ์์ง๋ง, ๊ฐ์ ๋ ํนํ ์ง๋์ด๋ ๋จ๋ฆผ์ ๊ฐ์ ๋ฅผ ์๋ฏธํฉ๋๋ค. ์ฝํ ์ธ ๊ฐ ๊ฒฝ๊ณ์์ ํ๊ฒจ ๋์ฌ ๋(ํ์ฑ ๋๋ฌธ์), ๊ฐ์ ๋ ์ด๋ฌํ ์ง๋์ด ๋ฌดํ์ ๊ณ์๋์ง ์๋๋ก ๋ณด์ฅํฉ๋๋ค. ์ด๊ธฐ ๋ฐ์ด์ค ํ ์ฝํ ์ธ ๋ฅผ ๋ถ๋๋ฝ๊ณ ํจ์จ์ ์ผ๋ก ์ ์ง์์ผ ๋ถ์์ฐ์ค๋ฝ๊ณ ๋์๋ ํ๋ค๋ฆผ์ ๋ฐฉ์งํฉ๋๋ค. ์ ์ ํ ๊ฐ์ ๋ ์ธ๋ จ๋๊ณ ์ ๋ฌธ์ ์ธ ๋๋์ ์ํด ๋งค์ฐ ์ค์ํฉ๋๋ค.
์ด๋ฌํ ๋ฌผ๋ฆฌ์ ์์ฑ๋ค์ ์ธ์ฌํ๊ฒ ๊ฒฐํฉํ๊ณ ์กฐ์ ํจ์ผ๋ก์จ, ๊ฐ๋ฐ์๋ค์ ์ ๋ ฅ ์ฅ์น๋ ํ๋ฉด ํฌ๊ธฐ์ ๊ด๊ณ์์ด ๋๋๋๋ก ์์ฐ์ค๋ฝ๊ณ , ๋ฐ์์ ์ด๋ฉฐ, ์ด๊ฐ์ ์ธ ์คํฌ๋กค ๊ฒฝํ์ ๋ง๋ค ์ ์์ต๋๋ค.
์ ์ฌ์ค์ ์ธ ์คํฌ๋กค ๋์ญํ์ ๊ตฌํํด์ผ ํ๋๊ฐ? ์ค์ง์ ์ธ ์ด์
๋ฌผ๋ฆฌ ๊ธฐ๋ฐ ์คํฌ๋กค ์์ง์ ๊ตฌํํ๋ ๋ฐ ๋๋ ๋ ธ๋ ฅ์ ์ฌ์ฉ์์ ์ํธ์์ฉ๊ณผ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ์ ๋ฐ์ ์ธ ์ธ์์ ํฌ๊ฒ ํฅ์์ํค๋ ๋ค์ํ ์ค๋๋ ฅ ์๋ ์ด์ ์ผ๋ก ์ ๋นํ๋ฉ๋๋ค.
1. ํฅ์๋ ์ฌ์ฉ์ ๊ฒฝํ(UX) ๋ฐ ์ฐธ์ฌ๋
๊ฐ์ฅ ์ฆ๊ฐ์ ์ด๊ณ ์ฌ์คํ ์ด์ ์ ๊ทน์ ์ผ๋ก ๊ฐ์ ๋ UX์ ๋๋ค. ๋ฌผ๋ฆฌ ๊ธฐ๋ฐ ์คํฌ๋กค๋ง์ ์ง๊ด์ ์ด๊ณ ๋ง์กฑ์ค๋ฝ๊ฒ ๋๊ปด์ง๋๋ค. ๋ฏธ๋ฌํ ๋ฐ๊ณ ๋น๊ธฐ๊ธฐ, ๋ถ๋๋ฌ์ด ๊ฐ์, ํ๋ ฅ ์๋ ๋ฐ์ด์ค๋ ๊ธฐ์กด ์คํฌ๋กค๋ง์๋ ์๋ ์ ์ด๊ฐ๊ณผ ๋ฐ์์ฑ์ ๋ง๋ค์ด๋ ๋๋ค. ์ด๋ ์ฌ์ฉ์ ๋ง์กฑ๋๋ฅผ ๋์ด๊ณ , ์ฐธ์ฌ ์๊ฐ์ ๋๋ฆฌ๋ฉฐ, ๋ ์ฆ๊ฑฐ์ด ๋ธ๋ผ์ฐ์ง ์ฌ์ ์ ์ ๊ณตํฉ๋๋ค.
2. ๊ฐ์ ๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI) ์ธ์: ํ๋ฆฌ๋ฏธ์ ๋๋
์ฌ์ค์ ์ธ ์คํฌ๋กค ๋์ญํ์ ํตํฉํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ข ์ข ๋ ์ธ๋ จ๋๊ณ , ํ๋์ ์ด๋ฉฐ, 'ํ๋ฆฌ๋ฏธ์'์ฒ๋ผ ๋๊ปด์ง๋๋ค. ์ด ๋ฏธ๋ฌํ ์ ๊ตํจ์ ์ ํ์ ๊ฒฝ์์ฌ์ ์ฐจ๋ณํํ๊ณ , ์ธ๋ถ ์ฌํญ์ ๋ํ ๊ด์ฌ๊ณผ ๊ณ ํ์ง ๋์์ธ์ ๋ํ ์ฝ์์ ๋ํ๋ ๋๋ค. ์ด๋ ์ ์ฒด ์ธํฐํ์ด์ค์ ๋ฏธ์ ๋ฐ ๊ธฐ๋ฅ์ ๋งค๋ ฅ์ ๋์ ๋๋ค.
3. ๊ธฐ๊ธฐ ๊ฐ ์ผ๊ด์ฑ ๋ฐ ์์ธก ๊ฐ๋ฅ์ฑ
์ค๋งํธํฐ, ํ๋ธ๋ฆฟ, ํธ๋ํจ๋๊ฐ ์๋ ๋ ธํธ๋ถ, ๋ง์ฐ์ค๊ฐ ์๋ ๋ฐ์คํฌํฑ ๋ฑ ๋ค์ํ ๊ธฐ๊ธฐ ์๋์ ์ผ๊ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ์งํ๋ ๊ฒ์ ์ด๋ ค์ด ์ผ์ ๋๋ค. ๋ฌผ๋ฆฌ ๊ธฐ๋ฐ ์คํฌ๋กค๋ง์ ์ด ๊ฒฉ์ฐจ๋ฅผ ํด์ํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. ์ ๋ ฅ ๋ฉ์ปค๋์ฆ์ ๋ค๋ฅด์ง๋ง, ๊ธฐ๋ณธ ๋ฌผ๋ฆฌ ๋ชจ๋ธ์ ์ฌ์ฉ์๊ฐ ํฐ์น์คํฌ๋ฆฐ์์ ํ๋ฆญํ๋ ํธ๋ํจ๋์์ ์ค์์ดํํ๋ ์คํฌ๋กค๋ง์ *๋๋*์ด ์์ธก ๊ฐ๋ฅํ๊ณ ์ผ๊ด๋๊ฒ ์ ์ง๋๋๋ก ๋ณด์ฅํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์์ธก ๊ฐ๋ฅ์ฑ์ ํ์ต ๊ณก์ ์ ์ค์ด๊ณ ํ๋ซํผ ์ ๋ฐ์ ๊ฑธ์ณ ์ฌ์ฉ์ ์ ๋ขฐ๋ฅผ ๊ตฌ์ถํฉ๋๋ค.
4. ๋ช ํํ ํผ๋๋ฐฑ๊ณผ ์ดํฌ๋์ค
์ฝํ ์ธ ๊ฒฝ๊ณ์์์ ํ๋ ฅ ์๋ ๋ฐ์ด์ค๋ ์ฌ์ฉ์๊ฐ ๋์ ๋๋ฌํ์์ ์๋ฆฌ๋ ๋ช ํํ๊ณ ๋ฐฉํด๋์ง ์๋ ํผ๋๋ฐฑ ์ญํ ์ ํฉ๋๋ค. ์ด ์๊ฐ์ ์ดํฌ๋์ค๋ ๊ฐ์์ค๋ฌ์ด ์ ์ง๋ ์ ์ ์ธ ์คํฌ๋กค๋ฐ์ ์ถํ๋ณด๋ค ํจ์ฌ ์ฐ์ํฉ๋๋ค. ๊ด์ฑ ์คํฌ๋กค๋ง์ ๋ํ ์ฌ์ฉ์ ์ ๋ ฅ์ ๊ฐ๋์ ๋ํ ํผ๋๋ฐฑ์ ์ ๊ณตํ์ฌ ์ํธ์์ฉ์ด ๋ ์ง์ ์ ์ด๊ณ ๊ฐ๋ ฅํ๊ฒ ๋๊ปด์ง๋๋ก ํฉ๋๋ค.
5. ํ๋์ ์ธ ๋ธ๋๋ ์ ์ฒด์ฑ๊ณผ ํ์
๋ฌผ๋ฆฌ ๊ธฐ๋ฐ ์คํฌ๋กค๋ง๊ณผ ๊ฐ์ ๊ณ ๊ธ ์ํธ์์ฉ ๋ชจ๋ธ์ ์ฑํํ๋ฉด ๋ธ๋๋์ ์ด๋ฏธ์ง๋ฅผ ํ์ ์ ์ด๊ณ , ๊ธฐ์ ์ ์ผ๋ก ์ง๋ณดํ์ผ๋ฉฐ, ์ฌ์ฉ์ ์ค์ฌ์ ์ธ ๊ฒ์ผ๋ก ๊ฐํํ ์ ์์ต๋๋ค. ์ด๋ ๊ธฐ์ ์ ์ ํตํ ๊ธ๋ก๋ฒ ๊ณ ๊ฐ๊ณผ ๊ณต๊ฐํ๋ ์ต์ฒจ๋จ ๋์งํธ ๊ฒฝํ์ ์ ๊ณตํ๋ ค๋ ๋ ธ๋ ฅ์ ๋ณด์ฌ์ค๋๋ค.
6. ๊ฐ์ฑ์ ์ฐ๊ฒฐ
์ถ์์ ์ผ๋ก ๋ณด์ผ ์ ์์ง๋ง, ์คํฌ๋กค ๋ฌผ๋ฆฌํ์ ํฌํจํ ์ ์คํ๋ ๋ง์ดํฌ๋ก ์ธํฐ๋์ ์ ๊ธ์ ์ ์ธ ๊ฐ์ ์ ๋ถ๋ฌ์ผ์ผํฌ ์ ์์ต๋๋ค. ์๋ฒฝํ๊ฒ ๊ฐ์ค๋ ์คํฌ๋กค์ด๋ ๋ง์กฑ์ค๋ฌ์ด ๋ฐ์ด์ค์ ๋ฏธ๋ฌํ ์ฆ๊ฑฐ์์ ์ ํ๊ณผ์ ๋ ๊น๊ณ ๊ฐ์ฑ์ ์ธ ์ฐ๊ฒฐ์ ์ด์งํ์ฌ ์ถฉ์ฑ๋์ ๊ธ์ ์ ์ธ ์ ์๋ฌธ์ ๊ธฐ์ฌํ ์ ์์ต๋๋ค.
ํ์ฌ ์ํฉ: CSS ๊ธฐ๋ฅ๊ณผ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
"CSS ์คํฌ๋กค ๋์ ๋ฌผ๋ฆฌ ์์ง"์ด๋ผ๋ ์ฉ์ด๋ ์์ ํ CSS ๊ธฐ๋ฐ์ ์๋ฃจ์ ์ ์ ์ํ ์ ์์ง๋ง, ํ์ค์ ๋ค์ดํฐ๋ธ ๋ธ๋ผ์ฐ์ ๊ธฐ๋ฅ๊ณผ ๊ฐ๋ ฅํ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ์ ๋ฏธ๋ฌํ ์ํธ์์ฉ์ ๋๋ค. ํ๋ ์น ๊ฐ๋ฐ์ ์ข ์ข ์ํ๋ ์์ค์ ์ฌ์ค์ฑ๊ณผ ์ ์ด๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํด ์ด ๋ ๊ฐ์ง๋ฅผ ๋ชจ๋ ํ์ฉํฉ๋๋ค.
๋ค์ดํฐ๋ธ CSS ๊ธฐ๋ฅ: ๊ธฐ์ด
scroll-behavior: smooth;
์ด CSS ์์ฑ์ *ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์* ์คํฌ๋กค์ ๋ํด ๋ ๋ถ๋๋ฌ์ด ๊ฒฝํ์ ๋์
ํ๋ ๊ฐ์ฅ ์ง์ ์ ์ธ ๋ค์ดํฐ๋ธ ๋ฐฉ๋ฒ์
๋๋ค. ์ต์ปค ๋งํฌ๋ฅผ ํด๋ฆญํ๊ฑฐ๋ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ element.scrollIntoView({ behavior: 'smooth' })
๋ฅผ ํธ์ถํ๋ฉด ๋ธ๋ผ์ฐ์ ๋ ์ฆ์ ์ ํํ๋ ๋์ ์งง์ ์๊ฐ ๋์ ์คํฌ๋กค์ ์ ๋๋ฉ์ด์
ํํฉ๋๋ค. ๊ฐ์น๊ฐ ์์ง๋ง, ์ฌ์ฉ์ ์์ ์คํฌ๋กค(์: ๋ง์ฐ์ค ํ , ํธ๋ํจ๋ ์ ์ค์ฒ)์ ๋ํ ๊ด์ฑ์ด๋ ํ์ฑ๊ณผ ๊ฐ์ ๋ฌผ๋ฆฌํ์ ๋์
ํ์ง๋ ์์ต๋๋ค.
scroll-snap
์์ฑ
CSS ์คํฌ๋กค ์ค๋ ์ ์คํฌ๋กค ์ปจํ ์ด๋์ ๋ํ ๊ฐ๋ ฅํ ์ ์ด๋ฅผ ์ ๊ณตํ์ฌ ์คํฌ๋กค ์ ์ค์ฒ ํ ํน์ ์ง์ ์ด๋ ์์์ '์ค๋ '๋๋๋ก ํฉ๋๋ค. ์ด๋ ์บ๋ฌ์ , ๊ฐค๋ฌ๋ฆฌ ๋๋ ์ ์ฒด ํ์ด์ง ์น์ ์คํฌ๋กค๋ง์ ๋งค์ฐ ์ ์ฉํฉ๋๋ค. ์ด๋ ์คํฌ๋กค์ *์ต์ข ์ ์ง ์์น*์ ์ํฅ์ ๋ฏธ์น๋ฉฐ, ๋ธ๋ผ์ฐ์ ๊ฐ ์ข ์ข ์ค๋ ์ง์ ์ผ๋ก์ ๋ถ๋๋ฌ์ด ์ ํ์ ๊ตฌํํ์ง๋ง ์ฌ์ ํ ์์ ํ ๋ฌผ๋ฆฌ ์์ง์ ์๋๋๋ค. ์คํฌ๋กค ์ค์ ๋์ญํ์ด ์๋ ์คํฌ๋กค ๋์์์ ๋์์ ์ ์ํฉ๋๋ค.
scroll-snap-type: x mandatory;
scroll-snap-align: start;
scroll-margin: 20px;
์ด๋ฌํ ์์ฑ์ ํน์ ๋์์ผ๋ก์ ์ ์ด๋๊ณ ์์ธก ๊ฐ๋ฅํ ์คํฌ๋กค๋ง์ ๊ฐ๋ฅํ๊ฒ ํ๋ฉฐ, ์ด๋ ํ๋ฅญํ UX ํฅ์์ด์ง๋ง, ํ์ฑ ์คํฌ๋กค๋ง ์ค ๊ด์ฑ์ด๋ ํ์ฑ์ ์ง์์ ์ธ ๋ฌผ๋ฆฌ ๊ธฐ๋ฐ ๋๋์ ์ ๊ณตํ์ง๋ ์์ต๋๋ค.
๊ฒฉ์ฐจ: ๋ค์ดํฐ๋ธ CSS๊ฐ ๋๋๊ณ ๋ฌผ๋ฆฌํ์ด ์์๋๋ ๊ณณ
ํ์ฌ ๋ค์ดํฐ๋ธ CSS ์์ฑ์ ์คํฌ๋กค์ *๋์*๊ณผ *ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ ๋ถ๋๋ฌ์*์ ๋ํ ํ์ํ ์ ์ด๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฌ์ฉ์ ์์ ์คํฌ๋กค ์ด๋ฒคํธ์ ๊ด์ฑ, ๋ง์ฐฐ, ํ์ฑ๊ณผ ๊ฐ์ ์ฐ์์ ์ธ ๋ฌผ๋ฆฌ์ ํ์ ์ง์ ๋ชจ๋ธ๋งํ๊ณ ์ ์ธ์ ์ผ๋ก ์ ์ฉํ๋ ๊ธฐ๋ฅ์ด ๋ถ์กฑํฉ๋๋ค. ๋ฌผ๋ฆฌ ์์ง์ ์๋ฎฌ๋ ์ด์ ํ๋ ์ง์ ์ผ๋ก ์ฌ์ค์ ์ธ ์คํฌ๋กค ๋์ญํ์ ์ํด ๊ฐ๋ฐ์๋ค์ ํ์ฌ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋์ ๋๋ฆฝ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ: ๋ฌผ๋ฆฌ์ ๊ฒฉ์ฐจ ํด์
์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ ๊ตํ ์คํฌ๋กค ๋ฌผ๋ฆฌํ์ ๊ตฌํํ๋ ๋ฐ ์์ฅ์๊ณ ์์ต๋๋ค. ์คํฌ๋กค ์ด๋ฒคํธ๋ฅผ ์์ ํ๊ณ , ์๋๋ฅผ ๊ณ์ฐํ๊ณ , ๋ฌผ๋ฆฌ ๋ชจ๋ธ์ ์ ์ฉํ ๋ค์, ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์์์ ์คํฌ๋กค ์์น๋ ๋ณํ ์์ฑ์ ์ ๋ฐ์ดํธํ์ฌ ์ํ๋ ํจ๊ณผ๋ฅผ ๋ง๋ญ๋๋ค.
1. Framer Motion (React) / Popmotion
Framer Motion์ React์ฉ ํ๋ก๋์ ๋ ๋ ๋ชจ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, ๊ธฐ๋ณธ Popmotion ์์ง์ ํ์ฉํฉ๋๋ค. ์คํ๋ง ๊ธฐ๋ฐ ์ํธ์์ฉ์ ํฌํจํ ๋ฌผ๋ฆฌ ๊ธฐ๋ฐ ์ ๋๋ฉ์ด์ ์ ํ์ํฉ๋๋ค. ์คํฌ๋กค๋ง ์ ์ฉ์ ์๋์ง๋ง, ๊ด์ฑ์ ์ด๊ณ ํ๋ ฅ ์๋ ์์ง์์ ๋ง๋๋ ๊ธฐ๋ฅ์ ์คํฌ๋กค ์ปจํ ์ด๋์ ์ ์ฉํ ์ ์์ต๋๋ค. ๊ฐ๋ฐ์๋ ์คํฌ๋กค ์ด๋ฒคํธ๋ฅผ ๊ฐ์งํ๊ณ , ์๋๋ฅผ ๊ณ์ฐํ ๋ค์, Framer Motion์ ๋ฌผ๋ฆฌ ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ์์๋ฅผ ์ ๋๋ฉ์ด์ ํํ์ฌ ์คํฌ๋กค ๋์์ ๋ชจ๋ฐฉํ ์ ์์ต๋๋ค.
๊ฐ๋
์์: ์ฌ์ฉ์ ์คํฌ๋กค ์๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก y
์์น๋ฅผ ์ ๋๋ฉ์ด์
ํํ๊ณ ๋ง์ฐฐ์ ์ถ๊ฐํ๊ธฐ ์ํด useSpring
ํ
์ ์ฌ์ฉํ๋ ๋ง์ถคํ ์คํฌ๋กค ์ปดํฌ๋ํธ.
2. React Spring
Framer Motion๊ณผ ์ ์ฌํ๊ฒ, React Spring์ React ์ ํ๋ฆฌ์ผ์ด์
์ ์ํ ๊ฐ๋ ฅํ๊ณ ์ฑ๋ฅ ์ฐ์ ์ ์คํ๋ง-๋ฌผ๋ฆฌ ๊ธฐ๋ฐ ์ ๋๋ฉ์ด์
๋ผ์ด๋ธ๋ฌ๋ฆฌ์
๋๋ค. ๊ฐ๋ฐ์๊ฐ ๊ฑฐ์ ๋ชจ๋ ๊ฒ์ ๋ฌผ๋ฆฌํ์ผ๋ก ์ ๋๋ฉ์ด์
ํํ ์ ์๊ฒ ํด์ค๋๋ค. useSpring
๋ฐ useTransition
ํ
์ ์ ๋์ ์ด๊ณ ์์ฐ์ค๋ฌ์ด ๋๋์ ์์ง์์ ๋ง๋๋ ๋ฐ ์ด์์ ์
๋๋ค. React Spring์ ์คํฌ๋กค ์ด๋ฒคํธ์ ํตํฉํ๋ ๊ฒ์ wheel
๋๋ touchmove
์ด๋ฒคํธ๋ฅผ ์์ ํ๊ณ , ๋ธํ๋ฅผ ๊ณ์ฐํ ๋ค์, ์คํ๋ง ์ ๋๋ฉ์ด์
์ ๊ตฌ๋ํ์ฌ ์ฝํ
์ธ ์ ์์น๋ฅผ ์
๋ฐ์ดํธํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
๊ฐ๋
์์: ํ ์ด๋ฒคํธ์์ deltaY
๋ฅผ ์บก์ฒํ์ฌ ์คํ๋ง ๊ฐ์ ์ ์ฉํ๊ณ , ํด๋น ์คํ๋ง ๊ฐ์ผ๋ก ๋ณํ๋ ์ฝํ
์ธ ๋ฅผ ๋ ๋๋งํ์ฌ ํ์ฑ ๊ฒฝ๊ณ๋ฅผ ๋ณด์ฅํ๋ ScrollView
์ปดํฌ๋ํธ.
3. GreenSock (GSAP) with ScrollTrigger
GSAP๋ ๊ฒฌ๊ณ ํจ๊ณผ ์ฑ๋ฅ์ผ๋ก ์ ๋ช ํ ์ ๋ฌธ๊ฐ๊ธ ์ ๋๋ฉ์ด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ScrollTrigger๋ ์ฃผ๋ก ์คํฌ๋กค ๊ธฐ๋ฐ *์ ๋๋ฉ์ด์ *(์: ๋ทฐํฌํธ์ ๋ค์ด์ฌ ๋ ์์ ์ ๋๋ฉ์ด์ )์ ์ฌ์ฉ๋์ง๋ง, GSAP์ ํต์ฌ ์ ๋๋ฉ์ด์ ์์ง์ ๋ง์ถคํ ๋ฌผ๋ฆฌ ์๋ฎฌ๋ ์ด์ ์ ๊ตฌ์ถํ๋ ๋ฐ ํ์คํ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ๊ฐ๋ฐ์๋ GSAP์ ๊ฐ๋ ฅํ ํ์๋ผ์ธ๊ณผ ํธ์๋ ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ๋ฌผ๋ฆฌํ์ ๋ชจ๋ฐฉํ๋ ๋ง์ถคํ ์ด์ง ๊ณก์ ์ผ๋ก ์คํฌ๋กค ์์น๋ ์์ ๋ณํ์ ์ ๋๋ฉ์ด์ ํํ๊ฑฐ๋, ๋ ๋ณต์กํ ์๋๋ฆฌ์ค๋ฅผ ์ํด Oimo.js ๋๋ cannon.js์ ๊ฐ์ ๋ฌผ๋ฆฌ ์์ง๊ณผ ํตํฉํ ์๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ ๊ธฐ๋ณธ ์คํฌ๋กค ๋ฌผ๋ฆฌํ์๋ ๊ณผ๋ํ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
4. ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ ๋ง์ถคํ ๊ตฌํ
์ต๋ํ์ ์ ์ด๋ฅผ ์ํ๊ฑฐ๋ ์ธ๊ธฐ ์๋ ํ๋ ์์ํฌ ์ธ๋ถ์์ ์์ ํ๋ ์ฌ๋๋ค์ ์ํด, ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ ์คํฌ๋กค ๋ฌผ๋ฆฌ ์์ง์ ์ฒ์๋ถํฐ ๊ตฌ์ถํ ์ ์๋ ์ ์ฐ์ฑ์ ์ ๊ณตํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค:
wheel
,touchstart
,touchmove
,touchend
์ด๋ฒคํธ ์์ .- ์คํฌ๋กค ์๋ ๊ณ์ฐ (์๊ฐ์ ๋ฐ๋ฅธ ์์น ์ฐจ์ด).
- ๋ฌผ๋ฆฌ ๋ฐฉ์ ์ ์ ์ฉ (์: ๊ฐ์์ ์ํ
velocity = velocity * friction
, ์คํ๋ง์ ์ํ ํ ์ ๋ฒ์น). - ๋ถ๋๋ฝ๊ณ ์ฑ๋ฅ ์ข์ ์ ๋๋ฉ์ด์
์ ์ํด
requestAnimationFrame
์ ์ฌ์ฉํ์ฌ ์คํฌ๋กค ๊ฐ๋ฅ ์ฝํ ์ธ ์transform
์์ฑ(์:translateY
)์ ์ ๋ฐ์ดํธํ๊ฑฐ๋scrollTop
/scrollLeft
๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ์กฐ์ .
์ด ์ ๊ทผ ๋ฐฉ์์ ์ ๋๋ฉ์ด์ ๋ฃจํ, ๋ฌผ๋ฆฌ ๋ฐฉ์ ์ ๋ฐ ์ฑ๋ฅ ์ต์ ํ์ ๋ํ ๋ ๊น์ ์ดํด๋ฅผ ํ์๋ก ํ์ง๋ง, ํ์ ์ถ์ข ์ ๋ถํํ๋ ๋ง์ถคํ๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋ฏธ๋: ๋ ๋ง์ ๋ค์ดํฐ๋ธ CSS ๋ฌผ๋ฆฌํ์ ํฅํ์ฌ?
์น ํ๋ซํผ์ ๋์์์ด ์งํํ๊ณ ์์ต๋๋ค. CSS Houdini์ ๊ฐ์ ์ด๋์ ํฐ๋ธ๋ ๊ฐ๋ฐ์๊ฐ CSS ๋ด์์ ์ง์ ๋ ๋๋ง ๋ฐ ์ ๋๋ฉ์ด์ ์ ๋ํ ๋ ๋ฎ์ ์์ค์ ์ ์ด๋ฅผ ๊ฐ์ง ์ ์๋ ๋ฏธ๋๋ฅผ ์์ํ๋ฉฐ, ์ ์ฌ์ ์ผ๋ก ๋ ์ ์ธ์ ์ธ ๋ฌผ๋ฆฌ ๊ธฐ๋ฐ ์ ๋๋ฉ์ด์ ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. ๋ธ๋ผ์ฐ์ ๊ฐ ๋ ๋๋ง ์ฑ๋ฅ์ ๊ณ์ ์ต์ ํํ๊ณ ์๋ก์ด CSS ๋ชจ๋์ ํ์ํจ์ ๋ฐ๋ผ, CSS์์ ์ง์ ๊ด์ฑ ์คํฌ๋กค๋ง์ด๋ ํ์ฑ ๊ฒฝ๊ณ๋ฅผ ์ ์ํ๋ ๋ ๋ง์ ๋ค์ดํฐ๋ธ ๋ฐฉ๋ฒ์ ๋ณด๊ฒ ๋ ์ ์์ผ๋ฉฐ, ์ด๋ฌํ ์ผ๋ฐ์ ์ธ ํจํด์ ๋ํ ์๋ฐ์คํฌ๋ฆฝํธ ์์กด๋๋ฅผ ์ค์ผ ์ ์์ต๋๋ค.
์คํฌ๋กค ๋ฌผ๋ฆฌํ์ ์ผ๋์ ๋ ๋์์ธ
์คํฌ๋กค ๋ฌผ๋ฆฌํ์ ๊ตฌํํ๋ ๊ฒ์ ๋จ์ง ๊ธฐ์ ์ ์ธ ๋์ ์ด ์๋๋ผ ๋์์ธ ๊ฒฐ์ ์ ๋๋ค. ์ฌ๋ ค ๊น์ ์ ์ฉ์ ์ด๋ฌํ ๋์ญํ์ด ์ฌ์ฉ์ ๊ฒฝํ์ ์ ํดํ์ง ์๊ณ ํฅ์์ํค๋๋ก ๋ณด์ฅํฉ๋๋ค.
์ฌ์ฉ์ ๊ธฐ๋ ์ดํด: ๋ฌด์์ด '์์ฐ์ค๋ฝ๊ฒ' ๋๊ปด์ง๋๊ฐ?
'์์ฐ์ค๋ฌ์ด' ์คํฌ๋กค๋ง์ ์ ์๋ ์ฃผ๊ด์ ์ผ ์ ์๊ณ ๋ฌธํ์ ์ผ๋ก ์ํฅ์ ๋ฐ์ ์๋ ์์ง๋ง, ์ผ๋ฐ์ ์ผ๋ก ์ค์ ๋ฌผ๋ฆฌํ ๋ฐ ์ ๋์์ธ๋ ๋ค์ดํฐ๋ธ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ณผ ์ ์๋ ์ผ๋ฐ์ ์ธ ํจํด๊ณผ ์ผ์นํ๋ ๋์์ ์๋ฏธํฉ๋๋ค. ๋ค์ํ ์ธ๊ตฌ ํต๊ณ์ ๊ฑธ์ณ ์ง๊ด์ ์ด๊ณ ์ฆ๊ฒ๊ฒ ๋๊ปด์ง๋ ์ต์ ์ ์ง์ ์ ์ฐพ๊ธฐ ์ํด ์ค์ ์ฌ์ฉ์์ ํจ๊ป ๋ค์ํ ๋ง์ฐฐ, ๊ด์ฑ, ์คํ๋ง ์์๋ฅผ ํ ์คํธํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
์ฌ์ค์ฑ๊ณผ ์ฑ๋ฅ์ ๊ท ํ
๋ฌผ๋ฆฌ ๊ณ์ฐ, ํนํ ์ฐ์์ ์ธ ๊ณ์ฐ์ ๊ณ์ฐ ์ง์ฝ์ ์ผ ์ ์์ต๋๋ค. ์ฌ์ค์ ์ธ ๋์ญํ๊ณผ ๋ถ๋๋ฌ์ด ์ฑ๋ฅ ์ฌ์ด์ ๊ท ํ์ ๋ง์ถ๋ ๊ฒ์ด ๊ฐ์ฅ ์ค์ํฉ๋๋ค. ๋ฌด๊ฑฐ์ด ๋ฌผ๋ฆฌ ์์ง์ CPU ๋ฐ GPU ๋ฆฌ์์ค๋ฅผ ์๋นํ์ฌ ํนํ ์ ์ฌ์ ์ฅ์น๋ ๋ณต์กํ UI์์ ๋ฒ๋ฒ ๊ฑฐ๋ฆผ์ ์ ๋ฐํ ์ ์์ต๋๋ค. ๋ชจ๋ฒ ์ฌ๋ก๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ๋ชจ๋ ์ ๋๋ฉ์ด์
์
๋ฐ์ดํธ์
requestAnimationFrame
์ฌ์ฉ. height
,width
,top
,left
์ ๊ฐ์ ์์ฑ(์ข ์ข ๋ ์ด์์ ์ฌ๊ณ์ฐ์ ์ ๋ฐํจ) ๋์ CSStransform
๋ฐopacity
์์ฑ(GPU ๊ฐ์ ๊ฐ๋ฅ)์ ์ ๋๋ฉ์ด์ ํ.- ์ด๋ฒคํธ ๋ฆฌ์ค๋์ ๋๋ฐ์ด์ฑ ๋๋ ์ค๋กํ๋ง ์ ์ฉ.
- ๋ฌผ๋ฆฌ ๋ฐฉ์ ์์ ๊ฐ๋ฅํ ํ ๊ฐ๋ณ๊ฒ ์ต์ ํ.
๋ง์ถคํ ์ต์ : ๊ฒฝํ ๋ง์ถคํ
๋ฌผ๋ฆฌ ์์ง์ ๊ฐ์ ์ค ํ๋๋ ๊ตฌ์ฑ ๊ฐ๋ฅ์ฑ์ ๋๋ค. ๊ฐ๋ฐ์์ ๋์์ด๋๋ ๋ค์๊ณผ ๊ฐ์ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฏธ์ธ ์กฐ์ ํ ์ ์์ด์ผ ํฉ๋๋ค:
- ์ง๋/๋ฌด๊ฒ: ์ฝํ ์ธ ๊ฐ ์ผ๋ง๋ '๋ฌด๊ฒ๊ฒ' ๋๊ปด์ง๋์ง์ ์ํฅ์ ์ค.
- ์ฅ๋ ฅ/๊ฐ์ฑ: ์คํ๋ง ํจ๊ณผ์ฉ.
- ๋ง์ฐฐ/๊ฐ์ : ์์ง์์ด ์ผ๋ง๋ ๋นจ๋ฆฌ ์๋ฉธ๋๋์ง.
- ์๊ณ๊ฐ: ํ์ฑ ๋ฐ์ด์ค์ ํ์ฉ๋๋ ์ค๋ฒ์ํธ์ ์.
์ด ์์ค์ ๋ง์ถคํ๋ ๋ ํนํ ๋ธ๋๋ ํํ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. ๋ช ํ ๋ธ๋๋์ ์น์ฌ์ดํธ๋ ๋ฌด๊ฒ๊ณ ๋๋ฆฌ๋ฉฐ ์ ์คํ ์คํฌ๋กค์ ํน์ง์ผ๋ก ํ ์ ์๊ณ , ๊ฒ์ ํ๋ซํผ์ ๊ฐ๋ณ๊ณ ๋น ๋ฅด๋ฉฐ ํ๋ ฅ ์๋ ๋๋์ ์ ํํ ์ ์์ต๋๋ค.
๋ช ํํ ์๊ฐ์ ํผ๋๋ฐฑ ์ ๊ณต
๋ฌผ๋ฆฌํ ์์ฒด๊ฐ ์ด๊ฐ์ ํผ๋๋ฐฑ์ ์ ๊ณตํ์ง๋ง, ์๊ฐ์ ๋จ์๋ ๊ฒฝํ์ ๋์ฑ ํฅ์์ํฌ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ํ์ฑ ๋ฐ์ด์ค ๋์ ํญ๋ชฉ์ ๋ฏธ๋ฌํ ํฌ๊ธฐ ์กฐ์ ๋๋ ํ์ .
- ๋ฌผ๋ฆฌ ์๋ฎฌ๋ ์ด์ ๋ด์ ํ์ฌ ์๋๋ ์์น๋ฅผ ๋ฐ์ํ๋ ๋์ ์คํฌ๋กค ํ์๊ธฐ.
์ด๋ฌํ ๋จ์๋ ์ฌ์ฉ์๊ฐ ์์คํ ์ ์ํ์ ๋์์ ๋ ๋ช ํํ๊ฒ ์ดํดํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
์ค์ฉ์ ์ธ ๊ตฌํ ์์: ์คํฌ๋กค ๋ฌผ๋ฆฌํ์ด ๋น๋๋ ๊ณณ
์ฌ์ค์ ์ธ ์คํฌ๋กค ๋์ญํ์ ํ๋ฒํ ์ปดํฌ๋ํธ๋ฅผ ๋งค๋ ฅ์ ์ธ ์ํธ์์ฉ ์์๋ก ๋ณํ์ํฌ ์ ์์ต๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ด ์ง์ ์ผ๋ก ๋น์ ๋ฐํ๋ ๋ช ๊ฐ์ง ๊ธ๋ก๋ฒ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
1. ์ด๋ฏธ์ง ๊ฐค๋ฌ๋ฆฌ ๋ฐ ์บ๋ฌ์
๊ฐ์์ค๋ฌ์ด ์ฌ๋ผ์ด๋๋ ์ ํ์ ์ธ ์ ํ ๋์ , ๊ด์ฑ ์คํฌ๋กค๋ง์ด ์๋ ์ด๋ฏธ์ง ๊ฐค๋ฌ๋ฆฌ๋ ๋ฏฟ์ ์ ์์ ์ ๋๋ก ์์ฐ์ค๋ฝ๊ฒ ๋๊ปด์ง๋๋ค. ์ฌ์ฉ์๋ ์ด๋ฏธ์ง๋ฅผ ๋น ๋ฅด๊ฒ ๋๊ธธ ์ ์๊ณ , ๊ฐค๋ฌ๋ฆฌ๋ ๊ณ์ ์คํฌ๋กค๋๋ค๊ฐ ์ ์ฐจ ๊ฐ์ํ์ฌ ๋ถ๋๋ฝ๊ฒ ๋ฉ์ถ๋ฉฐ, ์ข ์ข ๋ฏธ๋ฌํ ํ์ฑ ๋น๊น์ผ๋ก ๊ฐ์ฅ ๊ฐ๊น์ด ์ด๋ฏธ์ง์ ๋ถ๋๋ฝ๊ฒ ์ค๋ ๋ฉ๋๋ค. ์ด๋ ์ ์ ์๊ฑฐ๋ ํ๋ซํผ, ํฌํธํด๋ฆฌ์ค ์ฌ์ดํธ ๋๋ ์ฌ๋ฌ ์๊ฐ์ ์์ฐ์ ๋ณด์ฌ์ฃผ๋ ๋ด์ค ํฌํธ์ ํนํ ํจ๊ณผ์ ์ ๋๋ค.
2. ๋ฌดํ ์คํฌ๋กค ๋ชฉ๋ก ๋ฐ ํผ๋
์ฌ์ฉ์๊ฐ ๋์์ด ์คํฌ๋กคํ ์ ์๋ ์์ ๋ฏธ๋์ด ํผ๋๋ ์ ํ ์นดํ๋ก๊ทธ๋ฅผ ์์ํด ๋ณด์ธ์. ๋งจ ๋์ ๋๋ฌํ์ ๋(๋์ด ์๊ฑฐ๋ ์ ์ฝํ ์ธ ๊ฐ ๋ก๋๋๊ธฐ ์ง์ ์), ๋ถ๋๋ฌ์ด ํ์ฑ ๋ฐ์ด์ค๋ ๋ง์กฑ์ค๋ฌ์ด ์ด๊ฐ์ ํ์ธ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ ๋ฑ๋ฑํ ์ ์ง์ ๋ถ๋ชํ๋ ๋ถ์พํ ๊ฒฝํ์ ๋ฐฉ์งํ๊ณ , ๋ฏธ๋ฌํ ๋ฐ๋ ํ์ ์ ํญ๋ชฉ์ด ๋งค๋๋ฝ๊ฒ ๋ํ๋๋ฏ๋ก ์ฝํ ์ธ ๋ก๋ฉ์ด ๋ ํตํฉ์ ์ผ๋ก ๋๊ปด์ง๊ฒ ํฉ๋๋ค.
3. ์ํธ์์ฉ์ ๋ฐ์ดํฐ ์๊ฐํ ๋ฐ ์ง๋
๋ณต์กํ ๋ฐ์ดํฐ ์๊ฐํ๋ ์ํธ์์ฉ์ ์ง๋๋ฅผ ํจ๋ํ๊ณ ์คํ๋ ๊ฒ์ ์คํฌ๋กค ๋ฌผ๋ฆฌํ์ผ๋ก๋ถํฐ ํฐ ์ด์ ์ ์ป์ต๋๋ค. ๊ฒฝ์ง๋ ๋ง์ฐ์ค ํด๋ฆญ ๊ธฐ๋ฐ์ ์์ง์ ๋์ , ์ฌ์ฉ์๋ ๋ถ๋๋ฝ๊ฒ ๋๋๊ทธ ์ค ๋ฆด๋ฆฌ์คํ์ฌ ์ง๋๋ ์๊ฐํ๊ฐ ๊ด์ฑ์ ๊ฐ์ง๊ณ ์๋ก์ด ์์น๋ก ๋ฏธ๋๋ฌ์ง๊ฒ ํ๊ณ ๊ฒฐ๊ตญ ์ ์๋ฆฌ์ ์์ฐฉํ๊ฒ ํ ์ ์์ต๋๋ค. ์ด๋ ํนํ ์ฐ๊ตฌ์, ๋ถ์๊ฐ ๋๋ ๊ธ๋ก๋ฒ ์ง๋๋ฅผ ํ์ํ๋ ์ฌํ์์๊ฒ ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ธํธ๋ ์ง๋ฆฌ ์ ๋ณด๋ฅผ ํ์ํ๋ ๊ฒ์ ํจ์ฌ ๋ ์ง๊ด์ ์ด๊ณ ๋ ํผ๋กํ๊ฒ ๋ง๋ญ๋๋ค.
4. ํ์ฑ ์ ํ์ด ์๋ ์ ์ฒด ํ์ด์ง ์คํฌ๋กค ์น์
๋ง์ ํ๋ ์น์ฌ์ดํธ๋ ์ฌ์ฉ์๊ฐ ์คํฌ๋กคํ ๋ ๋ทฐ์ ์ค๋
๋๋ ์ ์ฒด ํ์ด์ง ์น์
์ ์ฌ์ฉํฉ๋๋ค. CSS scroll-snap
์ ๋ง์ถคํ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌผ๋ฆฌ ์์ง๊ณผ ๊ฒฐํฉํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ ํ์ฑ ์ ํ์ ์ถ๊ฐํ ์ ์์ต๋๋ค. ์ฌ์ฉ์๊ฐ ์ ์น์
์ผ๋ก ์คํฌ๋กคํ๋ฉด ๊ทธ๋ฅ ์ค๋
๋๋ ๊ฒ์ด ์๋๋ผ ์ฝ๊ฐ์ ์ค๋ฒ์ํธ์ ํจ๊ป ๋ฏธ๋๋ฌ์ง๋ค๊ฐ ์๋ฒฝํ ์ ๋ ฌ ์ํ๋ก ํ๊ฒจ์ ธ ๋ค์ด์ต๋๋ค. ์ด๋ ๋๋ฉ ํ์ด์ง, ์ ํ ์ผ์ผ์ด์ค ๋๋ ์ํธ์์ฉ์ ์คํ ๋ฆฌํ
๋ง ๊ฒฝํ์์ ํํ ๋ณผ ์ ์๋ ๋
ํนํ ์ฝํ
์ธ ๋ธ๋ก ๊ฐ์ ์ฆ๊ฑฐ์ด ์ ํ์ ์ ๊ณตํฉ๋๋ค.
5. ๋ง์ถคํ ์คํฌ๋กค ๊ฐ๋ฅ ์ฌ์ด๋๋ฐ ๋ฐ ๋ชจ๋ฌ
๊ธด ์ฌ์ด๋๋ฐ ๋ด๋น๊ฒ์ด์ , ๋ชจ๋ฌ ๋ด์ ๋ณต์กํ ์์ ๋๋ ์์ธ ์ ๋ณด ํจ๋ ๋ฑ ์ค๋ฒํ๋ก ์ฝํ ์ธ ๊ฐ ์๋ ๋ชจ๋ ์์๋ ๋ฌผ๋ฆฌ ๊ธฐ๋ฐ ์คํฌ๋กค๋ง์ ์ด์ ์ ๋๋ฆด ์ ์์ต๋๋ค. ๋ฐ์์ฑ ์๊ณ ๊ด์ฑ์ ์ธ ์คํฌ๋กค์ ์ข ์ข ๋ฐ๋ ๋์ ์ด๋ฌํ ์ปดํฌ๋ํธ๋ฅผ ๋ ๊ฐ๋ณ๊ณ ํ์ํ๊ธฐ ์ฝ๊ฒ ๋ง๋ค์ด, ํนํ ์ ๋ฐํ ์ ์ด๊ฐ ๊ฐ์ฅ ์ค์ํ ์์ ํ๋ฉด์์ ์ฌ์ฉ์ฑ์ ํฅ์์ํต๋๋ค.
๊ธ๋ก๋ฒ ๊ตฌํ์ ์ํ ๊ณผ์ ๋ฐ ๊ณ ๋ ค ์ฌํญ
์ด์ ์ ๋ถ๋ช ํ์ง๋ง, ์ฌ์ค์ ์ธ ์คํฌ๋กค ๋์ญํ์ ๊ตฌํํ๋ ค๋ฉด ํนํ ๋ค์ํ ํ๋์จ์ด, ์ํํธ์จ์ด ๋ฐ ์ ๊ทผ์ฑ ์๊ตฌ๋ฅผ ๊ฐ์ง ๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ฅผ ๋์์ผ๋ก ํ ๋ ์ ์คํ ๊ณ ๋ ค๊ฐ ํ์ํฉ๋๋ค.
1. ์ฑ๋ฅ ์ค๋ฒํค๋: ๋ชจ๋๋ฅผ ์ํด ๋ถ๋๋ฝ๊ฒ ์ ์งํ๊ธฐ
๋ฌผ๋ฆฌ ๊ณ์ฐ, ํนํ requestAnimationFrame
์์ ์ง์์ ์ผ๋ก ์คํ๋๋ ๊ณ์ฐ์ CPU ์ง์ฝ์ ์ผ ์ ์์ต๋๋ค. ์ด๋ ๊ตฌํ ์ฅ์น, ์ฑ๋ฅ์ด ๋ฎ์ ํ๋ก์ธ์ ๋๋ ์ ํ๋ ๋ฆฌ์์ค ํ๊ฒฝ(์: ์คํฌ๋ฆฝํธ ๋ก๋ฉ์ ์ํฅ์ ๋ฏธ์น๋ ๋๋ฆฐ ์ธํฐ๋ท ์ฐ๊ฒฐ)์์ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์์ต๋๋ค. ๊ฐ๋ฐ์๋ ๋ค์์ ์ํํด์ผ ํฉ๋๋ค:
- ๋ฌผ๋ฆฌ ๊ณ์ฐ์ ๊ฐ๊ฒฐํ๊ฒ ์ต์ ํํฉ๋๋ค.
- ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ค๋กํ/๋๋ฐ์ด์คํฉ๋๋ค.
- GPU ๊ฐ์ CSS ์์ฑ(
transform
,opacity
)์ ์ฐ์ ์ํฉ๋๋ค. - ๊ตฌํ ๋ธ๋ผ์ฐ์ ๋ ์ฑ๋ฅ์ด ๋ฎ์ ํ๋์จ์ด๋ฅผ ์ํด ๊ธฐ๋ฅ ๊ฐ์ง ๋๋ ์ ์ง์ ์ ํ๋ฅผ ๊ตฌํํฉ๋๋ค.
2. ๋ธ๋ผ์ฐ์ ํธํ์ฑ: ์น์ ์์กดํ๋ ๊ณผ์
ํ๋ ๋ธ๋ผ์ฐ์ ๋ ์ผ๋ฐ์ ์ผ๋ก CSS ์ ํ ๋ฐ ์ ๋๋ฉ์ด์ ์ ์ ์ฒ๋ฆฌํ์ง๋ง, ํฐ์น ์ด๋ฒคํธ, ์คํฌ๋กค ์ด๋ฒคํธ๋ฅผ ํด์ํ๊ณ ์ฑ๋ฅ์ ๋ ๋๋งํ๋ ๋ฐฉ์์ ์ธ๋ถ ์ฌํญ์ ๋ค๋ฅผ ์ ์์ต๋๋ค. ์ ์ธ๊ณ์ ์ผ๋ก ์ผ๊ด๋๊ณ ๊ณ ํ์ง์ ๊ฒฝํ์ ๋ณด์ฅํ๊ธฐ ์ํด ๋ค์ํ ๋ธ๋ผ์ฐ์ (Chrome, Firefox, Safari, Edge) ๋ฐ ์ด์ ์ฒด์ (Windows, macOS, Android, iOS)์์ ์ฒ ์ ํ ํ ์คํธ๊ฐ ์ค์ํฉ๋๋ค.
3. ์ ๊ทผ์ฑ ๋ฌธ์ : ํฌ์ฉ์ฑ ๋ณด์ฅ
๊ฐ์ฅ ์ค์ํ ๊ณ ๋ ค ์ฌํญ ์ค ํ๋๋ ์ ๊ทผ์ฑ์ ๋๋ค. ์ ๋์ ์ธ ์์ง์์ ๋ง์ ์ฌ๋๋ค์๊ฒ ์ฆ๊ฑฐ์ธ ์ ์์ง๋ง ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ๋ ํด๋ก์ธ ์ ์์ต๋๋ค:
- ๋ฉ๋ฏธ: ๋ฉ๋ฏธ์ ์ทจ์ฝํ ์ฌ์ฉ์์๊ฒ ๊ณผ๋ํ๊ฑฐ๋ ์์์น ๋ชปํ ์์ง์์ ๋ฐฉํฅ ๊ฐ๊ฐ์ ์๊ฒ ํ๊ณ ๋ถํธํจ์ ์ค ์ ์์ต๋๋ค.
- ์ธ์ง ๋ถํ: ์ธ์ง ์ฅ์ ๊ฐ ์๋ ์ฌ์ฉ์์๊ฒ ๋๋ฌด ๋ง์ ์ ๋๋ฉ์ด์ ์ ์ฃผ์๋ฅผ ์ฐ๋งํ๊ฒ ํ๊ฑฐ๋ ํผ๋์ ์ค ์ ์์ต๋๋ค.
- ์ ์ด ๋ฌธ์ : ์ด๋ ์ฅ์ ๊ฐ ์๋ ์ฌ์ฉ์๋ ๊ด์ฑ์ด๋ ํ์ฑ ์์ฑ์ด ๊ฐํ ์ฝํ ์ธ ๋ฅผ ์ ์ดํ๊ธฐ ๋ ์ด๋ ค์ธ ์ ์์ต๋๋ค. ์์์น ๋ชปํ๊ฒ ์์ง์ด๊ฑฐ๋ ์ ํํ๊ฒ ๋ฉ์ถ๊ธฐ ์ด๋ ค์ธ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ชจ๋ฒ ์ฌ๋ก: `prefers-reduced-motion` ์กด์คํ๊ธฐ
`prefers-reduced-motion` ๋ฏธ๋์ด ์ฟผ๋ฆฌ๋ฅผ ์กด์คํ๋ ๊ฒ์ด ํ์์ ์
๋๋ค. ์ฌ์ฉ์๋ ์ด์ ์ฒด์ ํ๊ฒฝ ์ค์ ์์ ์ธํฐํ์ด์ค์ ์์ง์์ ์ค์ด๋๋ก ์ค์ ํ ์ ์์ต๋๋ค. ์น์ฌ์ดํธ๋ ์ด ์ค์ ์ ๊ฐ์งํ๊ณ ์ด๋ฌํ ์ฌ์ฉ์๋ฅผ ์ํด ๋ฌผ๋ฆฌ ๊ธฐ๋ฐ ์คํฌ๋กค ํจ๊ณผ๋ฅผ ๋นํ์ฑํํ๊ฑฐ๋ ํฌ๊ฒ ์ค์ฌ์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด:
@media (prefers-reduced-motion) {
/* ๋ฌผ๋ฆฌ ๊ธฐ๋ฐ ์คํฌ๋กค๋ง ๋นํ์ฑํ ๋๋ ๋จ์ํ */
.scrollable-element {
scroll-behavior: auto !important; /* ๋ถ๋๋ฌ์ด ์คํฌ๋กค๋ง ์ฌ์ ์ */
/* JS ๊ธฐ๋ฐ ๋ฌผ๋ฆฌ ํจ๊ณผ๋ ๋นํ์ฑํํ๊ฑฐ๋ ๋จ์ํํด์ผ ํจ */
}
}
๋ํ, ์ ๋๋ฉ์ด์ ์ ์ผ์ ์ค์งํ๊ฑฐ๋ ์ค์งํ๋ ๋ช ํํ ์ ์ด๋ฅผ ์ ๊ณตํ๊ฑฐ๋, ๋์์ ์ธ ์ ์ ๋ฒ์ ์ ์ฝํ ์ธ ๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด ํฌ์ฉ์ฑ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
4. ๊ณผ๋ํ ์์ง๋์ด๋ง: ์ธ์ ๋ฉ์ถฐ์ผ ํ ์ง ์๊ธฐ
๋ชจ๋ ์คํฌ๋กค ๊ฐ๋ฅ ์์์ ๊ณ ๊ธ ๋ฌผ๋ฆฌํ์ ์ ์ฉํ๋ ค๋ ์ ํน์ ๊ณผ๋ํ ์์ง๋์ด๋ง์ผ๋ก ์ด์ด์ง ์ ์์ต๋๋ค. ๋ชจ๋ ์ํธ์์ฉ์ ๋ณต์กํ ๋ฌผ๋ฆฌํ์ด ํ์ํ ๊ฒ์ ์๋๋๋ค. ๊ฐ๋จํ scroll-behavior: smooth;
๋ ๊ธฐ๋ณธ CSS scroll-snap
์ด ๋ง์ ์์์ ์ถฉ๋ถํ ์ ์์ต๋๋ค. ๊ฐ๋ฐ์๋ ์ฌ์ค์ ์ธ ์คํฌ๋กค ๋์ญํ์ด ์ง์ ์ผ๋ก UX๋ฅผ ํฅ์์ํค๋ ๊ณณ๊ณผ ๋ถํ์ํ ๋ณต์ก์ฑ๊ณผ ์ค๋ฒํค๋๋ฅผ ์ถ๊ฐํ ์ ์๋ ๊ณณ์ ์ ์คํ๊ฒ ์ ํํด์ผ ํฉ๋๋ค.
5. ํ์ต ๊ณก์ : ๊ฐ๋ฐ์์ ๋์์ด๋๋ฅผ ์ํด
์ ๊ตํ ๋ฌผ๋ฆฌ ์์ง, ํนํ ๋ง์ถคํ ์์ง์ ๊ตฌํํ๋ ค๋ฉด ์ํ์ ์๋ฆฌ(๋ฒกํฐ, ํ, ๊ฐ์ )์ ๊ณ ๊ธ ์๋ฐ์คํฌ๋ฆฝํธ ์ ๋๋ฉ์ด์ ๊ธฐ์ ์ ๋ํ ๋ ๊น์ ์ดํด๊ฐ ํ์ํฉ๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋๋ผ๋ ๊ทธ ๊ธฐ๋ฅ์ ๋ง์คํฐํ๊ณ ์ฌ๋ฐ๋ฅด๊ฒ ์กฐ์ ํ๋ ๋ฐ ์๊ฐ์ด ๊ฑธ๋ฆด ์ ์์ต๋๋ค. ์ด ํ์ต ๊ณก์ ์ ํ๋ก์ ํธ ์ผ์ ๊ณผ ํ ๊ธฐ์ ๊ฐ๋ฐ์ ๊ณ ๋ ค๋์ด์ผ ํฉ๋๋ค.
์คํฌ๋กค ๋์ญํ์ ๋ฏธ๋: ๋ฏธ๋ฆฌ ๋ณด๊ธฐ
์น ํ๋ซํผ์ ๋์์์ด ๊ฒฝ๊ณ๋ฅผ ํ๋ฌผ๊ณ ์์ผ๋ฉฐ, ์คํฌ๋กค ๋์ญํ์ ๋ฏธ๋๋ ๋์ฑ ๋ชฐ์ ๊ฐ ์๊ณ ์ง๊ด์ ์ธ ๊ฒฝํ์ ์ฝ์ํฉ๋๋ค.
1. ์น ํ์ค์ ์งํ: ๋ ๋ง์ ์ ์ธ์ ์ ์ด
๋ฏธ๋์ CSS ์ฌ์์ด๋ ๋ธ๋ผ์ฐ์ API๊ฐ ๋ฌผ๋ฆฌ ๊ธฐ๋ฐ ์คํฌ๋กค ์์ฑ์ ์ง์ ์ ์ํ๋ ๋ ์ ์ธ์ ์ธ ๋ฐฉ๋ฒ์ ์ ๊ณตํ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. ๋ธ๋ผ์ฐ์ ๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ต์ ํํ ์ ์๋ `scroll-inertia`, `scroll-friction` ๋๋ `scroll-elasticity`์ ๊ฐ์ CSS ์์ฑ์ ์์ํด ๋ณด์ธ์. ์ด๋ ์ด๋ฌํ ๊ณ ๊ธ ํจ๊ณผ์ ๋ํ ์ ๊ทผ์ ๋ฏผ์ฃผํํ์ฌ ๊ตฌํํ๊ธฐ ์ฝ๊ณ ์ ์ฌ์ ์ผ๋ก ๋ ์ฑ๋ฅ์ด ์ข๊ฒ ๋ง๋ค ๊ฒ์ ๋๋ค.
2. ์ ํฅ ๊ธฐ์ ๊ณผ์ ํตํฉ
์ฆ๊ฐ ํ์ค(AR) ๋ฐ ๊ฐ์ ํ์ค(VR) ๊ฒฝํ์ด ์น์์ ๋ ๋ณดํธํ๋จ์ ๋ฐ๋ผ(์: WebXR์ ํตํด), ์คํฌ๋กค ๋์ญํ์ 3D ํ๊ฒฝ ๋ด์ ํ์์ ์ ์ดํ๋๋ก ์งํํ ์ ์์ต๋๋ค. ๊ฐ์ ์ ํ ์นดํ๋ก๊ทธ๋ฅผ 'ํ๋ฆญ'ํ๊ฑฐ๋ ์ฌ์ค์ ์ธ ๋ฌผ๋ฆฌํ์ผ๋ก 3D ๋ชจ๋ธ์ ํจ๋ํ์ฌ ๊ณต๊ฐ ์ธํฐํ์ด์ค์์ ์ด๊ฐ์ ์ธ ๋๋์ ์ ๊ณตํ๋ ๊ฒ์ ์์ํด ๋ณด์ธ์.
3. ์ ์ํ ์คํฌ๋กค๋ง์ ์ํ AI ๋ฐ ๋จธ์ ๋ฌ๋
๋ฏธ๋์ ์คํฌ๋กค ์์ง์ ์ ์ฌ์ ์ผ๋ก AI๋ฅผ ํ์ฉํ์ฌ ์ฌ์ฉ์ ํจํด, ์ฅ์น ๊ธฐ๋ฅ ๋๋ ์ฃผ๋ณ ์กฐ๊ฑด์ ๋ฐ๋ผ ์คํฌ๋กค ๋์์ ๋์ ์ผ๋ก ์กฐ์ ํ ์ ์์ต๋๋ค. AI๋ ์ฌ์ฉ์์ ์ ํธ ์คํฌ๋กค ์๋๋ฅผ ํ์ตํ๊ฑฐ๋, ์ฌ์ฉ์๊ฐ ํ๋ค๋ฆฌ๋ ๊ธฐ์ฐจ์ ์๋์ง ์๋๋ฉด ๊ณ ์ ๋ ์ฑ ์์ ์๋์ง์ ๋ฐ๋ผ ๋ง์ฐฐ์ ์กฐ์ ํ์ฌ ์ง์ ์ผ๋ก ๊ฐ์ธํ๋ ๊ฒฝํ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
4. ๊ณ ๊ธ ์ ๋ ฅ ๋ฐฉ๋ฒ ๋ฐ ํ ํฑ ํผ๋๋ฐฑ
๊ณ ๊ธ ํธ๋ํจ๋ ๋ฐ ์ค๋งํธํฐ์ ํ ํฑ ํผ๋๋ฐฑ ๋ชจํฐ์ ๊ฐ์ ์งํํ๋ ์ ๋ ฅ ์ฅ์น๋ฅผ ํตํด ์คํฌ๋กค ๋์ญํ์ ๋์ฑ ์ง๊ด์ ์ด ๋ ์ ์์ต๋๋ค. ์ด๊ฐ ํผ๋๋ฐฑ์ ํตํด '๋ง์ฐฐ'์ด๋ '๋ฐ์ด์ค'๋ฅผ ๋๋ผ๋ฉฐ ์น ์ํธ์์ฉ์ ๋ ๋ค๋ฅธ ํ์ค๊ฐ๊ณผ ๋ชฐ์ ๊ฐ์ ๋ํ๋ ๊ฒ์ ์์ํด ๋ณด์ธ์.
๊ฒฐ๋ก : ๋ ์ด๊ฐ์ ์ธ ์น ๋ง๋ค๊ธฐ
๊ธฐ๋ณธ์ ์ด๊ณ ๊ธฐ๋ฅ์ ์ธ ์คํฌ๋กค๋ง์์ ์ ๊ตํ๊ณ ๋ฌผ๋ฆฌ ๊ธฐ๋ฐ์ ๋์ญํ์ผ๋ก์ ์ฌ์ ์ ์น ๊ฐ๋ฐ์ ๋ ๋์ ์ถ์ธ, ์ฆ ํฅ์๋ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ํ ๋์์๋ ์ถ๊ตฌ๋ฅผ ๋ฐ์ํฉ๋๋ค. CSS ์คํฌ๋กค ๋์ ๋ฌผ๋ฆฌ ์์ง์ ๋ค์ดํฐ๋ธ CSS ์์ฑ์ ์กฐํฉ์ ํตํด ๊ตฌํ๋๋ , ๊ณ ๊ธ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ํด ๊ตฌ๋๋๋ , ์ง๊ด์ ์ด๊ณ ๋งค๋ ฅ์ ์ด๋ฉฐ ์ง์ ์ผ๋ก ๋ฐ์์ ์ธ ์น ์ํธ์์ฉ์ ๋ง๋๋ ๊ฐ๋ ฅํ ๋๊ตฌ ๋ชจ์์ ์ ๊ณตํฉ๋๋ค.
๊ด์ฑ, ๋ง์ฐฐ, ํ์ฑ์ ํต์ฌ ์๋ฆฌ๋ฅผ ์ดํดํ๊ณ ์ฌ์ค์ฑ๊ณผ ์ฑ๋ฅ ๋ฐ ์ ๊ทผ์ฑ์ ์ ์คํ๊ฒ ๊ท ํ์ ๋ง์ถค์ผ๋ก์จ, ๊ฐ๋ฐ์๋ ์๋ฒฝํ๊ฒ ๊ธฐ๋ฅํ ๋ฟ๋ง ์๋๋ผ ์ ์ธ๊ณ ์ฌ์ฉ์๋ฅผ ์ฆ๊ฒ๊ฒ ํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์ต๋๋ค. ์น ํ์ค์ด ๊ณ์ ์งํํจ์ ๋ฐ๋ผ, ์ฐ๋ฆฌ๋ ์ด๋ฌํ ๋ณต์กํ ํ๋์ ๋ํ ๋ ๋ง์ ๋ค์ดํฐ๋ธ ์ง์์ ๊ธฐ๋ํ ์ ์์ผ๋ฉฐ, ์ด๋ ์ข ์ข ํํํ๊ณ ์ ํ๋ ๋ฌผ๋ฆฌ์ ์ธ๊ณ๋งํผ ์ด๊ฐ์ ์ด๊ณ ๋ฐ์์ ์ธ ์น์ ์ํ ๊ธธ์ ์ด์ด์ค ๊ฒ์ ๋๋ค.
์น ์ํธ์์ฉ์ ๋ฏธ๋๋ ์ ๋์ ์ด๊ณ , ์ญ๋์ ์ด๋ฉฐ, ์ฌ์คํ๊ฒ ๋ฌผ๋ฆฌ์ ์ ๋๋ค. ์คํฌ๋กค๋ง์ ๋ฌผ๋ฆฌํ์ ๋ฐ์๋ค์ด๊ณ ์น ํ๋ก์ ํธ๋ฅผ ์๋ก์ด ์ฐจ์์ผ๋ก ๋์ด์ฌ๋ฆด ์ค๋น๊ฐ ๋์ จ์ต๋๊น?