πŸ’»μ›Ή(Web)/React

[React]μ›Ή ν‘œμ€€μ„ μ€€μˆ˜ν•˜λ©° κ°œλ°œν•˜λŠ” 방법

stonesy 2023. 8. 28. 23:24
728x90

이것저것 정보λ₯Ό μ°Ύλ‹€ 보면 "μ›Ή ν‘œμ€€"μ΄λΌλŠ” μš©μ–΄κ°€ 자주 λ“±μž₯ν•˜λŠ”λ°, 항상 κ·Έ 의미λ₯Ό μ™„λ²½νžˆ μ΄ν•΄ν•˜μ§€λŠ” λͺ»ν•˜κ³  λ„˜μ–΄κ°”μ—ˆλ‹€. κ°œκ°• 전에 μ‹œκ°„μ΄ 쑰금 남은 μ§€κΈˆ, “μ›Ή ν‘œμ€€”에 λŒ€ν•΄μ„œ κ³΅λΆ€ν•˜κ³  μ •λ¦¬ν•΄λ³΄μ•˜λ‹€!πŸ˜€

 

πŸ”Žμ›Ήν‘œμ€€μ΄λž€?

μ›Ή ν‘œμ€€(Web Standard)λŠ” W3Cμ—μ„œ μ‚¬μš©λ˜λŠ” 기술과 ν”„λ‘œν† μ½œμ— λŒ€ν•œ κ·œμΉ™κ³Ό κΆŒκ³ μ•ˆμ˜ λͺ¨μŒμ„ λ§ν•œλ‹€. μ›Ή ν‘œμ€€μ€ μ›Ή νŽ˜μ΄μ§€μ™€ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ°œλ°œν•˜κ³  κ΅¬ν˜„ν•˜λŠ”λ° 일관성을 μ œκ³΅ν•˜λ©°, λ‹€μ–‘ν•œ μ›Ή λΈŒλΌμš°μ €μ™€ μž₯μΉ˜μ—μ„œ λ™μΌν•œ λ°©μ‹μœΌλ‘œ μž‘λ™ν•˜λ„λ‘ 보μž₯ν•˜λŠ” 역할을 ν•œλ‹€. 즉, μ›Ή ν‘œμ€€μ— 따라 개발된 μ›Ή μ‚¬μ΄νŠΈλŠ” μ ‘μ†ν•œ μ‚¬μš©μžκ°€ μ–΄λ– ν•œ μš΄μ˜μ²΄μ œλ‚˜ λΈŒλΌμš°μ €λ₯Ό μ‚¬μš©ν•˜λ”λΌκ³  μ›Ή νŽ˜μ΄μ§€κ°€ λ™μΌν•˜κ²Œ 보이고 μ •μƒμ μœΌλ‘œ μž‘λ™ν•΄μ•Ό 함을 μ˜λ―Έν•œλ‹€. λ”°λΌμ„œ μ›Ή ν‘œμ€€μ˜ μ€€μˆ˜λŠ” μ›Ή μ ‘κ·Όμ„± μ€€μˆ˜λ₯Ό μœ„ν•œ 핡심이닀.

*μ›Ή ν‘œμ€€ κ°€μ΄λ“œλΌμΈ: https://www.w3.org/standards/


μ›Ή μ ‘κ·Όμ„±

W3C의 μ •μ˜μ— λ”°λ₯΄λ©΄ μ›Ή ν‘œμ€€μ€ μ ‘κ·Όμ„±, μ‚¬μƒν™œ 보호, λ³΄μ•ˆ, κ΅­μ œν™”μ˜ μΈ‘λ©΄μ—μ„œ κ³ λ €ν•΄μ•Ό ν•œλ‹€. 특히 이쀑에 접근성을 ν”νžˆ “μ›Ή μ ‘κ·Όμ„±”이라고 ν•œλ‹€.

μ›Ή 접근성은 신체적 μ°¨μ΄λ‚˜ μž₯μ•  여뢀와 상관없이 λˆ„κ΅¬λ‚˜ μ›ν™œν•˜κ²Œ μ›Ή νŽ˜μ΄μ§€λ₯Ό μ΄μš©ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€λŠ” 것을 μ˜λ―Έν•œλ‹€. 예λ₯Ό λ“€μ–΄, 눈으둜 화면을 λ³Ό 수 μ—†λŠ” μ‹œκ°μž₯μ• μΈμ˜ 경우 슀크린 λ¦¬λ”λΌλŠ” λ³„λ„μ˜ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό 컴퓨터에 μ„€μΉ˜ν•˜μ—¬ μŒμ„±μœΌλ‘œ μ›Ή νŽ˜μ΄μ§€μ— λ‹΄κΈ΄ 정보λ₯Ό μ΄ν•΄ν•œλ‹€. μ΄λ•Œ, λ©”λ‰΄λΌλŠ” ν…μŠ€νŠΈ λŒ€μ‹  메뉴라고 그렀진 이미지λ₯Ό μ‚¬μš©ν•  경우 λΉ„μ‹œκ°μž₯μ• μΈμ˜ λˆˆμ—λŠ” 메뉴라고 인식가λŠ₯ν•˜μ§€λ§Œ μ†Œν”„νŠΈμ›¨μ–΄μ˜ μž…μž₯μ—μ„œλŠ” κ·Έμ € 이미지일 뿐이기 λ•Œλ¬Έμ— κ·Έ 이미지 μ•ˆμ˜ λ‚΄μš©μ„ μ‹œκ° μž₯μ• λ₯Ό 가진 μ‚¬λžŒμ—κ²Œ 전달이 λΆˆκ°€λŠ₯ν•˜λ‹€. λ”°λΌμ„œ λ˜λ„λ‘μ΄λ©΄ 이미지 λŒ€μ‹  μ†ŒμŠ€μ½”λ“œμ— λ‚΄μš©μ„ κ·ΈλŒ€λ‘œ λ‹΄λŠ” 것이 ꢌμž₯되며, λΆ€λ“μ΄ν•˜κ²Œ 이미지λ₯Ό μ‚¬μš©ν•  경우 이미지가 μ–΄λ–€ λ‚΄μš©μΈμ§€ μ•„λž˜μ™€ 같이 μ„€λͺ…을 μΆ”κ°€ν•΄μ•Ό ν•œλ‹€.

<button>
	<img src="/images/button__menu.jpg" alt="메뉴 λ²„νŠΌ" />
</button>

 


 

 

πŸ”Žμ›Ή ν‘œμ€€μ„ μ€€μˆ˜ν•˜λŠ” 방법

μ›Ή ν‘œμ€€ κ΄€λ ¨ κΈ°μˆ λ‘œλŠ” ꡬ쑰-(X)HTML, ν‘œν˜„-CSS, λ™μž‘-JavaScript 등이 μžˆλ‹€.

1. DOCTYPE μ„ μ–Έ

μ›Ή νŽ˜μ΄μ§€μ˜ μ΅œμƒλ‹¨μ— DOCTYPEλ₯Ό μ„ μ–Έν•˜μ—¬ μ›Ή νŽ˜μ΄μ§€κ°€ μ–΄λ–€ λ²„μ „μ˜ HTML, XHTML을 μ‚¬μš©ν•˜μ§€λŠ”μ§€ λͺ…μ‹œν•œλ‹€.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>HTML !DOCTYPE declaration</title>
</head>
<body>
    <p>이 λ¬Έμ„œλŠ” HTML λ¬Έμ„œμž…λ‹ˆλ‹€.</p>
</body>
</html>

 

2. μ‹œλ§¨ν‹± νƒœκ·Έ μ‚¬μš©

μ‹œλ§¨ν‹± νƒœκ·ΈλŠ” HTML5μ—μ„œ μƒˆλ‘œ μΆ”κ°€λœ νƒœκ·Έλ‘œ <header>, <nav>, <section>, <article>, <footer> λ“±μ˜ νƒœκ·Έλ₯Ό μ‚¬μš©ν•˜μ—¬ μ›Ή νŽ˜μ΄μ§€μ˜ ꡬ쑰λ₯Ό λ”μš± λͺ…ν™•ν•˜κ²Œ ν‘œν˜„ν•  수 μžˆλ‹€.

βœ”οΈ<header>

: νŽ˜μ΄μ§€λ‚˜ μΌλΆ€λΆ„μ˜ 머리말 뢀뢄을 지정

: <header>μ•ˆμ— <h1>~<h6>νƒœκ·Έλ₯Ό μ‚¬μš©ν•˜μ—¬ 제λͺ©μ„ κ΅¬λΆ„ν•˜λ©΄ μ‹œλ©˜ν‹± λ§ˆν¬μ—…μ„ ν•  수 μžˆλ‹€.

: μ›Ή μ‚¬μ΄νŠΈμ˜ μ£Όμš” 제λͺ©μ€ <h1> νƒœκ·Έλ‘œ μž‘μ„±ν•˜κ³ , κ·Έ μ•„λž˜μ˜ μ„Ήμ…˜ 제λͺ©μ€ <h2> λ“±μ˜ νƒœκ·Έλ₯Ό μ‚¬μš©ν•œλ‹€.

βœ”οΈ<footer>

: νŽ˜μ΄μ§€λ‚˜ μΌλΆ€λΆ„μ˜ 꼬리말 뢀뢄을 지정

βœ”οΈ<nav>

: νŽ˜μ΄μ§€μ˜ λ„€λΉ„κ²Œμ΄μ…˜ 뢀뢄을 지정

: μ‚¬μ΄νŠΈμ˜ μ£Όμš” 탐색 뢀뢄을 <nav> μ•ˆμ— λ°°μΉ˜ν•˜μ—¬ μ‚¬μš©μžκ°€ μ‚¬μ΄νŠΈ ꡬ쑰λ₯Ό μ΄ν•΄ν•˜κ³  μ½˜ν…μΈ λ‘œ λΉ λ₯΄κ²Œ 이동할 수 μžˆλ„λ‘ ν•œλ‹€.

βœ”οΈ<section>

: νŽ˜μ΄μ§€μ˜ 일뢀뢄을 지정

: ν•œ <section>은 독립적인 μ½˜ν…μΈ  블둝을 λ‚˜νƒ€λ‚΄λ©°, 제λͺ©μ„ κ°€μ§ˆ 수 μžˆλ‹€.

βœ”οΈ<article>

: μ—¬λŸ¬ 문단을 λ¬ΆλŠ” νƒœκ·Έ, 독립적인 μ½˜ν…μΈ λ₯Ό μ •μ˜ν•  λ•Œ μ‚¬μš©

 

⇒예λ₯Ό λ“€μ–΄, μ›Ή νŽ˜μ΄μ§€μ—μ„œ ν•˜λ‚˜μ˜ λ‰΄μŠ€κΈ°μ‚¬λŠ” <article>둜 ν‘œμ‹œν•  수 μžˆλ‹€. 이 기사λ₯Ό λ…λ¦½μ μœΌλ‘œ λ‹€λ₯Έ 곳에 ν¬ν•¨μ‹œν‚€κ±°λ‚˜ μž¬μ‚¬μš©ν•  수 있기 λ•Œλ¬Έμ΄λ‹€. 그리고 기사 λͺ©λ‘μ„ 각각의 <section>으둜 ꡬ성할 수 μžˆλ‹€.

 

3. CSS μŠ€νƒ€μΌ μ‹œνŠΈ μ‚¬μš©

CSS μŠ€νƒ€μΌ μ‹œνŠΈλ₯Ό μ‚¬μš©ν•˜μ—¬ λ””μžμΈκ³Ό λ ˆμ΄μ•„μ›ƒμ„ λΆ„λ¦¬ν•˜κ³ , μ›Ή νŽ˜μ΄μ§€μ˜ λ‚΄μš©κ³Ό λ””μžμΈμ„ λΆ„λ¦¬ν•˜μ—¬ μœ μ§€λ³΄μˆ˜ 및 ν™•μž₯성읖 높일 수 μžˆλ‹€.

 

4. μ›Ή μ ‘κ·Όμ„± κ³ λ €

μ›Ή νŽ˜μ΄μ§€λ₯Ό λ§Œλ“€ λ•Œ λͺ¨λ“  μ‚¬μš©μžκ°€ μ‰½κ²Œ μ ‘κ·Όν•  수 μžˆλ„λ‘ μ›Ή 접근성을 κ³ λ €ν•΄μ•Ό ν•œλ‹€. 예λ₯Ό λ“€μ–΄, μ‹œκ° μž₯애인이 슀크린 리더λ₯Ό μ‚¬μš©ν•˜μ—¬ μ›Ή νŽ˜μ΄μ§€λ₯Ό 읽을 수 μžˆλ„λ‘ alt 속성을 μ‚¬μš©ν•˜μ—¬ 이미지에 λŒ€ν•œ μ„€λͺ…을 μ œκ³΅ν•˜κ±°λ‚˜, ν‚€λ³΄λ“œλ§ŒμœΌλ‘œ λͺ¨λ“  κΈ°λŠ₯을 μ‚¬μš©ν•  수 μžˆλ„λ‘ tabindex 속성을 μ‚¬μš©ν•˜λŠ” λ“±μ˜ μ„Έμ‹¬ν•œ μž‘μ—…μ΄ ν•„μš”ν•˜λ‹€.

*alt 속성

<img src="example-image.jpg" alt="색상풍경 이미지: ν•΄μ§ˆλ…˜ 노을이 λΉ„μΉ˜λŠ” ν•΄λ³€ 풍경">

*tabindex 속성

    tabindex 속성은 HTML μš”μ†Œμ˜ νƒ­ ν‚€(Tab Key) μˆœμ„œλ₯Ό μ§€μ •ν•˜λŠ”λ° μ‚¬μš©λ˜λŠ” 속성이닀.

<input type="text" name="name" tabindex="1">
<input type="text" name="email" tabindex="2">
<input type="submit" value="Submit" tabindex="3">

 

 

πŸ”Žμ›Ή ν‘œμ€€μ˜ μž₯점

1. μ›Ή νŽ˜μ΄μ§€μ˜ ν˜Έν™˜μ„±

μ›Ή ν‘œμ€€μ„ μ€€μˆ˜ν•˜λ©΄, μ›Ή νŽ˜μ΄μ§€κ°€ λͺ¨λ“  λΈŒλΌμš°μ €μ—μ„œ μΌκ΄€μ μœΌλ‘œ ν‘œμ‹œλ˜κ²Œ λœλ‹€. 이λ₯Ό 톡해 μ‚¬μš©μžλ“€μ€ μ–΄λ–€ λΈŒλΌμš°μ €λ₯Ό μ‚¬μš©ν•˜λ”λΌλ„ λ™μΌν•œ μ‚¬μš©μž κ²½ν—˜μ„ 얻을 수 μžˆμ–΄ 였래된 λΈŒλΌμš°μ €μ—μ„œλ„ 컨텐츠가 μ μ ˆν•˜κ²Œ ν‘œμ‹œλ˜κ³  ν˜Έν™˜μ„±κ³Ό μš΄μš©μ„±μ΄ ν™•λ³΄λœλ‹€.

2. 검색 엔진 μ΅œμ ν™”(SEO)

μ›Ή ν‘œμ€€μ„ μ€€μˆ˜ν•˜λ©΄, 검색 μ—”μ§„μ—μ„œ μ›Ή νŽ˜μ΄μ§€λ₯Ό λ”μš± 잘 인식할 수 μžˆλ‹€. 이λ₯Ό 톡해 λ”μš± 높은 검색 κ²°κ³Όλ₯Ό 얻을 수 μžˆλ‹€.

3. μœ μ§€λ³΄μˆ˜ 및 ν™•μž₯μ„±

μ›Ή ν‘œμ€€μ„ μ€€μˆ˜ν•˜λ©΄, μ›Ή νŽ˜μ΄μ§€λ₯Ό λ§Œλ“œλŠ”λ° ν•„μš”ν•œ μ‹œκ°„κ³Ό λΉ„μš©μ„ 쀄일 수 μžˆμ–΄ μœ μ§€λ³΄μˆ˜ 및 ν™•μž₯성이 쒋아진닀. λ˜ν•œ 논리적이고 효율적으둜 μž‘μ„±λœ μ›Ή λ¬Έμ„œλ₯Ό μ½”λ“œμ˜ 양이 쀄어 파일 크기가 쀄고 μ„œλ²„ λΆ€λ‹΄μ˜ κ°μ†Œλ‘œ 이어진닀.

4. μ›Ή μ ‘κ·Όμ„± ν–₯상

μ›Ή ν‘œμ€€μ„ μ€€μˆ˜ν•˜λ©΄, λͺ¨λ“  μ‚¬μš©μžκ°€ μ‰½κ²Œ μ›Ή νŽ˜μ΄μ§€μ— μ ‘κ·Όν•  수 μžˆλ„λ‘ μ›Ή 접근성을 κ³ λ €ν•  수 μžˆλ‹€. 예λ₯Ό λ“€μ–΄, λ‹€μ–‘ν•œ λΈŒλΌμš°μ €, νœ΄λŒ€ν° PDA, μž₯애인 μ§€μ›μš© ν”„λ‘œκ·Έλž¨μ—μ„œλ„ λŒ€μ‘μ΄ κ°€λŠ₯ν•˜λ―€λ‘œ 접근성이 ν–₯μƒλ˜κ³  크린리더 λ“± 보쑰곡학 κΈ°κΈ° μ‚¬μš©μžλ“€μ΄ 쑰금 더 μ •ν™•ν•œ 정보λ₯Ό 얻을 수 μžˆλ„λ‘ 도움을 μ€€λ‹€.

 


βœ¨μš”μ•½ν•˜λ©΄ μ›Ήν‘œμ€€μ΄λž€ μ ‘μ†μžμ— 상관없이 μ›Ή νŽ˜μ΄μ§€κ°€ λ™μΌν•˜κ²Œ 보이고 μ •μƒμ μœΌλ‘œ μž‘λ™ν•  수 μžˆλ„λ‘ ν•˜κΈ°μœ„ν•œ κΆŒκ³ μ•ˆμ˜ λͺ¨μŒμ΄λΌκ³  ν•  수 있고, μ›Ή ν‘œμ€€μ„ μ€€μˆ˜ν•˜λŠ” κ°œλ°œλ°©λ²•μ€ μ μ ˆν•œ μ‹œλ§¨ν‹± νƒœκ·Έλ₯Ό μ‚¬μš©ν•˜κ³  μ›Ή 접근성을 κ³ λ €ν•΄ κ°œλ°œν•˜λŠ” 것이닀.✨


 

 

πŸ”ŽμΆœμ²˜/μ°Έκ³ 

https://inpa.tistory.com/entry/WEB-πŸ“š-μ›Ή-ν‘œμ€€μ˜-이해

https://cocobi.tistory.com/170

https://helloworld-88.tistory.com/96

 

 

728x90