TL;DR

  1. λ©”μ‹œμ§€λ₯Ό μ£Όκ³ λ°›κ³ μž ν•˜λŠ” λŒ€μƒ 식별 방법 : 도메인 λ„€μž„, DNS
  2. μ›Ήμƒμ˜ μžμ› 식별 방법 : URI, URL, RUN

도메인 λ„€μž„κ³Ό λ„€μž„ μ„œλ²„

  • IP μ£Όμ†Œλ§ŒμœΌλ‘œ λͺ¨λ“  호슀트λ₯Ό μ‹λ³„ν•˜λŠ”λ°λŠ” λͺ‡ κ°€μ§€ λΆˆνŽΈν•¨μ΄ 있음
    • λͺ¨λ“  호슀트 IP μ£Όμ†Œ κΈ°μ–΅ 어렀움
    • 호슀트 IPλŠ” λ°”λ€” 수 있음
도메인 λ„€μž„ : 호슀트의 IP μ£Όμ†Œμ™€ λŒ€μ‘λ˜λŠ” λ¬Έμžμ—΄ ν˜•νƒœμ˜ νŠΉμ • 정보
  • www.naver.com, …
  • IP μ£Όμ†Œκ°€ μ „ν™”λ²ˆν˜ΈλΌλ©΄, 도메인 λ„€μž„μ€ μ‚¬μš©μž 이름
λ„€μž„ μ„œλ²„ : 도메인 λ„€μž„κ³Ό IP μ£Όμ†Œλ₯Ό κ΄€λ¦¬ν•˜λŠ” μ„œλ²„
  • κ·Έ 쀑 도메인 λ„€μž„μ„ κ΄€λ¦¬ν•˜λŠ” λ„€μž„ μ„œλ²„λŠ” DNS μ„œλ²„
  • 도메인 λ„€μž„μ„ λ„€μž„ μ„œλ²„μ— 물어보면 IP μ£Όμ†Œ μ•Œλ €μ€Œ
    • resolving : IP μ£Όμ†Œλ₯Ό λͺ¨λ₯΄λŠ” μƒνƒœμ—μ„œ 도메인 λ„€μž„μ— λŒ€μ‘λ˜λŠ” IP μ£Όμ†Œλ₯Ό μ•Œμ•„λ‚΄λŠ” κ³Όμ •
도메인 λ„€μž„μ˜ ꡬ쑰
  • 도메인 λ„€μž„μ˜ λ’€μ—μ„œλΆ€ν„° ’.’을 κΈ°μ€€μœΌλ‘œ κ³„μΈ΅μ μœΌλ‘œ λΆ„λ₯˜ν•˜λ©° 일반적으둜 3~5 λ‹¨κ³„λ‘œ ꡬ성
  • 전체 μ£Όμ†Œ 도메인 λ„€μž„ (FQDN, Fully-Qualified Domain Name) : www.naver.com
    • 루트 도메인 : . -> 보톡 μƒλž΅
    • μ΅œμƒμœ„ 도메인 (Top Level Domain) : com
    • 2단계 도메인 : naver
    • 3단계 도메인 : www
  • 호슀트 λ„€μž„ : FQDN의 첫 번째 λΆ€λΆ„ (www)
    • FQDN 전체 μ˜λ―Έν•˜κΈ°λ„ 함
DNS (Domain Name System) : 계측적이고 λΆ„μ‚°λœ 도메인 λ„€μž„μ— λŒ€ν•œ 관리 체계 or ν˜ΈμŠ€νŠΈκ°€ DNSλ₯Ό μ΄μš©ν•  수 μžˆλ„λ‘ ν•˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 계측 ν”„λ‘œν† μ½œ
  • 계측적인 도메인 λ„€μž„μ„ 효율적으둜 κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄ λ„€μž„ μ„œλ²„λ„ 계측적 ν˜•νƒœλ₯Ό 가짐
  • λ˜ν•œ μ „ 세계 μ—¬λŸ¬ ꡰ데 μœ„μΉ˜ν•΄ 있음

μ„œλΈŒ 도메인

λ‹€λ₯Έ 도메인이 ν¬ν•¨λœ 도메인을 의미

  • μ˜ˆμ‹œ : google.com의 μ„œλΈŒ 도메인
    • mail.google.com
    • www.google.com
    • scholar.google.com
    • drive.google.com
    • …

계측적 λ„€μž„ μ„œλ²„

λ‹€μ–‘ν•œ λ„€μž„ μ„œλ²„ μ’…λ₯˜
1. 둜컬 λ„€μž„ μ„œλ²„
  • ν΄λΌμ΄μ–ΈνŠΈκ°€ κ°€μž₯ λ¨Όμ € μ°ΎλŠ” λ„€μž„ μ„œλ²„λ‘œ μš°μ„  ν΄λΌμΈνŠΈκ°€ μ ‘μ†ν•˜κΈ° μœ„ν•œ μ£Όμ†Œ ν•„μš”
    • ISPμ—μ„œ 둜컬 λ„€μž„ μ„œλ²„ μ£Όμ†Œ ν• λ‹Ή
    • 곡개 DNS μ„œλ²„ 이용
      • 8.8.8.8, 8.8.4.4 (ꡬ글)
      • 1.1.1.1 (ν΄λΌμš°λ“œ ν”Œλ ˆμ–΄)
  • λŒ€μ‘λ˜λŠ” IP μ£Όμ†Œλ₯Ό μ•Œλ©΄ λ°”λ‘œ λ°˜ν™˜
  • λ§Œμ•½ λͺ¨λ₯Έλ‹€λ©΄ 루트 λ„€μž„ μ„œλ²„μ— 질문
2. 루트 λ„€μž„ μ„œλ²„ : www.example.com μ£Όμ†Œ? -> com κ΄€λ¦¬ν•˜λŠ” λ„€μž„ μ„œλ²„ IP μ£Όμ†Œ λ°˜ν™˜
  • 둜컬 λ„€μž„ μ„œλ²„κ°€ 도메인 λ„€μž„μ— λŒ€μ‘λ˜λŠ” IP μ£Όμ†Œλ₯Ό λͺ¨λ₯Ό λ•Œ μ§ˆμ˜ν•˜λŠ” μ„œλ²„
  • 루트 도메인을 κ΄€μž₯ν•˜λŠ” λ„€μž„ μ„œλ²„
  • β€˜com’과 같은 μ΅œμƒμœ„ 도메인 (TLD) λ„€μž„ μ„œλ²„μ˜ IP μ£Όμ†Œ λ°˜ν™˜
3. TLD λ„€μž„ μ„œλ²„ : TLDλ₯Ό κ΄€λ¦¬ν•˜λŠ” λ„€μž„ μ„œλ²„ : www.example.com μ£Όμ†Œ? -> example.com κ΄€λ¦¬ν•˜λŠ” λ„€μž„ μ„œλ²„ IP μ£Όμ†Œ λ°˜ν™˜
  • ν•˜μœ„ 도메인 λ„€μž„ μ„œλ²„μ— λŒ€ν•œ IP μ£Όμ†Œλ₯Ό μ•Œλ €μ€Œ
  • 계속 ν•˜μœ„ 도메인에 λŒ€ν•œ λ„€μž„μ„œλ²„λ₯Ό μž¬κ·€μ μœΌλ‘œ 찾아감
4. μ±…μž„ λ„€μž„ μ„œλ²„
  • μžμ‹ μ΄ κ΄€λ¦¬ν•˜λŠ” 도메인 μ˜μ—­μ— μ†ν•œ μ§ˆμ˜κ°€ 였면 κ³§λ°”λ‘œ λŒ€λ‹΅
  • 둜컬 λ„€μž„ μ„œλ²„κ°€ λ§ˆμ§€λ§‰μœΌλ‘œ μ§ˆμ˜ν•˜λŠ” λ„€μž„ μ„œλ²„

둜컬 λ„€μž„ μ„œλ²„ -> TLD λ„€μž„ μ„œλ²„ -> β€’ β€’ β€’ -> μ±…μž„ λ„€μž„ μ„œλ²„ μˆœμ„œλ‘œ μ§ˆμ˜ν•΄μ„œ μ›ν•˜λŠ” IP μ£Όμ†Œ μ•Œμ•„λƒ„

Resolving κ³Όμ •
μž¬κ·€μ  질의 : κ°€μž₯ λ‹¨μˆœν•œ 방식
  • 질문 : ν΄λΌμ΄μ–ΈνŠΈ -> 둜컬 λ„€μž„ μ„œλ²„ -> 루트 λ„€μž„ μ„œλ²„ -> TLD λ„€μž„ μ„œλ²„ -> …
  • 응닡은 질문의 μ—­μˆœ
반볡적 질의
  • 둜컬 λ„€μž„ μ„œλ²„κ°€ μ€‘κ°œ μ—­ν• 
    • 루트 λ„€μž„ μ„œλ²„λ‘œλΆ€ν„° TLD λ„€μž„ μ„œλ²„ IP λ°›μŒ
    • TLD λ„€μž„ μ„œλ²„λ‘œλΆ€ν„° ν•˜μœ„ λ„€μž„ μ„œλ²„ IP λ°›μŒ
    • …
    • μ•Œμ•„λ‚΄λ©΄ ν΄λΌμ΄μ–ΈνŠΈμ— 전달

DNS μΊμ‹œ

  • μž¬κ·€μ , 반볡적 질의 λͺ¨λ‘ μ‹œκ°„μ΄ 였래 걸리고 λ„€νŠΈμ›Œν¬ 상 λ©”μ‹œμ§€ μˆ˜κ°€ μ§€λ‚˜μΉ˜κ²Œ λŠ˜μ–΄λ‚  수 있음
  • λ”°λΌμ„œ μΊμ‹œλ₯Ό μ΄μš©ν•΄μ„œ λ„€μž„ μ„œλ²„λ“€μ΄ 기쑴에 응닡받은 κ²°κ³Όλ₯Ό μž„μ‹œ μ €μž₯ν–ˆλ‹€κ³  같은 μ§ˆμ˜μ— μž¬ν™œμš©
  • TTL λ§ŒνΌμ— ν•΄λ‹Ήν•˜λŠ” μ‹œκ°„ λ™μ•ˆλ§Œ μΊμ‹œν•΄λ†“μŒ

μžμ›1을 μ‹λ³„ν•˜λŠ” URI

  • URI (Uniform Resource Identifier) : μžμ›μ„ 식별할 수 μžˆλŠ” 정보
    • λ„€νŠΈμ›Œν¬μƒμ—μ„œ μžμ›μ„ μ£Όκ³  λ°›μœΌλ €λ©΄ λ¨Όμ € 식별을 해야함
    • 세뢀적 λ°©μ‹μœΌλ‘œ URL, URN λ‚˜λ‰¨
URL (Uniform Resource Locator) : μœ„μΉ˜λ₯Ό μ΄μš©ν•œ μžμ› 식별 방법
  • 더 많이 μ‚¬μš©
  • ν˜•μ‹
1. scheme : μžμ›μ— μ ‘κ·Όν•˜λŠ” 방법
  • μ‚¬μš©ν•  ν”„λ‘œν† μ½œ λͺ…μ‹œ
    • HTTP μ‚¬μš© -> http://
    • HTTPS μ‚¬μš© -> https://
2. authority : 호슀트λ₯Ό νŠΉμ •ν•  수 μžˆλŠ” 정보
  • IP μ£Όμ†Œ ν˜Ήμ€ 도메인 λ„€μž„
  • 포트 λ²ˆν˜ΈκΉŒμ§€ μΆ”κ°€ κ°€λŠ₯
3. path : μžμ›μ΄ μœ„μΉ˜ν•œ 경둜
  • / κΈ°μ€€μœΌλ‘œ κ³„μΈ΅μ μœΌλ‘œ ν‘œν˜„
4. query : HTTP에 μš”μ²­ν•  ꡬ체적인 μš”κ΅¬μ‚¬ν•­
  • 쿼리 λ¬Έμžμ—΄, 쿼리 νŒŒλΌλ―Έν„° μž‘μ„±
  • ?둜 μ‹œμž‘λ˜λŠ” <key=value>ν˜•νƒœλ‘œ &둜 μ—¬λŸ¬ 쿼리 λ¬Έμžμ—΄ μ—°κ²° κ°€λŠ₯
5. fragment : μžμ›μ˜ ν•œ 쑰각을 κ°€λ¦¬ν‚€λŠ” 정보
  • https://datatracker.ietf.org/doc/html/rfc3986 : ν•΄λ‹Ή html 파일 첫 λΆ€λΆ„ μ—΄λ¦Ό
  • https://datatracker.ietf.org/doc/html/rfc3986#section-1.1.2 : ν•΄λ‹Ή html 파일의 1.1.2 μ„Ήμ…˜ μ—΄λ¦Ό
URN (Uniform Resource Name) : 이름을 μ΄μš©ν•œ μžμ› 식별 방법
  • μžμ›μ˜ μœ„μΉ˜κ°€ λ³€ν•˜λ©΄ URL둜 식별 λΆˆκ°€λŠ₯
  • μžμ›μ— κ³ μœ ν•œ 이름을 λΆ™μ—¬μ„œ 식별
    • urn:isbn:045145023 : ISBN이 045145023 인 λ„μ„œλ₯Ό λ‚˜νƒ€λ‚΄λŠ” URN
    • urn:ietf:rtc:2648 : IETF 곡식 λ¬Έμ„œ 쀑 RFC 2648을 λ‚˜νƒ€λ‚΄λŠ” URN
  • 일반 μ›ΉλΈŒλΌμš°μ €μƒμ—μ„œ URN만으둜 μ›ν•˜λŠ” νŽ˜μ΄μ§€λ‘œ 이동 λΆˆκ°€λŠ₯
    • μˆ˜λ™μœΌλ‘œ URL둜 λ³€κ²½ν•˜κ±°λ‚˜ URN 해석 μ„œλΉ„μŠ€λ₯Ό μ΄μš©ν•˜κ±°λ‚˜ 해야함

DNS μžμ› λ ˆμ½”λ“œ

DNS μžμ› λ ˆμ½”λ“œ(Resource Record)λŠ” λ„€μž„ μ„œλ²„κ°€ μ €μž₯ν•˜κ³  κ΄€λ¦¬ν•˜λŠ” 도메인 κ΄€λ ¨ μ •λ³΄λ‘œ 도메인 이름을 κ΅¬μž…ν•œ λ’€ μ›Ή μ‚¬μ΄νŠΈ, 메일 μ„œλ²„, μ™ΈλΆ€ μ„œλΉ„μŠ€ 등을 μ—°κ²°ν•  λ•Œ DNS λ ˆμ½”λ“œλ₯Ό λ“±λ‘ν•œλ‹€.

예λ₯Ό λ“€μ–΄ example.comμ΄λΌλŠ” 도메인을 κ΅¬μž…ν–ˆκ³ , 이 λ„λ©”μΈμœΌλ‘œ μ ‘μ†ν•œ μ‚¬μš©μžλ₯Ό μ„œλ²„ 1.2.3.4둜 보내고 μ‹Άλ‹€λ©΄ λ„€μž„ μ„œλ²„μ— λ‹€μŒκ³Ό 같은 λ ˆμ½”λ“œλ₯Ό λ“±λ‘ν•œ λ‹€.

  • 호슀트 이름: example.com.
  • κ°’: 1.2.3.4
  • TTL: 300
  • μœ ν˜•: A

이 μ„€μ •μ˜ μ˜λ―ΈλŠ” example.com을 μ‘°νšŒν•˜λ©΄ IPv4 μ£Όμ†Œ 1.2.3.4λ₯Ό μ‘λ‹΅ν•˜λΌλŠ” λœ»μ΄λ‹€.

DNSλŠ” URL 전체λ₯Ό λ“±λ‘ν•˜λŠ” μ‹œμŠ€ν…œμ΄ μ•„λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ https://www.example.com:443/api/usersλΌλŠ” URL이 μžˆμ„ λ•Œ DNSκ°€ λ‹€λ£¨λŠ” 뢀뢄은 www.example.com이 λΌλŠ” 도메인 이름이닀. https, 포트, 경둜(/api/users)λŠ” DNSκ°€ μ•„λ‹ˆλΌ λΈŒλΌμš°μ €, μ›Ή μ„œλ²„, ν”„λ‘μ‹œ, μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ²˜λ¦¬ν•œλ‹€.

μ£Όμš” λ ˆμ½”λ“œ μœ ν˜•μ€ λ‹€μŒκ³Ό κ°™λ‹€.

  • A: 도메인 이름을 IPv4 μ£Όμ†Œμ— μ—°κ²°ν•œλ‹€. 예λ₯Ό λ“€μ–΄ example.com A 1.2.3.4λŠ” example.com을 1.2.3.4둜 ν•΄μ„ν•˜κ²Œ ν•œλ‹€.
  • AAAA: 도메인 이름을 IPv6 μ£Όμ†Œμ— μ—°κ²°ν•œλ‹€. IPv6둜 μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•  λ•Œ μ‚¬μš©ν•œλ‹€.
  • CNAME: 도메인 이름을 λ‹€λ₯Έ 도메인 μ΄λ¦„μ˜ λ³„μΉ­μœΌλ‘œ λ§Œλ“ λ‹€. 예λ₯Ό λ“€μ–΄ www.example.com CNAME example.com은 www.example.com이 example.com을 가리 ν‚€κ²Œ ν•œλ‹€.
  • NS: ν•΄λ‹Ή 도메인 λ˜λŠ” ν•˜μœ„ λ„λ©”μΈμ˜ DNS 정보λ₯Ό μ–΄λ–€ λ„€μž„ μ„œλ²„κ°€ κ΄€λ¦¬ν•˜λŠ”μ§€ μ§€μ •ν•œλ‹€.
  • MX: ν•΄λ‹Ή λ„λ©”μΈμ˜ 메일을 μ–΄λ–€ 메일 μ„œλ²„κ°€ 받을지 μ§€μ •ν•œλ‹€. 예λ₯Ό λ“€μ–΄ user@example.com으둜 μ˜€λŠ” 메일을 μ²˜λ¦¬ν•  μ„œλ²„λ₯Ό μ§€μ •ν•  λ•Œ μ‚¬μš©ν•œλ‹€.
  • TXT: μž„μ˜μ˜ ν…μŠ€νŠΈ 정보λ₯Ό μ €μž₯ν•œλ‹€. 도메인 μ†Œμœ κΆŒ 검증, SPF, DKIM, DMARC 같은 메일 λ³΄μ•ˆ 섀정에 자주 μ‚¬μš©λœλ‹€.

μ›Ή μ‚¬μ΄νŠΈλ₯Ό μ—°κ²°ν•  λ•Œ ν”ν•œ ꡬ성은 λ‹€μŒκ³Ό κ°™λ‹€.

example.com      A      1.2.3.4
www.example.com  CNAME  example.com

이 경우 μ‚¬μš©μžκ°€ www.example.com으둜 μ ‘μ†ν•˜λ©΄ DNSλŠ” λ¨Όμ € www.example.com이 example.com의 λ³„μΉ­μž„μ„ ν™•μΈν•˜κ³ , λ‹€μ‹œ example.com의 A λ ˆμ½”λ“œλ₯Ό λ”° 라가 μ΅œμ’… IPv4 μ£Όμ†Œ 1.2.3.4λ₯Ό μ–»λŠ”λ‹€. μ‹€μ œ DNS μ‘λ‹΅μ—μ„œλŠ” CNAMEκ³Ό μ΅œμ’… A λ ˆμ½”λ“œκ°€ ν•¨κ»˜ λ°˜ν™˜λ  μˆ˜λ„ μžˆμ§€λ§Œ, κ°œλ…μ μœΌλ‘œλŠ” 별칭을 따라가 μ΅œμ’… μ£Όμ†Œλ₯Ό μ°ΎλŠ” 과정이닀.

TTL(Time To Live)은 DNS 응닡을 μΊμ‹œμ— μ–Όλ§ˆλ‚˜ 였래 보관할지λ₯Ό λ‚˜νƒ€λ‚Έλ‹€. 예λ₯Ό λ“€μ–΄ TTL이 300이면 λ¦¬μ‘Έλ²„λ‚˜ ν΄λΌμ΄μ–ΈνŠΈκ°€ ν•΄λ‹Ή 응닡을 μ΅œλŒ€ 300초 λ™μ•ˆ μΊμ‹œν•  수 μžˆλ‹€. TTL이 짧으면 λ³€κ²½ 사항이 비ꡐ적 빨리 λ°˜μ˜λ˜μ§€λ§Œ DNS μ‘°νšŒκ°€ 더 자주 λ°œμƒν•˜κ³ , TTL이 κΈΈλ©΄ μΊμ‹œ νš¨μœ¨μ€ μ’‹μ•„μ§€μ§€λ§Œ λ³€κ²½ 반영이 λŠ¦μ–΄μ§ˆ 수 있 λ‹€.

도메인을 μ‹€μ œ μ„œλΉ„μŠ€μ— μ—°κ²°ν•˜λ €λ©΄ DNS λ“±λ‘λ§ŒμœΌλ‘œλŠ” λΆ€μ‘±ν•˜λ‹€. DNSλŠ” 도메인을 IP μ£Όμ†Œλ‘œ 바꿔쀄 뿐이닀. ν•΄λ‹Ή IP의 μ„œλ²„κ°€ μ™ΈλΆ€μ—μ„œ μ ‘κ·Ό κ°€λŠ₯ν•΄μ•Ό ν•˜κ³ , HTTPλŠ” 보톡 80, HTTPSλŠ” 443 ν¬νŠΈκ°€ μ—΄λ € μžˆμ–΄μ•Ό ν•˜λ©°, μ›Ή μ„œλ²„λ‚˜ λ¦¬λ²„μŠ€ ν”„λ‘μ‹œκ°€ μš”μ²­μ„ λ°›μ•„ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μœΌλ‘œ 전달해야 ν•œλ‹€. HTTPSλ₯Ό μ‚¬μš©ν•˜λ €λ©΄ ν•΄λ‹Ή 도메인에 λŒ€ν•œ TLS μΈμ¦μ„œλ„ ν•„μš”ν•˜λ‹€.

Footnotes

  1. λ„€νŠΈμ›Œν¬μƒμ˜ λ©”μ‹œμ§€λ₯Ό 톡해 μ£Όκ³ λ°›λŠ” λŒ€μƒ (HTML, 이미지, λ™μ˜μƒ, ν…μŠ€νŠΈ …) ↩