"๐ก ๋ณด๊ธฐ ์ข์ ๋ก์ด ๋จน๊ธฐ๋ ์ข๋ค"
์ฌ๋์ ์ค๊ฐ ์ค ๊ฐ์ฅ ๋ฐ๋ฌํ ๊ฐ๊ฐ์ด ์๊ฐ์ด๋ผ๊ณ ํ๋ค.
์ธ๋ถ ์๊ทน์ ๋ํ ๋ฐ์์ด ๊ฐ์ฅ ๋ฏผ๊ฐํ๊ณ ๋น ๋ฅธ ๊ฐ๊ฐ์ด๊ธฐ๋ํ๋ค๊ณ ํ๋ค.
์ ์๋ด์ด ๊ดํ ์๋ ๋ง์ด ์๋๋ฉฐ, ์์๋ ์๋ฆฌ๋ฅผ ์ทจ๋ฏธ๋ก ํ๋ฉด์ ํ๋ ์ดํ ์ด ์ค์ํ๋ค๊ณ ์๊ฐํ๋ค.
๊ธฐ๋ฅ๋ ์ค์ํ์ง๋ง, ๋์์ธ ๋ํ ๋ฌด์ํ ์ ์์ผ๋ฉฐ, ์ด ๋์์ธ์ด ์ฌ์ฉ์์๊ฒ ์ผ๋ง๋ ํธ๋ฆฌํ์ง ๋ํ ๊ต์ฅํ ์ค์ํ๋ค.
์ ์ฒด์ ์ธ ๋์์ธ์ ์ํด ์ปดํฌ๋ํธ๋ฅผ ํ๋์ฉ ์ ์ํ๊ฒ ๋ ํ ๋ฐ ์ด๋, ์ ์ฉํ Headless UI์ ๋ํด ์์๋ณด์.
๐ค Headless
Headless๋, ๋์์ธ ์์ด ๊ธฐ๋ฅ๋ง ์ ๊ณตํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
์ ๊ทผ์ฑ, ์ํ๊ด๋ฆฌ์ ๊ฐ์ ๋ณต์กํ ๋์์ ์ฒ๋ฆฌํ๋ฉด์ ๊ฐ๋ฐ์๊ฐ ์คํ์ผ์ ์์ ํ ์ ์ด ํ ์ ์๋ค.
`MUI`, `Bootstrap` ๋ฑ์ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๊ธฐ๋ณธ์ ์ธ ๋์์ธ์ด ์ ํ์ ธ์๊ณ ํด๋น ๋์์ธ์ ์ปค์คํ ํ๊ธฐ์๋ ์ด๋ ค์์ด ์๋ค.
๐ค ๊ทธ๋ผ HTML์ด ์ ๊ณตํ๋๊ฑด?
HTML์์ ์ ๊ณต๋๋ <input/>,<button/> ๋ํ ์ต์ํ์ ์คํ์ผ์ ๊ฐ์ง๋ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ด์ง๋ง ํ์ฅ ๋ฐ ์ปค์คํฐ๋ง์ด์ง์ด ์ด๋ ต๋ค.
๋ฌผ๋ก , ์ฌ์ฉ์๊ฐ ์ฝ๋๋ฅผ ์์ฑํ์ฌ ๋ง๋ค ์ ์์ง๋ง, ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ด ์ ๊ณต๋๋ฉด์ ๋์์ธ๋ ์ ์ฐํ๊ฒ ๋ณ๊ฒฝํ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋๋ฐ ๊ฑฐ๊ธฐ์ ์๊ฐ์ ์๊ธฐ์๋ ํ๋ก์ ํธ ์งํ์ ๋ฌ๋์ปค๋ธ๊ฐ ๋ฐ์ํ ๊ฒ์ผ๋ก ์์๋๋ค.
๋ฐ๋ฉด HeadlessUI ๊ด๋ จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ ๊ณตํ๋ `DropDown`์ด๋ค. ๊ตฌ๋ถ์ , ์๋ธ๋ฉ๋ด๋ฑ์ด ์ง์๋๋ฉด์ UI๋ํ ์ปค์คํ ์ ์์ ๋กญ๊ฒ ํ ์ ์๋ค.
Headless UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ HTML์์ ์ ๊ณตํ๋ ๊ธฐ๋ณธ์ ์ธ ํ๊ทธ ์ธ์๋ ๊ธฐ๋ณธ ํ๊ทธ๋ฅผ ์กฐํฉํ์ฌ ๋์ฑ ํ์ฅ๋๋ฉด์ ๋์์ธ์ ์์ ๋กญ๊ฒ ์์ ํ ์ ์๋ ์ปดํฌ๋ํธ๋ฅผ ์ ๊ณตํ๋ค.
๐ค ์ฌ์ฉํ๋ ์ด์ ๋?
1. ์์ ๋: Headless UI๋ ์คํ์ผ๋ง์ด ์์ด ์์ ๋กญ๊ฒ ์ปค์คํฐ๋ง์ด์ง ํ ์ ์๋ค. (tailwind css์ ์ ํธ๋ฆฌํฐ์ ์ ์ด์ธ๋ฆฐ๋ค.)
2. ์ ๊ทผ์ฑ: Headless UI๋ ์ ๊ทผ์ฑ์ ๊ณ ๋ คํ์ฌ ์ค๊ณ๋์๋ค. ๋ฐ๋ผ์ ์ ๊ทผ์ฑ์ ๋ํ ๊ฑฑ์ ์์ด ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
3. ์ฌ์ฌ์ฉ์ฑ: ๋ค์ํ ํ๋ก์ ํธ์์ ์ฌ์ฌ์ฉํ ์ ์๋ค. ์ด๋ ์ผ๊ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๊ณ , ๊ฐ ํ๋ก์ ํธ์ ๋์์ธ์ ๋ง๊ฒ ์กฐ์ ํ ์ ์๋ค. ์ด๋, ํ๋ก์ ํธ์ ๋์์ธ ์์คํ ๋ฐ ์คํ์ผ ๊ฐ์ด๋๋ฅผ ์ฝ๊ฒ ํตํฉํ ์ ์๋ค.
4. ์ฑ๋ฅ ์ต์ ํ: ๋ถํ์ํ ์คํ์ผ์ด๋ ์คํฌ๋ฆฝํธ๋ฅผ ํฌํจํ์ง ์์ ์ฑ๋ฅ ์ต์ ํ์ ์ ๋ฆฌํ๋ค.
5. ์ ์ฐ์ฑ: ๋ค์ํ ํ๋ ์์ํฌ(React, Vue.js)์ ํจ๊ป ์ฌ์ฉํ ์ ์๋ค.
6. ํ ์คํธ ์ฉ์ด์ฑ: ์ ๊ทผ์ฑ ํ ์คํธ๋ฅผ ๋ณด๋ค ์ฝ๊ฒ ์ํ ํ ์ ์์ผ๋ฉฐ, ๊ธฐ๋ฅ์ ๋ ๋ฆฝ์ ์ผ๋ก ํ ์คํธ ํ๋๋ฐ ์ ๋ฆฌํ๋ค.
๐ฅ์ธ๊ธฐ์๋ HeadlessUI ๋ผ์ด๋ธ๋ฌ๋ฆฌ
์์ฑ์๊ธฐ (2025. 01. 31 ๊ธฐ์ค)
โฆ Radix
Radix UI
Components, icons, and colors for building highโquality, accessible UI. Free and open-source.
www.radix-ui.com
โฆ Shadcn
shadcn/ui
Beautifully designed components that you can copy and paste into your apps. Accessible. Customizable. Open Source.
ui.shadcn.com
Shadcn๋ ์ฝ๋๋ฅผ ํํค์น๋ฉด radix๋ฅผ ์ฌ์ฉํ์ฌ ํ์ฅํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
๐ ๋ง์น๋ฉฐ
์์๋ ํ์ฌ ์ธ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ์ปดํฌ๋ํธ ๊ฐ๋ฐ ๋จ๊ณ์ ์๋๋ฐ ๊ฐ๋ฐํ๋ ๊ณผ์ ์์ `radix`์์ ์ ๊ณต๋๋ ์ปดํฌ๋ํธ๋ฅผ ์์ ํด์ผํด์ @github.com/radix-ui๋ฅผ์ฐธ๊ณ ํ๋ ค๋๋ฐ ํํค์น๋ ๊น์ ๋ธ๋ก๊ทธ์ ์์ฑํ์ฌ ๊ณต๋ถํด๋ณด๊ณ ์ ์์ฑํด๋ณด๋ คํ๋ค.
'Library > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ React / UI ] ํฉ์ฑ ์ปดํฌ๋ํธ(Compound-Component)์ ๋ํด ์์๋ณด์. (1) | 2025.01.31 |
---|---|
[ React / UI ] ์ปดํฌ๋ํธ ์ถ์ํ (2) | 2025.01.31 |
[ React / UI ] Atomic ๋์์ธ ํจํด์ ๋ํด ์์๋ณด์. (4) | 2024.09.21 |
[ React ] Custom Hook์ผ๋ก ๋ก์ง์ ์ฌ์ฌ์ฉํด๋ณด์. (0) | 2024.04.15 |
[ React ] useContext์ ๋ํด ์์๋ณด์. (2) | 2024.04.08 |