μΉ μ κ·Όμ±κ³Ό μΉ νμ€: μΉ κ°λ°μ ν΅μ¬ κ°λ
1. μΉ μ κ·Όμ±μ΄λ?
1.1 μΉ μ κ·Όμ±μ κ°λ
μΉ μ κ·Όμ±μ λͺ¨λ μ¬μ©μ, ν¬κ΄μ μΌλ‘λ λ Έμ½μ, μ₯μ μΈ, κ³ λ Ήμ, λ€μν λλ°μ΄μ€λ₯Ό μ¬μ©νλ μ¬λλ€μ ν¬ν¨ν λͺ¨λ μ΄μ©μκ° μΉ μ¬μ΄νΈμ μ½κ² μ κ·Όνκ³ μ¬μ©ν μ μλλ‘ νλ κ°λ μ λλ€. μ΄λ μΉ κ°λ°μ μ€μν ν΅μ¬ κ°μΉ μ€ νλλ‘ μΈμλκ³ μμ΅λλ€.
1.2 μ μΉ μ κ·Όμ±μ΄ νμνκ°?
λͺ¨λ μ¬μ©μλ₯Ό μν λλ±ν κΈ°ν μ 곡: μ₯μ μ¬λΆμ κ΄κ³μμ΄ λꡬλ μ 보μ μ½κ² μ κ·Όν μ μμ΄μΌ ν©λλ€.
λ€μν λλ°μ΄μ€ μ§μ: λ€μν λλ°μ΄μ€(μ€λ§νΈν°, νλΈλ¦Ώ, μ€ν¬λ¦° 리λ λ±)μμλ ν¨κ³Όμ μΌλ‘ μΉμ μ΄μ©ν μ μμ΄μΌ ν©λλ€.
λ²μ μꡬμ¬ν: λ§μ κ΅κ°μμ μΉ μ κ·Όμ±μ λ²μ μλ¬΄λ‘ κ·μ νκ³ μμ΅λλ€.
2. μΉ νμ€μ΄λ?
2.1 μΉ νμ€μ κ°λ
μΉ νμ€μ μΉμμ μ¬μ©λλ νμ€ κΈ°μ κ³Ό κ·μΉμ μλ―Έν©λλ€. μΉ νμ€μ μ€μν¨μΌλ‘μ¨ μΉ μ¬μ΄νΈλ μ΄λ€ λΈλΌμ°μ λ λλ°μ΄μ€μμλ μΌκ΄λ λͺ¨μ΅μΌλ‘ μ 곡λ μ μμ΅λλ€.
2.2 μ μΉ νμ€μ λ°λΌμΌ νλκ°?
λ€μν νλ«νΌμμ μΌκ΄λ λμ 보μ₯: μΉ νμ€μ μ€μνλ©΄ λͺ¨λ λΈλΌμ°μ μ λλ°μ΄μ€μμ λμΌν κ²½νμ μ 곡ν μ μμ΅λλ€.
κ²μ μμ§ μ΅μ ν(SEO): μΉ νμ€μ μ€μνλ©΄ κ²μ μμ§μμ λ μ μμΈννκ³ λνΉμ 맀길 μ μμ΅λλ€.
3. μΉ μ κ·Όμ±κ³Ό μΉ νμ€μ μν κ°λ° κ°μ΄λλΌμΈ
3.1 μ μ ν HTML μ¬μ©
- μλ―Έ μλ νκ·Έ μ¬μ©: μ μ ν μλ§¨ν± HTML νκ·Έλ₯Ό μ¬μ©νμ¬ λ¬Έμ ꡬ쑰λ₯Ό λͺ ννκ² ννν©λλ€.
<!-- λμ μ -->
<div onclick="doSomething()">ν΄λ¦νμΈμ</div>
<!-- μ’μ μ -->
<button onclick="doSomething()">ν΄λ¦νμΈμ</button>
- νΌ κ΄λ ¨ μμ μ¬μ©: νΌ μμμλ
label
λ±μ μ¬μ©νμ¬ μ¬μ©μμκ² λͺ νν μ 보λ₯Ό μ 곡ν©λλ€.
<!-- λμ μ -->
<div>μ΄λ¦: <input type="text"></div>
<!-- μ’μ μ -->
<label for="name">μ΄λ¦:</label>
<input type="text" id="name">
3.2 CSS μ€νμΌλ§
- λ μ΄μμκ³Ό μ€νμΌμ λΆλ¦¬: CSSλ₯Ό μ¬μ©νμ¬ λμμΈκ³Ό λ μ΄μμμ κ΄λ¦¬νκ³ HTMLμ μλ―Έμ μ§μ€ν©λλ€.
<!-- λμ μ -->
<div style="width: 50%; float: left;">컨ν
μΈ </div>
<!-- μ’μ μ -->
<style>
.content {
width: 50%;
float: left;
}
</style>
<div class="content">컨ν
μΈ </div>
- λ°μν μΉ λμμΈ(RWD): λ€μν λλ°μ΄μ€μμ μΌκ΄λ κ²½νμ μν΄ λ°μν λμμΈμ μ±νν©λλ€.
@media screen and (max-width: 600px) {
/* 600px μ΄νμμ μ μ©λλ μ€νμΌ */
}
3.3 μλ°μ€ν¬λ¦½νΈ νμ©
- μ μ§μ ν₯μ: λͺ¨λ κΈ°λ₯μ JavaScriptμ μμ‘΄νμ§ μκ³ κΈ°λ³Έ κΈ°λ₯μ΄ λ³΄μ₯λμ΄μΌ ν©λλ€.
<!-- λμ μ -->
<script>
document.querySelector('.btn').addEventListener('click', function() {
// JavaScriptκ° λΉνμ±νλ κ²½μ° μ΄ λ²νΌμ μλνμ§ μμ
doSomething();
});
</script>
<!-- μ’μ μ -->
<button class="btn" onclick="doSomething()">ν΄λ¦νμΈμ</button>
- μ κ·Όμ±μ κ³ λ €ν μΈν°λμ ꡬν: λͺ¨λ μ¬μ©μκ° μ½κ² μνΈμμ©ν μ μλλ‘ JavaScript μΈν°λμ μ μ€κ³ν©λλ€.
<!-- λμ μ -->
<div onclick="toggleMenu()">λ©λ΄</div>
<!-- μ’μ μ -->
<button onclick="toggleMenu()" aria-expanded="false" id="menuButton">λ©λ΄</button>
3.4 μΉ νμ€ μ€μ
- μ ν¨ν HTMLκ³Ό CSS μ¬μ©: W3Cμμ μ μν μΉ νμ€μ μ€μνμ¬ κ°λ°ν©λλ€.
<!-- λμ μ -->
<font color="red">ν
μ€νΈ</font>
<!-- μ’μ μ -->
<span style="color: red;">ν
μ€νΈ</span>
- μΉ μ κ·Όμ± κ²μ¬ λꡬ νμ©: μΉ μ κ·Όμ±μ ν₯μμν€κΈ° μν΄ κ²μ¬ λꡬλ₯Ό νμ©νμ¬ μ€λ₯λ₯Ό μμ ν©λλ€.
4. μ°κ΄λ λ΄μ©κ³Ό μΆκ° μ€λͺ
4.1 μΉ μ κ·Όμ±μ λμ΄λ
ARIA
μΉ μ κ·Όμ±μ ν₯μμν€κΈ° μν΄ ARIA(Accessible Rich Internet Applications)λ₯Ό μ¬μ©ν μ μμ΅λλ€. ARIAλ HTML, CSS, μλ°μ€ν¬λ¦½νΈ λ±κ³Ό ν¨κ» μ¬μ©νμ¬ μ₯μ μΈμ΄λ λ€μν νκ²½μμ λ λμ μ¬μ©μ κ²½νμ μ 곡ν©λλ€.
<!-- ARIA μ¬μ© μμ -->
<button aria-label="λ«κΈ° λ²νΌ" onclick="closeDialog()">X</button>
4.2 μΉ νμ€ μ€μμ μ₯μ
μ μ§λ³΄μ μ©μ΄μ±: μΉ νμ€μ μ€μνλ©΄ μ½λμ μΌκ΄μ±μ΄ μ μ§λμ΄ μ μ§λ³΄μκ° μ¬μμ§λλ€.
ν¬λ‘μ€ λΈλΌμ°μ§ μ΄μ κ°μ: μΉ νμ€ μ€μλ‘ ν¬λ‘μ€ λΈλΌμ°μ§ μ΄μλ₯Ό μ΅μνν μ μμ΅λλ€.
ν₯μλ μ±λ₯: νμ€ κΈ°μ μ μ¬μ©νλ©΄ λΈλΌμ°μ μμ λ ν¨μ¨μ μΌλ‘ νμ΄μ§λ₯Ό λ λλ§ν μ μμ΅λλ€.
5. λ§λ¬΄λ¦¬
μΉ μ κ·Όμ±κ³Ό μΉ νμ€μ νλ μΉ κ°λ°μ νμ μμλ‘ μ리맀κΉνκ³ μμ΅λλ€. μ΄λ₯Ό μ€μνλ©΄ λ λ§μ μ¬μ©μμκ² μΉ μλΉμ€λ₯Ό μ 곡νκ³ , κ²μ μμ§ μ΅μ νμμλ μ΄μ μ μ»μ μ μμ΅λλ€. κ°λ°μλ νμ μ΅μ νμ€κ³Ό μ κ·Όμ± μ§μΉ¨μ λ°λ₯΄λ©° μ¬μ©μ μΉνμ μΈ μΉμ μ 곡ν΄μΌ ν©λλ€. μ΄λ₯Ό ν΅ν΄ κ°λ°μμ μ¬μ©μ λͺ¨λμκ² κΈμ μ μΈ κ²½νμ μ 곡ν μ μμ΅λλ€.
'IT' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Flexμ Grid: μΉ λ μ΄μμ λμμΈμ λ κ°μ (0) | 2024.02.14 |
---|---|
ν¬λ‘μ€ λΈλΌμ°μ§: λͺ¨λ μ¬μ©μμκ² μΌκ΄λ μΉ κ²½ν μ 곡νκΈ° (0) | 2024.02.14 |
CORS(Cross-Origin Resource Sharing)μ λν μ΄ν΄μ λμ λ°©λ² (0) | 2024.02.14 |
PM2: Node.js νλ‘μΈμ€ κ΄λ¦¬μ (0) | 2024.02.14 |
TDD(Test-Driven Development) μκ°μ νμ© λ°©λ² (0) | 2024.02.13 |
λκΈ