íë¡ ížìë ëììž ìì€í í í° ìí€í ì²ì ìì¹, 구í, êŽëЬ, íì¥ì ë€ë£šë ì¢ í© ê°ìŽë.
íë¡ ížìë ëììž ìì€í : íì¥ ê°ë¥í UI륌 ìí í í° ìí€í ì² ë§ì€í°íêž°
ì€ëë êžë³íë ëì§íž í겜ìì ë€ìí íë«íŒê³Œ ì íì ê±žì³ ìŒêŽëê³ íì¥ ê°ë¥í ì¬ì©ì ìží°íìŽì€(UI)륌 ì ì§íë ê²ì ë§€ì° ì€ìí©ëë€. ê²¬ê³ í í í° ìí€í ì²ë¥Œ êž°ë°ìŒë¡ 구ì¶ë ì 구조íë íë¡ ížìë ëììž ìì€í ì ìŽë¬í 목í륌 ë¬ì±íêž° ìí êž°ë°ì ì ê³µí©ëë€. ìŽ ì¢ í© ê°ìŽëììë í í° ìí€í ì²ì ë³µì¡ì±ì ê¹ìŽ íê³ ë€ìŽ ê·ž ìì¹, 구í ì ëµ, êŽëЬ êž°ë² ë° êžë¡ë² ì í늬ìŒìŽì ê°ë°ì ìí íì¥ ê³ ë € ì¬íì í구í©ëë€.
íë¡ ížìë ëììž ìì€í ìŽë 묎ììžê°?
íë¡ ížìë ëììž ìì€í ì ì¬ì¬ì© ê°ë¥í 컎í¬ëíž, ëììž ê°ìŽëëŒìž, ìœë© íì€ì 몚ììŒë¡, ì¡°ì§ ëŽì ë€ìí ì í늬ìŒìŽì 곌 íë«íŒ ì ë°ì ê±žì³ íµìŒëê³ ìŒêŽë ì¬ì©ì 겜íì ì ê³µí©ëë€. ìŽë 몚ë ëììž êŽë š ê²°ì ì ëí ëšìŒ ì§ì€ ê³µêžì(single source of truth) ìí ì íì¬ íšìšì±, íì ë° ì ì§ë³Žìì±ì ìŠì§ìíµëë€.
í í° ìí€í ì²ì ìí
í í° ìí€í ì²ë ëììž ìì€í ì ê·Œê°ì ìŽë£šë©°, ìì, íìŽí¬ê·žëíŒ, ê°ê²©, 귞늌ìì ê°ì ìê°ì ëììž ìì±ì 구조ì ìŽê³ íì¥ ê°ë¥í ë°©ììŒë¡ êŽëЬíë ë°©ë²ì ì ê³µí©ëë€. ëììž í í°ì 볞ì§ì ìŒë¡ ìŽë¬í ìì±ì ëíëŽë ìŽëŠìŽ ì§ì ë ê°ìŒë¡, ëììŽëì ê°ë°ìê° ì 첎 ìíê³ì ê±žì³ UIì ìê°ì ìŒêŽì±ì ìœê² ì ë°ìŽížíê³ ì ì§í ì ìëë¡ í©ëë€. ëììžì ì ìŽíë ë³ìëŒê³ ìê°í멎 ë©ëë€.
ê²¬ê³ í í í° ìí€í ì²ì ìŽì :
- ìŒêŽì±: 몚ë ì í곌 íë«íŒìì íµìŒë 룩ì€íì 볎ì¥í©ëë€.
- íì¥ì±: ëììž ìì€í ìŽ ë°ì íšì ë°ëŒ UI륌 ì ë°ìŽížíê³ ì ì§íë 곌ì ì ëšìíí©ëë€.
- íšìšì±: ì€ë³µëë ìœëì ëììž ìì ì ì€ì¬ ìê°ê³Œ 늬ìì€ë¥Œ ì ìœí©ëë€.
- íì : ëììŽëì ê°ë°ì ê°ì ìíí íì ì ìŽì§í©ëë€.
- í ë§ ì ì©: ë€ìí ëžëëë ì¬ì©ì ì ížëì ë§ë ì¬ë¬ í ë§ë¥Œ ìœê² ìì±í ì ììµëë€.
- ì ê·Œì±: ëª ìë¹ ë° êž°í ì ê·Œì± êŽë š ëììž ìì±ì ìœê² ì ìŽíì¬ ì ê·Œì±ì ìŠì§ìíµëë€.
í í° ìí€í ì²ì ìì¹
ì±ê³µì ìž í í° ìí€í ì²ë ê·ž ì€ê³ì 구íì ìëŽíë íµì¬ ìì¹ ì§í© ìì 구ì¶ë©ëë€. ìŽë¬í ìì¹ë€ì ìì€í ìŽ íì¥ ê°ë¥íê³ ì ì§ë³Žì ê°ë¥íë©° 믞ëì ë³íì ì ìí ì ìëë¡ ë³Žì¥í©ëë€.
1. ì¶ìí
ëììž ìì±ì ì¬ì¬ì© ê°ë¥í í í°ìŒë¡ ì¶ìíí©ëë€. ìì ê°ìŽë êžêŒŽ í¬êž°ë¥Œ 컎í¬ëížì ì§ì íëìœë©íë ëì , ìŽë¬í ê°ì ëíëŽë í í°ì ì ìí©ëë€. ìŽë¥Œ íµíŽ ì»Ží¬ëíž ì첎륌 ìì íì§ ìê³ ë í í°ì Ʞ볞ê°ì ë³ê²œí ì ììµëë€.
ìì: Ʞ볞 ë²íŒì 배겜ììŒë¡ í¥ì€ ìœë `#007bff`륌 ì§ì ì¬ì©íë ëì , `color.primary`ëŒë í í°ì ì ìíê³ íŽë¹ í¥ì€ ìœë륌 ê·ž í í°ì í ë¹í©ëë€. ê·žë° ë€ì ë²íŒ 컎í¬ëížì ì€íìŒì `color.primary` í í°ì ì¬ì©í©ëë€.
2. ìë§ší± ë€ìŽë°
í¹ì ê°ë³Žë€ë í í°ì 목ì ìŽë ì믞륌 ëª ííê² ì€ëª íë ìë§ší±(ìë¯žë¡ ì ) ìŽëŠì ì¬ì©í©ëë€. ìŽë ê² í멎 ê° í í°ì ìí ì ìŽíŽíê³ íìì ë°ëŒ ê°ì ì ë°ìŽížíêž°ê° ë ì¬ìì§ëë€.
ìì: í í° ìŽëŠì `button-color`ë¡ ì§ë ëì , `color.button.primary`ë¡ ì§ìŽ ëììž ìì€í ëŽìì ê·žê²ì í¹ì 목ì (Ʞ볞 ë²íŒ ìì)곌 ê³ìžµì êŽê³ë¥Œ ëíë ëë€.
3. ê³ìžµ 구조 ë° ë²ì£Œí
í í°ì ëª íí ê³ìžµ êµ¬ì¡°ë¡ ì 늬íê³ ì í곌 목ì ì ë°ëŒ ë²ì£Œíí©ëë€. ìŽë ê² í멎 í¹í ëê·ëªš ëììž ìì€í ìì í í°ì ì°Ÿê³ êŽëЬíêž°ê° ë ì¬ìì§ëë€.
ìì: ìì í í°ì `color.primary`, `color.secondary`, `color.accent`, `color.background`ì ê°ì 칎í ê³ ëŠ¬ë¡ ê·žë£¹íí©ëë€. ê° ì¹Ží ê³ ëŠ¬ ëŽììë `color.primary.default`, `color.primary.hover`, `color.primary.active`ì ê°ìŽ í¹ì ì©ëì ë°ëŒ í í°ì ì¶ê°ë¡ 구ì±í©ëë€.
4. íë«íŒ ë 늜ì±
ëììž í í°ì íë«íŒì 구ì ë°ì§ ìììŒ í©ëë€. ìŠ, ì¹, iOS, ìëë¡ìŽë ë± ë€ìí íë«íŒê³Œ êž°ì ìì ì¬ì©ë ì ììŽìŒ í©ëë€. ìŽë ìŒêŽì±ì 볎ì¥íê³ ê° íë«íŒë³ë¡ ë³ëì í í° ìžížë¥Œ ì ì§í íìì±ì ì€ì¬ì€ëë€.
ìì: JSONìŽë YAML곌 ê°ì íìì ë€ìí íë«íŒê³Œ íë¡ê·žëë° ìžìŽìì ìœê² íì±í ì ììŒë¯ë¡ ëììž í í°ì ì ì¥íë ë° ì¬ì©í©ëë€.
5. ë²ì êŽëЬ
ëììž í í°ì ëí ë²ì êŽëЬ ìì€í ì 구ííì¬ ë³ê²œ ì¬íì ì¶ì íê³ ì ë°ìŽížê° 몚ë ì í늬ìŒìŽì 곌 íë«íŒì ìŒêŽëê² ì ì©ëëë¡ í©ëë€. ìŽë íê·ë¥Œ ë°©ì§íê³ ìì ì ìž ëììž ìì€í ì ì ì§íë ë° ëììŽ ë©ëë€.
ìì: Git곌 ê°ì ë²ì êŽëЬ ìì€í ì ì¬ì©íì¬ ëììž í í° íìŒì êŽëЬí©ëë€. ê° ì»€ë°ì í í°ì ì ë²ì ì ëíëŽë¯ë¡ íìí ë ìŽì ë²ì ìŒë¡ ìœê² ëë늎 ì ììµëë€.
í í° ìí€í ì² êµ¬ííêž°
í í° ìí€í ì²ë¥Œ 구ííë ê²ì í í° êµ¬ì¡°ë¥Œ ì ìíë ê²ë¶í° ìœëë² ìŽì€ì ëììž ë구ì íµí©íë ê²ê¹ì§ ëª ê°ì§ 죌ì ëšê³ë¥Œ í¬íší©ëë€.
1. í í° êµ¬ì¡° ì ìíêž°
첫 ë²ì§ž ëšê³ë ëììž í í°ì 구조륌 ì ìíë ê²ì ëë€. ìŽë í í°ííŽìŒ í ë€ìí ì íì ëììž ìì±ì ìë³íê³ ìŽë¥Œ ì 늬íêž° ìí ê³ìžµì 구조륌 ë§ëë ê²ì í¬íší©ëë€.
ìŒë°ì ìž í í° ì í:
- ìì: 배겜ì, í ì€íž ìì, í ë늬 ìì ë± UIìì ì¬ì©ëë ììì ëíë ëë€.
- íìŽí¬ê·žëíŒ: êžêŒŽ ê³ìŽ, êžêŒŽ í¬êž°, êžêŒŽ ëê», ì€ ëìŽë¥Œ ëíë ëë€.
- ê°ê²©: ìì ê°ì ë§ì§, íšë©, ê°ê²©ì ëíë ëë€.
- í ë늬 ë°ê²œ: 몚ì늬ì ë¥ê·Œ ì ë륌 ëíë ëë€.
- ë°ì€ ìëì°: ììê° ë늬ì°ë 귞늌ì륌 ëíë ëë€.
- Z-ìžë±ì€: ììì ìì ìì륌 ëíë ëë€.
- í¬ëª ë: ììì í¬ëª ë륌 ëíë ëë€.
- ì§ì ìê°: ížëì§ì ìŽë ì ëë©ìŽì ì êžžìŽë¥Œ ëíë ëë€.
ìì í í° êµ¬ì¡° (JSON):
{
"color": {
"primary": {
"default": "#007bff",
"hover": "#0069d9",
"active": "#0056b3"
},
"secondary": {
"default": "#6c757d",
"hover": "#5a6268",
"active": "#495057"
},
"background": {
"default": "#f8f9fa",
"light": "#ffffff"
}
},
"typography": {
"fontFamily": "'Roboto', sans-serif",
"fontSize": {
"base": "16px",
"h1": "32px",
"h2": "24px"
},
"fontWeight": {
"regular": "400",
"bold": "700"
}
},
"spacing": {
"small": "8px",
"medium": "16px",
"large": "24px"
},
"borderRadius": {
"small": "4px",
"medium": "8px",
"large": "12px"
}
}
2. í í° íì ì ííêž°
ëììž ë구 ë° ìœëë² ìŽì€ì ížíëë í í° íìì ì íí©ëë€. ìŒë°ì ìž íììŒë¡ë JSON, YAML, CSS ë³ìê° ììµëë€.
- JSON (JavaScript Object Notation): íë¡ê·žëë° ìžìŽì ëììž ë구ìì ë늬 ì§ìëë 겜ë ë°ìŽí° êµí íìì ëë€.
- YAML (YAML Ain't Markup Language): êµ¬ì± íìŒì ì죌 ì¬ì©ëë ì¬ëìŽ ìœêž° ì¬ìŽ ë°ìŽí° ì§ë ¬í íìì ëë€.
- CSS ë³ì (ì¬ì©ì ì§ì ìì±): CSS ì€íìŒìížìì ì§ì ì¬ì©í ì ìë ë€ìŽí°ëž CSS ë³ìì ëë€.
íì ì í ì ê³ ë € ì¬í:
- ì¬ì© ì©ìŽì±: ìŽ íììŒë¡ í í°ì ìœê³ , ì°ê³ , ì ì§ êŽëЬíêž°ê° ìŒë§ë ì¬ìŽê°?
- íë«íŒ ì§ì: ëììž ë구, ê°ë° íë ììí¬, ëì íë«íŒìì íŽë¹ íìì ì§ìíëê°?
- ì±ë¥: í¹í ë§ì ìì í í°ì ì²ëЬí ë íìì ì±ë¥ìì ìí¥ìŽ ìëê°?
- ë구 ì§ì: ìŽ íììŒë¡ í í°ì êŽëЬíê³ ë³ííë ë° ëììŽ ëë ëêµ¬ê° ìëê°?
3. ìœëì í í° êµ¬ííêž°
CSS ì€íìŒìížì JavaScript 컎í¬ëížìì ëììž í í°ì ì°žì¡°íì¬ ìœëë² ìŽì€ì íµí©í©ëë€. ìŽë¥Œ íµíŽ í í° ê°ì ë³ê²œíì¬ ìê°ì ëììžì ìœê² ì ë°ìŽíží ì ììµëë€.
ìì (CSS ë³ì):
:root {
--color-primary-default: #007bff;
--font-size-base: 16px;
--spacing-medium: 16px;
}
.button {
background-color: var(--color-primary-default);
font-size: var(--font-size-base);
padding: var(--spacing-medium);
}
ìì (JavaScript):
const primaryColor = getComputedStyle(document.documentElement).getPropertyValue('--color-primary-default');
const button = document.querySelector('.button');
button.style.backgroundColor = primaryColor;
4. ëììž ë구ì íµí©íêž°
ëììŽëê° ê°ë°ìì ëìŒí ê°ì ì¬ì©íëë¡ ëììž í í°ì ëììž ë구(ì: Figma, Sketch, Adobe XD)ì ì°ê²°í©ëë€. ìŽë ëììžê³Œ ê°ë° ê°ì 격찚륌 íŽìíê³ ë³Žë€ ìŒêŽë ì¬ì©ì 겜íì ìŠì§ìí€ë ë° ëììŽ ë©ëë€.
ìŒë°ì ìž íµí© ë°©ë²:
- íë¬ê·žìž: ëììž ë구ì ìœëë² ìŽì€ ê°ì ëììž í í°ì ê°ì žì€ê³ ëŽë³ŽëŒ ì ìë íë¬ê·žìžì ì¬ì©í©ëë€.
- ê³µì ëŒìŽëžë¬ëЬ: ëììž í í°ê³Œ 컎í¬ëížë¥Œ í¬íšíë ê³µì ëŒìŽëžë¬ëŠ¬ë¥Œ ë§ë€ìŽ ëììŽëì ê°ë°ìê° ëìŒí 늬ìì€ë¥Œ ì¬ì©íëë¡ í©ëë€.
- ì€íìŒ ê°ìŽë: ëììž í í°ê³Œ íŽë¹ ê°ì íìíë ì€íìŒ ê°ìŽë륌 ìì±íì¬ ëììŽëì ê°ë°ììê² ìê°ì 찞조륌 ì ê³µí©ëë€.
í í° ìí€í ì² êŽëЬíêž°
í í° ìí€í ì²ë¥Œ êŽëЬíë ê²ì ì¡°ì§ ì 첎ìì í í°ìŽ ìŒêŽëê² ì ë°ìŽíž, ì ì§ ë° ì¬ì©ëëë¡ ë³Žì¥íë íë¡ìžì€ì ë구륌 구ì¶íë ê²ì í¬íší©ëë€.
1. ëììž ìì€í ê±°ë²ëì€
ëììž ìì€í 곌 ê·ž í í° ìí€í ì²ë¥Œ êŽëЬíë ìí 곌 ì± ìì ì ìíë ëììž ìì€í ê±°ë²ëì€ ëªšëžì ì늜í©ëë€. ìŽë ì ë°ìŽížê° ìŒêŽëê³ íµì ë ë°©ììŒë¡ ìŽë£šìŽì§ëë¡ ë³Žì¥íë ë° ëììŽ ë©ëë€.
죌ì ìí :
- ëììž ìì€í 늬ë: ëììž ìì€í 곌 ê·ž í í° ìí€í ì²ë¥Œ ìŽêŽí©ëë€.
- ëììŽë: ëììž ìì€í ì êž°ì¬íê³ ìì ì ëììž í í°ì ì¬ì©í©ëë€.
- ê°ë°ì: ìœëë² ìŽì€ì ëììž í í°ì 구íí©ëë€.
- ìŽíŽêŽê³ì: íŒëë°±ì ì ê³µíê³ ëììž ìì€í ìŽ ì¡°ì§ì ì구륌 충족íëì§ íìží©ëë€.
2. ë²ì êŽëЬ ìì€í
ë²ì êŽëЬ ìì€í (ì: Git)ì ì¬ì©íì¬ ëììž í í°ì ë³ê²œ ì¬íì ì¶ì íê³ ì ë°ìŽížê° 몚ë ì í늬ìŒìŽì 곌 íë«íŒì ìŒêŽëê² ì ì©ëëë¡ í©ëë€. ìŽë¥Œ íµíŽ íìí ë ìŽì ë²ì ìŒë¡ ìœê² ëë늎 ì ììŒë©° ë€ë¥ž ëììŽë ë° ê°ë°ìì íšê³Œì ìŒë¡ íì í ì ììµëë€.
3. 묞ìí
ê° í í°ì ì€ëª , 목ì , ì¬ì©ë²ì í¬íšíì¬ ëììž í í°ì ëí í¬êŽì ìž ë¬žì륌 ìì±í©ëë€. ìŽë ëììŽëì ê°ë°ìê° í í°ì ì¬ë°ë¥Žê² ì¬ì©íë ë°©ë²ì ìŽíŽíë ë° ëììŽ ë©ëë€.
묞ìì í¬íšëìŽìŒ í ëŽì©:
- í í° ìŽëŠ: í í°ì ìë§ší± ìŽëŠ.
- í í° ê°: í í°ì íì¬ ê°.
- ì€ëª : í í°ì 목ì 곌 ì¬ì©ë²ì ëí ëª ííê³ ê°ê²°í ì€ëª .
- ìì: 컎í¬ëížë ëììžìì í í°ìŽ ì¬ì©ëë ë°©ìì ì.
4. ìëíë í ì€íž
ëììž í í°ìŽ ì¬ë°ë¥Žê² ì¬ì©ëê³ ì ë°ìŽížê° ìŽë í íê·ë ì ë°íì§ ìëë¡ ë³Žì¥íêž° ìíŽ ìëíë í ì€ížë¥Œ 구íí©ëë€. ìŽë ëììž ìì€í ì ìŒêŽì±ê³Œ íì§ì ì ì§íë ë° ëììŽ ë©ëë€.
í ì€íž ì í:
- ìê°ì íê· í ì€íž: í í° ì ë°ìŽíž ì íì 컎í¬ëíž ì€í¬ëаì·ì ë¹êµíì¬ ìê°ì ë³í륌 ê°ì§í©ëë€.
- ëšì í ì€íž: ìœëë² ìŽì€ìì í í°ìŽ ì¬ë°ë¥Žê² ì¬ì©ëê³ ìëì§ íìží©ëë€.
- ì ê·Œì± í ì€íž: í í° ì ë°ìŽížê° ì ê·Œì±ì ë¶ì ì ìž ìí¥ì 믞ì¹ì§ ìëì§ íìží©ëë€.
í í° ìí€í ì² íì¥íêž°
ëììž ìì€í ìŽ ì±ì¥íê³ ë°ì íšì ë°ëŒ ì¡°ì§ì ìŠê°íë ì구륌 충족ìí€êž° ìíŽ í í° ìí€í ì²ë¥Œ íì¥íë ê²ìŽ ì€ìí©ëë€. ìŽë ë§ì ìì í í°ì êŽëЬíê³ , ì¬ë¬ í ë§ë¥Œ ì§ìíë©°, ë€ìí íë«íŒìì ìŒêŽì±ì 볎ì¥íêž° ìí ì ëµì ì±ííë ê²ì í¬íší©ëë€.
1. ìë§ší± í í°
`color.brand.primary` ëë `spacing.component.padding`곌 ê°ìŽ ë ëì ìì€ì ê°ë ì ëíëŽë ìë§ší± í í°ì ëì í©ëë€. ìŽë¬í í í°ì ë 구첎ì ìž êž°ë³ž(primitive) í í°ì ë§€íë ì ììŒë¯ë¡ ê°ë³ 컎í¬ëížë¥Œ ìì íì§ ìê³ ë ëììž ìì€í ì ì ë°ì ìž ë£©ì€íì ìœê² ë³ê²œí ì ììµëë€.
ìì:
// ìë§ší± í í°
"color": {
"brand": {
"primary": "{color.blue.500}"
}
}
// Ʞ볞 í í°
"color": {
"blue": {
"500": "#007bff"
}
}
2. í ë§ ì ì©
ëììž ìì€í ì ë€ìí ìê°ì ì€íìŒ ê°ì ìœê² ì íí ì ìë í ë§ ìì€í ì 구íí©ëë€. ìŽë ë€ìí ëžëë, ì¬ì©ì ì ížë ëë ì ê·Œì± ì구ì ë§ë ë€ë¥ž í ë§ë¥Œ ë§ëë ë° ì¬ì©ë ì ììµëë€.
í ë§ ì ì© ì ëµ:
- CSS ë³ì: CSS ë³ì륌 ì¬ì©íì¬ í ë§ë³ ê°ì ì ìí©ëë€.
- í í° ì¬ì ì: í ë§ë³ í í°ìŽ êž°ë³ž í í° ê°ì ì¬ì ìíëë¡ íì©í©ëë€.
- ëììž ë구 íë¬ê·žìž: ëììž ë구 íë¬ê·žìžì ì¬ì©íì¬ í ë§ë¥Œ ë§ë€ê³ êŽëЬí©ëë€.
3. ì€íìŒ ëì ë늬
ì€íìŒ ëì ë늬륌 ì¬ì©íì¬ ë€ìí íë«íŒê³Œ íìì ê±žì³ ëììž í í°ì êŽëЬíê³ ë³íí©ëë€. ì€íìŒ ëì ë늬륌 ì¬ì©í멎 ëšìŒ ì§ì€ ê³µêžììì í í°ì ì ìí ë€ì ê° íë«íŒê³Œ ë구ì íìí íìŒì ìëìŒë¡ ìì±í ì ììµëë€.
ìì ì€íìŒ ëì ë늬 ë구: Amazonì Style Dictionary
ì€íìŒ ëì ë늬ì ìŽì :
- ì€ì ì§ì€ì êŽëЬ: 몚ë ëììž í í°ì í ê³³ìì êŽëЬí©ëë€.
- íë«íŒ ë 늜ì±: ë€ìí íë«íŒê³Œ íìì ë§ë í í°ì ìì±í©ëë€.
- ìëí: ëììž í í°ì ì ë°ìŽížíê³ ë°°í¬íë íë¡ìžì€ë¥Œ ìëíí©ëë€.
4. 컎í¬ëíž ëŒìŽëžë¬ëЬ
ëììž í í°ì ì¬ì©íì¬ ì»Ží¬ëížì ì€íìŒì ì§ì íë 컎í¬ëíž ëŒìŽëžë¬ëŠ¬ë¥Œ ê°ë°í©ëë€. ìŽë 몚ë 컎í¬ëížê° ëììž ìì€í 곌 ìŒêŽëëë¡ ë³Žì¥íê³ í í° ì ë°ìŽížê° 컎í¬ëížì ìëìŒë¡ ë°ìëëë¡ í©ëë€.
ìì 컎í¬ëíž ëŒìŽëžë¬ëЬ íë ììí¬:
- React: ì¬ì©ì ìží°íìŽì€ë¥Œ 구ì¶íêž° ìí ìžêž° ìë JavaScript ëŒìŽëžë¬ëЬì ëë€.
- Vue.js: ì¬ì©ì ìží°íìŽì€ë¥Œ 구ì¶íêž° ìí ì ì§ì ìž JavaScript íë ììí¬ì ëë€.
- Angular: ì¹ ì í늬ìŒìŽì ì 구ì¶íêž° ìí í¬êŽì ìž íë«íŒì ëë€.
êžë¡ë² ê³ ë € ì¬í
êžë¡ë² ê³ ê°ì ìí í í° ìí€í ì²ë¥Œ ì€ê³íê³ êµ¬íí ëë íì§í, ì ê·Œì±, 묞íì ì°šìŽì ê°ì ìì륌 ê³ ë €íë ê²ìŽ ì€ìí©ëë€. ìŽë¬í ê³ ë € ì¬íì ëììž ìì€í ìŽ ì ìžê³ 몚ë ì¬ì©ììê² í¬ì©ì ìŽê³ ì ê·Œ ê°ë¥íëë¡ ë³Žì¥íë ë° ëììŽ ë ì ììµëë€.
1. íì§í
í ì€íž ë°©í¥, êžêŒŽ ê³ìŽ ë° êž°í ìžìŽë³ ëììž ìì±ì êŽëЬíêž° ìíŽ ëììž í í°ì ì¬ì©íì¬ íì§í륌 ì§ìí©ëë€. ìŽë¥Œ íµíŽ ëììž ìì€í ì ë€ìí ìžìŽì 묞íì ìœê² ì ì©í ì ììµëë€.
ìì: ë€ë¥ž 묞ì ì§í©(ì: ëŒíŽìŽ, í€ëŠŽìŽ, ì€êµìŽ)ì ì¬ì©íë ìžìŽì ëíŽ ë€ë¥ž êžêŒŽ ê³ìŽì ì¬ì©í©ëë€.
2. ì ê·Œì±
ëª ìë¹, êžêŒŽ í¬êž° ë° êž°í ì ê·Œì± êŽë š ëììž ìì±ì êŽëЬíë ë° ëììž í í°ì ì¬ì©íì¬ ì¥ì ê° ìë ì¬ì©ìë ëììž í í°ì ì ê·Œí ì ìëë¡ ë³Žì¥í©ëë€. ìŽë 몚ë ì¬ëìê² ë í¬ì©ì ìž ì¬ì©ì 겜íì ë§ëë ë° ëììŽ ë©ëë€.
ì ê·Œì± ê°ìŽëëŒìž:
- WCAG (ì¹ ìœí ìž ì ê·Œì± ê°ìŽëëŒìž): ì¹ ìœí ìž ë¥Œ ë ì ê·Œ ê°ë¥íê² ë§ë€êž° ìí êµì íì€ ì§í©ì ëë€.
- ARIA (Accessible Rich Internet Applications): ì¹ ìœí ìž ë¥Œ 볎조 êž°ì ì ë ì ê·Œ ê°ë¥íê² ë§ëë ë° ì¬ì©í ì ìë ìì± ì§í©ì ëë€.
3. 묞íì ì°šìŽ
ëììž ì ížëì ìê°ì 컀뮀ëìŒìŽì ììì 묞íì ì°šìŽë¥Œ ìžìíŽìŒ í©ëë€. ë 묞íì ìŒë¡ êŽë šì± ìë ì¬ì©ì 겜íì ë§ë€êž° ìíŽ ë€ë¥ž ì§ìì ëíŽ ë€ë¥ž ìì íë íž, ìŽë¯žì§, ë ìŽììì ì¬ì©íë ê²ì ê³ ë €íììì€. ì륌 ë€ìŽ, ììì ë€ë¥ž 묞íìì ë€ë¥ž ì믞륌 ê°ì§ ì ììŒë¯ë¡ ìì ì íì 묞íì íšì륌 ì°êµ¬íë ê²ìŽ ì€ìí©ëë€.
ê²°ë¡
ì ì ìë í í° ìí€í ì²ë íì¥ ê°ë¥íê³ , ì ì§ë³Žì ê°ë¥íë©°, ìŒêŽë íë¡ ížìë ëììž ìì€í ì 구ì¶íë ë° íìì ì ëë€. ìŽ ê°ìŽëìì ì€ëª í ìì¹ê³Œ ì ëµì ë°ë¥Žë©Ž ì¡°ì§ì ì구륌 충족íê³ ëªšë íë«íŒê³Œ ì íìì ì°ìí ì¬ì©ì 겜íì ì ê³µíë í í° ìí€í ì²ë¥Œ ë§ë€ ì ììµëë€. ëììž ìì± ì¶ìíë¶í° í í° ë²ì êŽëЬ ë° ëììž ë구ìì íµí©ì ìŽë¥Žêž°ê¹ì§, í í° ìí€í ì²ë¥Œ ë§ì€í°íë ê²ì íë¡ ížìë ëììž ìì€í ì ì ì¬ë ¥ì ìµëí ë°ííê³ êžë¡ë²íë ìžê³ìì ì¥êž°ì ìž ì±ê³µì 볎ì¥íë ìŽì ì ëë€.