π λͺ©μ°¨
- νμ
ꡬ쑰 κ°μ
- νμ
λ°©μλ³ ν΄κ²°μ
2-1. νΌλΈλ¦¬μ
λ
립 μμ
λ°©μ
2-2. νΌλΈλ¦¬μ
κ° λ¦¬μ‘νΈ νκ²½μμ μμ
2-3. νμ΄λΈλ¦¬λ λ°©μ (μΆμ²)
- κ° ν΄κ²°μμ λ¬Έμ μ λΆμ
- κ°μ₯ λμ λ°©λ² μ μ
- μμ
μμ λ° μ±
μ λΆλ¦¬
- νμ
κ°μ΄λλΌμΈ
- νΌλΈλ¦¬μ
μ μν νν λ°©μ
- νΌλΈλ¦¬μ
μμ
μμΉ
- JSκ° λ§μ΄ νμν μ»΄ν¬λνΈμ λν λμ μ λ΅
1. νμ
ꡬ쑰 κ°μ
| κ΅¬λΆ |
μ€λͺ
|
| νλ‘μ νΈ κ΅¬μ‘° |
νΌλΈλ¦¬μ
μ νλ‘ νΈκ° λ€λ₯Έ νμΌλ‘ λΆλ¦¬λμ΄ μμ |
| λͺ©μ |
λΉ λ₯΄κ³ μ νν UI ꡬν + κΈ°λ₯/μ μ§λ³΄μ ν¨μ¨μ± ν보 |
| μ μ |
νΌλΈλ¦¬μ
λ HTML/CSS μ€μ¬, JSλ νλ‘ νΈ λ΄λΉ |
2. νμ
λ°©μλ³ ν΄κ²°μ
2-1. νΌλΈλ¦¬μ
κ° jQuery κΈ°λ°μΌλ‘ λ
립 μμ
ν νλ‘ νΈκ° λ§μ΄κ·Έλ μ΄μ
| νλͺ© |
μ€λͺ
|
| νΌλΈλ¦¬μ
μμ
|
HTML/CSS/jQuery μμ
|
| νλ‘ νΈ μμ
|
λ§ν¬μ
, μ€νμΌ, JS λͺ¨λ Reactλ‘ λ³ν |
2-2. νΌλΈλ¦¬μ
κ° React νλ‘μ νΈμμ JSX/CSSλ‘ μ§μ μμ
| νλͺ© |
μ€λͺ
|
| νΌλΈλ¦¬μ
μμ
|
JSX ꡬ쑰 λ° CSS μμ± |
| νλ‘ νΈ μμ
|
κΈ°λ₯ 보κ°, μν κ΄λ¦¬, ꡬ쑰 리ν©ν λ§ |
2-3. νμ΄λΈλ¦¬λ λ°©μ (β
μΆμ² λ°©μ)
| νλͺ© |
μ€λͺ
|
| νΌλΈλ¦¬μ
μμ
|
μ μ μΈ HTML/CSSλ§ μμ±, μν class νμ© |
| νλ‘ νΈ μμ
|
JSX λ³ν, μν λ°μΈλ©, λΌμ΄λΈλ¬λ¦¬ μ°λ, λ‘μ§ κ΅¬ν |
3. κ° ν΄κ²°μμ λ¬Έμ μ λΆμ
| λ°©μ |
μ£Όμ λ¬Έμ μ μμ½ |
| 2-1 |
λ§μ΄κ·Έλ μ΄μ
곡μ νΌ, λΌμ΄λΈλ¬λ¦¬ μΆ©λ, μ¬μμ
λ§μ |
| 2-2 |
React λ―ΈμμΌλ‘ μΈν 리ν©ν λ§ νμ, μ½λ νμ§ λΆκ· ν |
| 2-3 (μΆμ²) |
νΌλΈλ¦¬μ
μκ² JS μ νμ΄ μμ§λ§, νμ
ν¨μ¨/νμ§ μ΅μ ν κ°λ₯ |
4. κ°μ₯ λμ λ°©λ² μ μ
β
νμ΄λΈλ¦¬λ λ°©μ
- νΌλΈλ¦¬μ
λ λ§ν¬μ
κ³Ό μ€νμΌμ μ§μ€
- νλ‘ νΈλ κΈ°λ₯κ³Ό ꡬ쑰λ₯Ό μ μ΄
β λΆμ
ν¨μ¨ μ΅μ ν + μ μ§λ³΄μ μ 리
5. μμ
μμ λ° μ±
μ λΆλ¦¬
| νλͺ© |
νΌλΈλ¦¬μ
μμ
λ²μ |
νλ‘ νΈ μμ
λ²μ |
| λ§ν¬μ
|
μ μ ꡬ쑰 μμ± (div, ul, li, class λ±) |
JSX λ³ν, ꡬ쑰 λΆλ¦¬ |
| μ€νμΌλ§ |
SCSS/CSS μμ±, μν class λͺ
μ (.active, .open) |
λͺ¨λν, μ€νμΌ μ΅μ ν |
| μν νν |
μν class λ° μ£ΌμμΌλ‘ μν κ΅¬λΆ |
useState, useEffectλ‘ μν μ μ΄ |
| λΌμ΄λΈλ¬λ¦¬ μ¬μ© |
β μ¬μ© μ ν¨ (μ: Swiper λ±) |
β
Reactμ© λΌμ΄λΈλ¬λ¦¬ μ°λ |
| DOM μ΄λ²€νΈ/λ‘μ§ |
β jQuery, addClass λ± κΈμ§ |
β
μ΄λ²€νΈ νΈλ€λ¬, λλκ·Έ λ± μ§μ ꡬν |
| ν
μ€νΈ λ° QA κΈ°μ€ |
μκ°μ νμΈ (λμμΈ κΈ°μ€) |
κΈ°λ₯ ν
μ€νΈ λ° Storybook λ± |
6. νμ
κ°μ΄λλΌμΈ
νΌλΈλ¦¬μ
κ°μ΄λ
- μ μ μΈ HTML/CSSλ§ μμ±
- JS λ‘μ§μ μμ± κΈμ§ (jQuery ν¬ν¨)
.active, .open, .hidden λ± μν class λͺ
μ
- μνλ³ λ§ν¬μ
μ λΆλ¦¬νκ±°λ μ£ΌμμΌλ‘ νν
- λ€μ΄λ° 컨벀μ
μ€μ (μ: BEM)
νλ‘ νΈ κ°μ΄λ
- JSX μ»΄ν¬λνΈν
- μν λ°μΈλ© (
useState)
- λΌμ΄λΈλ¬λ¦¬ μ°λ (μ: swiper/react)
- CSS-in-JS, CSS Module λ±μΌλ‘ μ€νμΌ κ΅¬μ‘°ν
7. νΌλΈλ¦¬μ
μ μν νν λ°©μ
| λ°©μ |
μ€λͺ
|
| β
μν ν¬ν¨ class λͺ
μ |
.active, .open, .hidden, .disabled λ± μ¬μ© |
| β
μνλ³ λ§ν¬μ
μν λΆλ¦¬ |
dropdown.html, dropdown-open.html λ± |
| β
μ£ΌμμΌλ‘ μν κ΅¬λΆ |
<!-- μν: λλκ·Έ μ€ --> |
| β
μ€νμΌμ μν class κΈ°λ° μμ± |
CSSλ§μΌλ‘ display, transform, opacity λ± μν ꡬν |
8. νΌλΈλ¦¬μ
μμ
μμΉ
| μμΉ λ²νΈ |
λ΄μ© |
| 1 |
JS μ¬μ© κΈμ§ (jQuery, onclick, addClass λ±) |
| 2 |
μνλ class λλ μ£ΌμμΌλ‘ μκ°μ μΌλ‘ κ΅¬λΆ |
| 3 |
μ»΄ν¬λνΈ λ¨μ λ§ν¬μ
(e.g. Card, Dropdown) μμ± |
| 4 |
λ€μ΄λ° 컨벀μ
μΌκ΄μ± μ μ§ (BEM, kebab-case λ±) |
| 5 |
μν μλ리μ€λ μ£Όμ λλ λ³λ λ¬Έμλ‘ μ 곡 |
9. JSκ° λ§μ΄ νμν μ»΄ν¬λνΈ λμ μ λ΅
| μ»΄ν¬λνΈ |
νΌλΈλ¦¬μ
μν |
νλ‘ νΈ μν |
| λ°ν
μνΈ |
.bt-sheet, .is-open, .dragger ꡬ쑰 μ 곡 |
μ΄κΈ°/λ«κΈ° μν, λλκ·Έ ꡬν |
| λλ‘λ€μ΄ |
.open, .closed μν class μ 곡 |
isOpen μν μ ν λ° ν€λ³΄λ μ κ·Όμ± κ΅¬ν |
| Swiper |
.swiper, .swiper-slide λ§ν¬μ
μ 곡 |
swiper/react μ¬μ©, μ΅μ
μ°λ |