1. Web Standards πŸ‘©β€πŸ’»

κ³Όκ±° λΈŒλΌμš°μ € νŒŒνŽΈν™”λ‘œ μΈν•œ 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ μ›Ή ν‘œμ€€μ΄λΌλŠ” ν‘œμ€€ 기술 κ·œμΉ™μ΄ μ œμ •λ˜μ—ˆκ³ , 이것을 μ œμ •ν•˜λŠ” 곳이 W3C λ‹€.

  1. μ΄ˆμ•ˆ(Working Draft, WD)
  2. ν›„λ³΄κΆŒκ³ μ•ˆ(Candidate Recommendation, CR)
  3. μ œμ•ˆκΆŒκ³ μ•ˆ(Proposed Recommendation, PR)
  4. κΆŒκ³ μ•ˆ(W3C Recommendation, REC)

이 쀑 REC에 ν•΄λ‹Ήν•˜λŠ” κΆŒκ³ μ•ˆμ„ μš°λ¦¬λŠ” μ›Ή ν‘œμ€€μ΄λΌκ³  μ •μ˜ν•œλ‹€.


2. Web Standards πŸ‘©β€πŸ’»

1. Bitmap

픽셀이 λͺ¨μ•Ό λ§Œλ“€μ–΄μ§„ μ •λ³΄μ˜ μ§‘ν•©μœΌλ‘œ Raster 이미지라고도 λΆ€λ₯Έλ‹€.

jpeg, gif, png, heif와 같은 것듀이 있으며, μ •κ΅ν•˜κ³  λ‹€μ–‘ν•œ 색상과 같은 사진을 ν‘œν˜„ν•˜λŠ”λ° μ ν•©ν•˜λ‹€. 단, ν™•λŒ€/μΆ•μ†Œ μ‹œ 계단 ν˜„μƒμ΄ 생기기 λ•Œλ¬Έμ— 원본이 자주 μˆ˜μ •λ˜λ©΄ ν’ˆμ§ˆ μ €ν•˜κ°€ λ°œμƒν•œλ‹€.

포맷 μ••μΆ• μ’…λ₯˜ 색상 νŠΉμ§•
jpeg 손싀 24bit μš°μˆ˜ν•œ μ••μΆ• ν’ˆμ§ˆλ‘œ κ°€μž₯ 보편적으둜 μ‚¬μš©λ¨
png 비손싀 8bit(256 색상) μ”© 24bit Alpha Channel(투λͺ…도) 지원, W3C ꢌμž₯ 포맷
gif 비손싀 8bit(256 색상) μ—¬λŸ¬ 이미지λ₯Ό ν•˜λ‚˜μ˜ μ»¨ν…Œμ΄λ„ˆμ— μ €μž₯ν•΄ μ›€μ§μ΄λŠ” 이미지 ν‘œν˜„
heif 손싀/비손싀 10bit μ”© 30bit(1.06μ–΅) Alpha Channel, HRD 지원, 맀우 높은 μ••μΆ•λ₯ 
webp 손싀/비손싀 24bit λ˜λŠ” 30bit Alpha Channel, HRD 지원, 맀우 높은 μ••μΆ•λ₯ , μ›€μ§μ΄λŠ” 이미지 ν‘œν˜„

heifλŠ” 주둜 μ΅œμ‹  μŠ€λ§ˆνŠΈν°μ—μ„œ 많이 μ‚¬μš©λ˜λ©°, 아직 ν˜Έν™˜μ„±μ΄ 쒋지 λͺ»ν•˜λ‹€. ꡬ글이 κ°œλ°œν•œ webp 포맷은 μ—­μ‹œ μ΅œμ‹  포맷으둜 heif와 λΉ„μŠ·ν•˜λ‚˜ μ›€μ§μ΄λŠ” 이미지 ν‘œν˜„κΉŒμ§€λ„ κ°€λŠ₯ν•˜λ‹€.

heif와 webpλŠ” ν•˜μœ„ ν˜Έν™˜μ„±μ— μœ μ˜ν•΄μ•Όν•œλ‹€.

2. Vector

Vectorλ₯Ό μ‚¬μš©ν•œ μ΄λ―Έμ§€λ‘œ μˆ˜λ§Žμ€ λ²‘ν„°μ˜ μˆ˜ν•™ 곡식을 그림으둜 κ΅¬ν˜„ν•œλ‹€.

svgλŠ” λ‹€μŒκ³Ό 같은 νŠΉμ§•μ„ κ°–λŠ”λ‹€.

  • λ§ˆν¬μ—… μ–Έμ–΄(HTML/XML) 기반의 벑터 κ·Έλž˜ν”½μ„ ν‘œν˜„ν•œλ‹€.
  • μˆ˜ν•™μ‹μ„ κ΅¬ν˜„ν•˜λŠ” 것이기 λ•Œλ¬Έμ— 크기λ₯Ό ν‚€μ›Œλ„ λ™μΌν•œ ν’ˆμ§ˆμ„ κ°–λŠ”λ‹€.
  • CSS 와 JavaScript 둜 μ œμ–΄κ°€ κ°€λŠ₯(Modify SVG Images)ν•˜λ‹€.
  • 파일 및 μ½”λ“œ μ‚½μž…μ΄ κ°€λŠ₯ν•˜λ‹€.

3. Opensource License πŸ‘©β€πŸ’»

μ—¬λŸ¬ λΌμ΄μ„ΌμŠ€ 쀑 κ°€μž₯ ν”ν•˜κ²Œ μ ‘ν•  수 μžˆλŠ” 무료둜 μ‚¬μš©μ΄ κ°€λŠ₯ν•œ μ˜€ν”ˆμ†ŒμŠ€ λΌμ΄μ„ μŠ€λ§Œ λ‚˜μ—΄ν•΄λ³Έλ‹€.

  1. Apache License : μ•„νŒŒμΉ˜ μ†Œν”„νŠΈμ›¨μ–΄ μž¬λ‹¨μ—μ„œ 자체 μ†Œν”„νŠΈμ›¨μ–΄μ— μ μš©ν•˜κΈ° μœ„ν•΄ λ§Œλ“  λΌμ΄μ„ μŠ€, 개인적/상업적 이용, 배포, μˆ˜μ •, νŠΉν—ˆ 신청이 κ°€λŠ₯.
  2. MIT License : λ§€μ‚¬μΆ”μ„ΈμΈ κ³΅κ³ΌλŒ€ν•™(MIT)μ—μ„œ μ†Œν”„νŠΈμ›¨μ–΄ 학생듀을 μœ„ν•΄ κ°œλ°œν•œ λΌμ΄μ„ μŠ€, 개인 μ†ŒμŠ€μ— 이 λΌμ΄μ„ μŠ€λ₯Ό μ‚¬μš©ν•˜κ³  μžˆλ‹€λŠ” ν‘œμ‹œλ§Œ μ§€μΌœμ£Όλ©΄ 되며, λ‚˜λ¨Έμ§€ μ‚¬μš©μ— λŒ€ν•œ μ œμ•½μ€ μ—†μŒ.
  3. BSC License : BSD(Berkeley Software Distribution)λŠ” 버클리 μΊ˜λ¦¬ν¬λ‹ˆμ•„λŒ€ν•™μ—μ„œ κ°œλ°œν•œ λΌμ΄μ„ μŠ€, MIT와 동일 쑰건.
  4. Beerware : μ˜€ν”ˆμ†ŒμŠ€ κ°œλ°œμžμ—κ²Œ λ§₯μ£Όλ₯Ό μ‚¬μ€˜μ•Ό ν•˜λŠ” λΌμ΄μ„ μŠ€. λ¬Όλ‘  λ§Œλ‚  수 μžˆλŠ” κ²½μš°β€¦

4. HTML πŸ‘©β€

1. HTML Tree

  1. Ancestor Element(쑰상 μ—˜λ¦¬λ¨ΌνŠΈ): λͺ¨λ“  μƒμœ„ μ—˜λ¦¬λ¨ΌνŠΈ
  2. Parent Element(λΆ€λͺ¨ μ—˜λ¦¬λ¨ΌνŠΈ): μƒμœ„ μ—˜λ¦¬λ¨ΌνŠΈ
  3. Sibling Elements(ν˜•μ œ μ—˜λ¦¬λ¨ΌνŠΈ): 같은 계측에 μžˆλŠ” μ—˜λ¦¬λ¨ΌνŠΈ
  4. Child Element(μžμ‹ μ—˜λ¦¬λ¨ΌνŠΈ): ν•˜μœ„ μ—˜λ¦¬λ¨ΌνŠΈ
  5. Descendant Element(μžμ† μ—˜λ¦¬λ¨ΌνŠΈ): λͺ¨λ“  ν•˜μœ„ μ—˜λ¦¬λ¨ΌνŠΈ

2. Block and Inline

1 ) Block

  • widthλŠ” λΆ€λͺ¨ μ—˜λ¦¬λ¨ΌνŠΈμ˜ 크기만큼 λŠ˜μ–΄λ‚˜κ³ , heightλŠ” content 크기 만큼 쀄어든닀.
  • width, height, margin, padding λͺ¨λ‘ 적용이 κ°€λŠ₯ν•˜λ‹€.
  • λΈ”λŸ­ μ—˜λ¦¬λ¨ΌνŠΈ μ•ˆμ—λŠ” λΈ”λŸ­ μ—˜λ¦¬λ¨ΌνŠΈ, 인라인 μ—˜λ¦¬λ¨ΌνŠΈ λͺ¨λ‘ 올 수 μžˆλ‹€.

λŒ€ν‘œμ μΈ λΈ”λŸ­ μ—˜λ¦¬λ¨ΌνŠΈλŠ” divκ°€ μžˆλ‹€. 주둜 νŽ˜μ΄μ§€μ˜ λ ˆμ΄μ•„μ›ƒμ„ μž‘λŠ”λ° μ‚¬μš©λœλ‹€.

2 ) Inline

Text 둜 μ·¨κΈ‰λœλ‹€. 이것이 핡심이닀. κΈ€μžλ‘œ μ·¨κΈ‰λ˜κΈ° λ•Œλ¬Έμ— λ‹€μŒκ³Ό 같은 νŠΉμ§•μ„ κ°–λŠ”λ‹€.

  • μ€„λ°”κΏˆμ€ ν•˜λ‚˜μ˜ 곡백으둜 μΉ˜ν™˜λœλ‹€.
  • width와 heightλŠ” content 크기 만큼 쀄어든닀.
  • κΈ€μžμ΄κΈ° λ•Œλ¬Έμ— width, height 속성이 μ μš©λ˜μ§€ μ•ŠλŠ”λ‹€.
  • marginκ³Ό padding μ—­μ‹œ μƒν•˜λŠ” μ μš©λ˜μ§€ μ•Šκ³ , 쒌우만 μ μš©λœλ‹€.
  • 일뢀 μ˜ˆμ™ΈλŠ” μžˆμœΌλ‚˜ 일반적으둜 인라인 μ—˜λ¦¬λ¨ΌνŠΈ μ•ˆμ—λŠ” 인라인 μ—˜λ¦¬λ¨ΌνŠΈλ§Œ 올 수 μžˆλ‹€(=λΈ”λŸ­ μ—˜λ¦¬λ¨ΌνŠΈκ°€ 올 수 μ—†λ‹€).

λŒ€ν‘œμ μΈ 인라인 μ—˜λ¦¬λ¨ΌνŠΈλŠ” span이 μžˆλ‹€.

<span>HTML World</span>
<!-- same -->
<span>Hello</span>
<span>World</span>

μ΄λ•Œ 곡백의 ν¬κΈ°λŠ” span이 μ‘΄μž¬ν•˜λŠ” μ»¨ν…Œμ΄λ„ˆ, 즉, λΆ€λͺ¨ μ—˜λ¦¬λ¨ΌνŠΈμ— μ μš©λ˜λŠ” font-size의 크기λ₯Ό λ”°λΌκ°€λ―€λ‘œ μœ μ˜ν•΄μ•Όν•œλ‹€.

3. Major Elements

  1. div - division, νŠΉλ³„ν•œ μ˜λ―Έκ°€ μ—†λŠ” ꡬ뢄을 μœ„ν•œ λΈ”λŸ­ 속성 μ—˜λ¦¬λ¨ΌνŠΈ.
  2. h - heading, 제λͺ©μ„ μ˜λ―Έν•˜λŠ” μ—˜λ¦¬λ¨ΌνŠΈ. h1 ~ h6 μ°¨μ΄λŠ” λ‹¨μˆœνžˆ 크기 차이만 λ‚˜νƒ€λ‚΄λŠ” 게 μ•„λ‹ˆλΌ, λŒ€μ£Όμ œ > μ€‘μ£Όμ œ > μ†Œμ£Όμ œ 와 같은 의미λ₯Ό ν‘œν˜„ν•œλ‹€. λ”°λΌμ„œ h1을 λ‚¨λ°œν•΄μ„œλŠ” μ•ˆ 되며, h2 ~ h4 μ‚¬μ΄μ—μ„œ μ‚¬μš©ν•œλ‹€(일반적으둜 ν•œ νŽ˜μ΄μ§€ 내에 h5 ~ h6 κΉŒμ§€ μ‘΄μž¬ν•  일이 λ§Žμ§€ μ•Šλ‹€).
  3. p - paragraph, λ¬Έμž₯을 μ˜λ―Έν•˜λŠ” μ—˜λ¦¬λ¨ΌνŠΈ.
  4. img - image, 이미지λ₯Ό μ‚½μž…ν•˜λŠ” μ—˜λ¦¬λ¨ΌνŠΈ. 인라인 μ—˜λ¦¬λ¨ΌνŠΈλ‘œ μ›Œλ“œ λ¬Έμ„œμ— 인라인으둜 μ‚½μž…λœ κΈ€μžμ²˜λŸΌ ν–‰λ™ν•œλ‹€.
  5. ul, ol - list, ν•˜λ‚˜μ˜ 집합을 μ˜λ―Έν•˜λ©°, ν•˜μœ„μ— li λ₯Ό ν•˜λ‚˜ 이상 κ°€μ Έμ•Όν•œλ‹€.
  6. a - anchor, νŽ˜μ΄μ§€ 이동을 μœ„ν•œ ν•˜μ΄νΌλ§ν¬ μ—˜λ¦¬λ¨ΌνŠΈ.
  7. span - νŠΉλ³„ν•œ μ˜λ―Έκ°€ μ—†λŠ” ꡬ뢄을 μœ„ν•œ 인라인 속성 μ—˜λ¦¬λ¨ΌνŠΈ.
  8. br, break - κ°œν–‰μ„ μœ„ν•œ μ—˜λ¦¬λ¨ΌνŠΈ.
  9. input - μ‚¬μš©μžκ°€ 데이터λ₯Ό μž…λ ₯ν•˜λŠ” μ—˜λ¦¬λ¨ΌνŠΈ.
    • text - 문자 μž…λ ₯.
    • number - 숫자 μž…λ ₯.
    • checkbox - label κ³Ό ν•¨κ»˜ μ‚¬μš©ν•˜λ©°, 선택 κ°€λŠ₯ν•œ μ—˜λ¦¬λ¨ΌνŠΈμ— μ‚¬μš©.
    • radio - label κ³Ό ν•¨κ»˜ μ‚¬μš©ν•˜λ©°, name 으둜 κ·Έλ£Ήν™” ν•΄ κ·Έλ£Ή λ‚΄ ν•˜λ‚˜λ§Œ 선택 κ°€λŠ₯ν•œ μ—˜λ¦¬λ¨ΌνŠΈ.
  10. label - 라벨링 κ°€λŠ₯ν•œ μ—˜λ¦¬λ¨ΌνŠΈ(input)의 제λͺ©μ„ ν‘œν˜„ν•˜λŠ” μ—˜λ¦¬λ¨ΌνŠΈ.
  11. table - λΈ”λŸ­ μ—˜λ¦¬λ¨ΌνŠΈ 쀑 table μ΄λΌλŠ” νŠΉμˆ˜ν•œ μ—˜λ¦¬λ¨ΌνŠΈλ‘œ ν–‰μ—΄μ˜ 집합.
    • thead, tbody, tfoot - λ‚΄λΆ€μ˜ head, body, footer 둜 κ΅¬λΆ„ν•˜λŠ” μ—˜λ¦¬λ¨ΌνŠΈ.
    • tr - row λ₯Ό ν‘œν˜„ν•˜λŠ” μ—˜λ¦¬λ¨ΌνŠΈ.
    • th, td - column 을 ν‘œν˜„ν•˜λŠ” μ—˜λ¦¬λ¨ΌνŠΈ.

HTML 은 κ΅¬μ‘°λ§Œμ„ λ§Œλ“œλŠ” 것이기 λ•Œλ¬Έμ— λˆˆμ— λ³΄μ—¬μ§€λŠ” μ–΄λ–€ 뢀뢄을 μ‹ κ²½ μ“°λŠ” κ°œλ…μ΄ μ•„λ‹ˆλ‹€. HTML 을 가지고 눈으둜 λ³΄μ΄λŠ” 무언가λ₯Ό λ§Œλ“€λ €κ³  μ‹œλ„ν•˜μ§€ 말 것. κ΅¬μ‘°μ—μ„œ μ–΄λ–€ 역할을 λ‹΄λ‹Ήν•˜λŠ”μ§€λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 것이닀. 예λ₯Ό λ“€μ–΄ 과거에 λ ˆμ΄μ•„μ›ƒμ„ 작기 μœ„ν•΄ table을 많이 μ‚¬μš©ν–ˆλŠ”λ° μš”μ¦˜μ€ flex, grid둜 μ–Όλ§ˆλ“  λ ˆμ΄μ•„μ›ƒμ„ 작고 css둜 라인 ν‘œν˜„κΉŒμ§€ κ°€λŠ₯ν•˜λ‹€. μ •λ§λ‘œ ν‘œλ₯Ό μœ„ν•œ table이 μ•„λ‹Œ λˆˆμ— λ³΄μ—¬μ§€λŠ” 뢀뢄에 μ˜ν•œ κ°œλ°œμ„ ν•΄μ„œλŠ” μ•ˆ λœλ‹€.

4. Global Attributes

HTML 속성 쀑 srcλŠ” img, audio, video - source λ“± νŠΉμ •λœ κ³³μ—μ„œλ§Œ μ‚¬μš©ν•  수 μžˆλ‹€. 이런 local 속성이 μ•„λ‹Œ μ „μ—­μ—μ„œ μ‚¬μš© κ°€λŠ₯ν•œ μ „μ—­ 속성듀이 μ‘΄μž¬ν•œλ‹€.

  1. title - μ—˜λ¦¬λ¦¬λ¨ΌνŠΈμ˜ μ •λ³΄λ‚˜ μ„€λͺ…을 툴팁으둜 지정.
  2. style - 인라인 μŠ€νƒ€μΌ 지정.
  3. id, class - css μ„ νƒμžλ₯Ό μœ„ν•΄ 지정.
  4. data-* - ν‰λ²”ν•œ HTML μ—˜λ¦¬λ¨ΌνŠΈλ₯Ό 객체화 ν•  수 μžˆλ‹€. dataset 으둜 μ ‘κ·Όν•œλ‹€.
<div id="user" data-id="1234567890" data-user="carinaanand" data-date-of-birth>
  Carina Anand
</div>
const el = document.querySelector("#user");
console.log(el.dataset)   // DOMStringMap {id: '1234567890', user: 'carinaanand', dateOfBirth: ''}

el.dataset.dateOfBirth = "1960-10-03";
console.log(el.dataset)   // DOMStringMap {id: '1234567890', user: 'carinaanand', dateOfBirth: '1960-10-03'}

delete el.dataset.dateOfBirth;
console.log(el.dataset)   // DOMStringMap {id: '1234567890', user: 'carinaanand'}

const obj = Object.assign({}, el.dataset)
console.log(obj)          // {id: '1234567890', user: 'carinaanand'}




Reference

  1. λ°•μ˜μ›…, β€œν”„λ‘ νŠΈμ—”λ“œ μ›Ή 개발의 λͺ¨λ“  것 초격차 νŒ¨ν‚€μ§€ Online.” fastcampus.co.kr. last modified unknown, Fast Campus.
  2. β€œHTMLElement: dataset property.” MDN Web Docs. Sep. 08, 2023, accessed Feb. 02, 2024, MDN - dataset .