πŸ•ΆοΈ

Web κΈ°λ³Έ 3μš”μ†Œ

notion image
  • URI(Uniform Resource Identifier) : μ›Ήμ—λŠ” μƒλ‹Ήνžˆ λ§Žμ€ λ¦¬μ†ŒμŠ€κ°€ ν¬μ§„λ˜μ–΄ μžˆλŠ”λ° 웹에 μžˆλŠ” μ–΄λ–€ μžμ›μ— μ ‘κ·Όν•˜κΈ° μœ„ν•œ μœ μΌν•œ μ‹λ³„μž
  • HTML
  • HTTP

1. URL 섀계

URL vs URI

핡심 차이 : URL은 ν”„λ‘œν† μ½œμ„ μ΄μš©ν•˜μ—¬ μ–΄λ–»κ²Œ μ ‘κ·Όν•˜λŠ”μ§€μ— λŒ€ν•œ 상세정보가 포함. URIλŠ” μ–΄λ– ν•œ λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν–ˆλŠ”μ§€μ— 상관없이 λ¦¬μ†ŒμŠ€λ₯Ό κ΅¬λΆ„ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λ˜λŠ” 것
URL
URI
URL은 μ•„μ΄ν…œμ˜ identityλ₯Ό μ„œμˆ ν•˜κΈ°μœ„ν•΄ μ‚¬μš©λ¨
URIλŠ” μ•„μ΄ν…œμ˜ identityλ₯Ό μ •μ˜ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λ˜λŠ” 기술(technique)을 μ œκ³΅ν•¨
URL은 ν”„λ‘œν† μ½œκ³Ό 같은 μ ‘κ·Ό λ©”μ„œλ“œμ˜ λ„μ›€μœΌλ‘œ μ›Ή νŽ˜μ΄μ§€, ν˜Ήμ€ μ›Ή νŽ˜μ΄μ§€μ˜ μ»΄ν¬λ„ŒνŠΈλ‘œ μ—°κ²°ν•΄μ€Œ
URIλŠ” μ–΄λ– ν•œ λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν–ˆλŠ”μ§€μ— 상관없이 ν•˜λ‚˜μ˜ λ¦¬μ†ŒμŠ€λ₯Ό λ‹€λ₯Έ λ¦¬μ†ŒμŠ€λ‘œλΆ€ν„° κ΅¬λΆ„ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λ¨
URL은 μ–΄λ– ν•œ ν”„λ‘œν† μ½œμ„ μ‚¬μš©ν–ˆλŠ”μ§€μ— λŒ€ν•œ 상세정보λ₯Ό μ œκ³΅ν•΄μ€Œ
URIλŠ” ν”„λ‘œν† μ½œμ˜ 상세 μ •λ³΄λŠ” ν¬ν•¨ν•˜μ§€ μ•ŠμŒ
URL은 URI의 ν•˜λ‚˜μ˜ μ’…λ₯˜
URIλŠ” URL의 superset(URI β‰₯ URL)
κ΅¬μ„±μš”μ†Œ: ν”„λ‘œν† μ½œ, 도메인(호슀트), path, hash
κ΅¬μ„±μš”μ†Œ: scheme, authority, path, query and many more
eg: https://www.geeksforgeeks.org/
eg: urn:isbn:0-294-56559-3

URI(Uniform Resource Identifier)

  • μΈν„°λ„·μ—μ„œ νŠΉμ • μžμ›μ„ λ‚˜νƒ€λ‚΄λŠ” μ£Όμ†Œ κ°’, ν•΄λ‹Ή 값은 μœ μΌν•¨(응닡은 λ‹¬λΌμ§ˆ 수 있음)
  • μš”μ²­ : https://www.fastcampus.co.kr/resource/sample/1
  • 응닡 : fastcampus.pdf, fastcampus.docx
notion image

μƒλŒ€ κ²½λ‘œμ—μ„œ μ ˆλŒ€ 경둜둜의 λ³€ν™˜(μ‹œμž‘μ μ€ /foo/bar)

notion image

URL (Uniform Resource Locator)

  • 인터넷 μƒμ—μ„œμ˜ μžμ›, νŠΉμ • 파일이 어디에 μœ„μΉ˜ν•˜λŠ”μ§€ 식별 ν•˜λŠ” μ£Όμ†Œ
  • μš”μ²­ : https://www.fastcampus.co.kr/fastcampus.pdf
  • νŠΉμ • μœ„μΉ˜λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 것이기에 변경될 수 μ—†μŒ. URL은 URI의 ν•˜μœ„ κ°œλ…

URI 섀계 원칙(RFC-3986)

  • μ‚¬μš©ν•  수 μžˆλŠ” 문자 (ASCII 문자)
    • μ•ŒνŒŒλ²³ : A-Za-z
    • 숫자 : 0-9
    • 기호 : -.:~@!&’()
  • URIλŠ” μ •λ³΄μ˜ μžμ›μ„ ν‘œν˜„ν•΄μ•Ό 함(λ¦¬μ†ŒμŠ€ λͺ…은 λ™μ‚¬λ³΄λ‹€λŠ” λͺ…사λ₯Ό μ‚¬μš©)
  • μŠ¬λž˜μ‹œ κ΅¬λΆ„μž(/) λŠ” 계측 관계λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 데 μ‚¬μš©ν•¨
    • Classes/java/curriculums/web-master
  • URI 의 λ§ˆμ§€λ§‰ 문자둜( / ) λŠ” ν¬ν•¨ν•˜μ§€ μ•ŠλŠ”λ‹€.
  • ν•˜μ΄ν”ˆ(-)은 URI 가독성을 λ†’μ΄λŠ”λ° μ‚¬μš©ν•¨
  • μžμ›μ— λŒ€ν•œ ν–‰μœ„λŠ” HTTP Method(POST, GET, DELETE, PUT)둜 ν‘œν˜„
    • x GET /members/delete/1 // λ¦¬μ†ŒμŠ€ λͺ…은 λ™μ‚¬λ³΄λ‹€λŠ” λͺ…사λ₯Ό μ‚¬μš© DELETE /memebers/1 x GET /members/show/1 // μ΄λ ‡κ²Œ ν•˜μ§€λ§ˆλΌ GET /members/1 POST /task/1/run //HTTP Method둜 μ•ˆλ  λ•ŒλŠ”
  • 밑쀄(_)은 μ‚¬μš©ν•˜μ§€ μ•ŠμŒ
  • URI κ²½λ‘œμ—λŠ” μ†Œλ¬Έμžκ°€ 적합함
  • 파일 ν™•μž₯μžλŠ” URI에 ν¬ν•¨ν•˜μ§€ μ•ŠλŠ”λ‹€
  • ν”„λ‘œκ·Έλž˜λ° 언어에 의쑴적인 ν™•μž₯자λ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€
  • κ΅¬ν˜„μ— 의쑴적인 경둜λ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€
    • Https://fastcampus.co.kr/servlet/clases/~~
  • μ„Έμ…˜ IDλ₯Ό ν¬ν•¨ν•˜μ§€ μ•ŠλŠ”λ‹€.
  • ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ˜ Methodλͺ…을 μ΄μš©ν•˜μ§€ μ•ŠλŠ”λ‹€
  • λͺ…사에 λ‹¨μˆ˜ν˜• λ³΄λ‹€λŠ” λ³΅μˆ˜ν˜• μ‚¬μš©. μ»¬λ ‰μ…˜μ— λŒ€ν•œ ν‘œν˜„μ€ 볡수둜 μ‚¬μš©
  • 컨트둀러 μ΄λ¦„μœΌλ‘œλŠ” λ™μ‚¬λ‚˜ 동사ꡬλ₯Ό μ‚¬μš©
  • 경둜 λΆ€λΆ„ 쀑 λ³€ν•˜λŠ” 뢀뢄은 μœ μΌν•œ κ°’μœΌλ‘œ λŒ€μ²΄
    • /curriculums/web-master/lessons/{lesson-id}/users/{user-id}
    • /curriculums/web-master/lessons/2/users/100
  • CRUD κΈ°λŠ₯을 λ‚˜νƒ€λ‚΄λŠ” 것은 URIμ—μ‚¬μš©ν•˜μ§€ μ•ŠμŒ
  • URI Query Parameter λ””μžμΈ
    • Uri 쿼리 λΆ€λΆ„μœΌλ‘œ μ»¬λ ‰μ…˜ 결과에 λŒ€ν•΄ 필터링 ν•  수 있음
      • …/curriculums/web-master?chapter=2
      • …/curriculums/web-master?chapter=2&page=0&size=10&sort=asc
    • URI μΏΌλ¦¬λŠ” μ»¬λ ‰μ…˜μ˜ κ²°κ³Όλ₯Ό νŽ˜μ΄μ§€λ‘œ κ΅¬λΆ„ν•˜μ—¬ λ‚˜νƒ€λ‚΄λŠ”λ° μ‚¬μš©ν•¨
  • API에 μžˆμ–΄μ„œ μ„œλΈŒ 도메인은 일관성 있게 μ‚¬μš©ν•΄μ•Όν•¨
    • Https://fastcampus.co.kr
    • Https://api.fastcampus.co.kr
    • Https://api-fastcampus.co.kr
  • ν΄λΌμ΄μ–ΈνŠΈ 개발자 ν¬νƒˆ μ„œλΈŒ 도메인은 일관성 있게 λ§Œλ“ λ‹€.
    • Https://dev-fastcampus.co.kr
    • Https://developer-fastcampus.co.kr

2.
HTTP
HTTP

3. HTML(HyperText MarkupLanguage)

  • HyperTextλŠ” ν…μŠ€νŠΈλ§Œ μžˆλŠ”κ²ƒμ΄ μ•„λ‹ˆλΌ 링크가 μžˆμ–΄μ„œ λ‹€λ₯Έ 정보λ₯Ό λ³Ό 수 μžˆλŠ”κ²ƒ β†’ 이게 μ›Ή
  • λ§ˆν¬μ—… : ν‘œμ‹œν•˜λ‹€. λ‹¨μˆœνžˆ ν…μŠ€νŠΈκ°€ μ•„λ‹Œ ꡬ쑰적으둜 ν‘œν˜„ν•  수 있게(νƒœκ·Έλ₯Όν™œμš©ν•˜μ—¬) ν•˜λŠ” μ–Έμ–΄