DNS 동작 원리

김두현·2022년 10월 31일
2

Backend Curriculum

목록 보기
5/16
post-thumbnail

Goal

  • DNS와 관련된 개념을 파악한다.
    • 도메인
    • 도메인 네임
    • 도메인 네임 시스템 (DNS)
  • DNS의 구성 요소를 파악한다.
    • 도메인 네임 스페이스 (로드맵 도메인 네임은 무엇일까요? Part)
    • 네임 서버 ( = DNS 서버)
    • Resolver ( = Local DNS)
  • DNS의 동작 원리를 이해한다.

DNS(Domain Name System)

  • 도메인 : 각 IP에 이름을 부여하는 것
  • 도메인 네임 : DNS를 통해 부여된 이름
    • ex1) 223.130.195.95 : naver.com
    • ex2) 142.250.207.110 : google.com
  • 도메인 네임 시스템 : 도메인 네임을 IP 주소로 변환하는 시스템

DNS 구성 요소

도메인 네임 스페이스(Domain Name Space)❗


  • DNS가 관리하는 데이터베이스로서, 도메인 네임을 관리하기 위한 규칙

    도메인 네임은 다음과같은 계층적 구조를 지닌다.
  1. Root : 최상위에 위치하며 .으로 표현하고, 생략 가능한 형태이다.
  2. TLD(Top Level Domain) : 도메인 네임의 목적, 종류 또는 국가를 나타낸다.
    ex) .com .net .kr .us
  3. SLD(Second Level Domain) : 도메인 네임의 성격을 나타내며, 위 사진과같이 존재하지 않을수도 있다.
    ex) .co : 영리 목적의 단체 .go : 정부 기관
  4. Subdomain : 임의로 지정하는 사이트 이름
    ex) naver daum google

네임 서버(Name Server)


  • DNS 서버와 같은 말로, 도메인 네임에 해당하는 IP주소를 알려준다.
    도메인 네임 스페이스의 구조 정보를 가진 서버로서, 다음과같은 구성을 지닌다.
    • Root DNS 서버 : TLD DNS 서버의 IP를 저장하고 안내한다.
    • TLD DNS 서버 : SLD DNS 서버의 IP를 저장하고 안내한다.
    • SLD DNS 서버 : Subdomain DNS 서버의 IP를 저장하고 안내한다.
    • 리졸버

리졸버(Resolver)


  • Local DNS와 같은 말로, 클라이언트가 브라우저를 통해 보낸 요청을 네임 서버에게 전달하고, 받은 응답을 다시 클라이언트에게 전달한다.

DNS 동작 원리

  • DNS의 동작 순서는 다음과 같다.
  1. 클라이언트가 주소창에 도메인 네임을 입력하면, 리졸버에게 전달된다.

  2. 리졸버는 도메인 네임의 IP를 Root DNS server에게 묻는다.

  3. Root DNS server는 리졸버에게 해당하는 TLD DNS server를 안내한다.

  4. 리졸버는 도메인 네임의 IP를 TLD DNS server에게 묻는다.

  5. TLD DNS server는 리졸버에게 해당하는 SLD DNS server를 안내한다.

  6. 리졸버는 도메인 네임의 IP를 SLD DNS server에게 묻는다.

  7. SLD DNS server는 리졸버에게 해당하는 Subdomain DNS server를 안내한다.

  8. 리졸버는 도메인 네임의 IP를 Subdomain DNS server에게 묻는다.

  9. subdomain DNS server는 도메인 네임의 IP를 알려준다.

  10. 리졸버는 클라이언트에게 IP를 알려준다.

  • 와닿는 예시로 한 번 더 알아보자.
  1. 주소창에 www.google.co.kr 입력
  2. 리졸버가 Root server에게, "google.co.kr의 IP 알고있니?"
  3. Root server : "아니, 하지만 .kr를 관리하는 TLD server를 알려줄게."
  4. 리졸버가 TLD server에게, "google.co.kr의 IP 알고있니?"
  5. TLD server : "아니, 하지만 .co를 관리하는 SLD server를 알려줄게."
  6. 리졸버가 SLD server에게, "google.co.kr의 IP 알고있니?"
  7. SLD server에게, "아니, 하지만 google을 관리하는 subdomain server를 알려줄게."
  8. 리졸버가 Subdomain server에게, "google.co.kr의 IP 알고있니?"
  9. Subdomain server : "응, IP는 142.250.207.110이야."
  10. 리졸버는 클라이언트에게 IP를 전달한다.

✨오늘 내용은 여기까지✨


커리큘럼 남은 일정

인터넷

  • 인터넷 작동 원리
  • HTTP란?
  • 브라우저 동작 원리
  • DNS 작동 원리
  • 도메인 네임이란?
  • 호스팅이란?

    기본적인 프론트엔드 지식
  • HTML
  • CSS
  • JavaScript

    OS 및 일반적인 지식
  • 터미널 사용방법
  • OS 작동 방식
  • 프로세스 관리
  • 스레드와 동시성
  • 기본적인 터미널 명령어
  • 메모리 관리
  • 프로세스간 통신 (IPC)
  • 입출력 관리
  • POSIX 기초
  • 기본적인 네트워크 개념

    버전 관리
  • Git 기본 사용법

    DataBase
  • PostgreSQL (변경 가능성 있음)
  • MongoDB

    DataBase 상세 정보
  • ORM
  • ACID
  • Transaction
  • N + 1 Problem
  • DataBase 정규화
  • Index와 작동 방식

    API
  • 인증
  • REST
  • JSON APIs

    캐싱
  • CDN
  • Server side
  • Client side

    웹 보안 지식
  • MD5, SHA family, scyrpt, bcrypt
  • HTTPS, CORS, SSL/TL, 보안 정책

    Testing
  • 통합 테스트
  • 단위 테스트
  • 기능 테스트

  • CI/CD

    개발과 설계 원칙
  • SOLID
  • KISS
  • YAGNI
  • DRY

    아키텍처 패턴
  • 모놀로틱 앱
  • 마이크로서비스
  • SQA
  • Serverless

    검색 엔진
  • ElasticSearch

    메세지 브로커
  • RabbitMQ, Kafka

    컨테이너화 vs 가상화
  • Docker

    GraphQL
  • Apollo

  • 웹 소켓

  • 웹 서버

    확장성
  • 측정, 모니터링, 원격측정
  • 마이그레이션 전략
  • 수평적 확장 vs 수직적 확장
  • 관찰 가능성을 고려한 확장

참고 자료

DNS (Domain Name System) 개념 및 동작 원리
DNS란? (도메인 네임 시스템 개념부터 작동 방식까지)
도메인 네임은 무엇인가요?


💕오류 지적 및 피드백은 언제든 환영입니다. 복제시 출처 남겨주세요!💕
💕좋아요와 댓글은 큰 힘이 됩니다.💕
profile
I AM WHO I AM

0개의 댓글