잡동사니

WEB2-Domain Name System 완주 후기 본문

IT/Web

WEB2-Domain Name System 완주 후기

yeTi 2022. 2. 24. 09:35

안녕하세요. yeTi입니다.
오늘은 WEB2-Domain Name System (생활코딩) 을 완주한 후기를 기록하려고 합니다.

강의 수강 계기

현재 제가 블로그에 사용하는 이미지 파일들을 저장하기 위해 개인 나스를 사용하고 있는데요.

HTTP로 도메인을 제공해줘서 잘 사용하고 있었습니다.

그런데 2021년 1월에 출시한 Chrome 88 부터는 모든 혼합 콘텐츠(Mixed Content) 다운로드를 차단하면서 HTTP로 제공하는 제 이미지 파일들이 크롬에서 안나오기 시작한것이죠.ㅜ

그래서 어떻게하면 HTTP로 사용하고 있는 도메인을 URL 변경없이 HTTPS로 적용할 수 있을지에 대해 고민하는중에 DNS에 대해서 먼저 알아야겠다는 생각이 들어서 강의를 정주행하게 됐습니다.

배운점

IP와 Host

인터넷에 참여하는 모든 컴퓨터들은 IP주소를 알아야 합니다.
왜냐하면 IP주소를 가지고 특정 컴퓨터를 찾을 수 있기 때문입니다.
그리고 이렇게 인터넷에 참여한 개별 장치들을 host라고 칭합니다.

그런데 IP 라는 텍스트는 사람들이 외우기에는 적합하지 않은 체계의 문자입니다.
그래서 사람이 외우기 편하도록 구상갓이 바로 도메인입니다.

DNS 이전

도메인을 사용한 초기에는 운영체제에 있는 hosts 파일에 IP와 도메인을 정의하여 인터넷에서 사용하는 방식이었습니다.

하지만 이러한 방식은 IP가 변경됐을때 서로간에 공유하기가 힘들었습니다.

그래서 Stanford Research Institute에서 전세계의 IP정보를 관리했는데요.
도메인 등록자는 IP와 도메인을 단체에 알려서 공유 hosts파일에 등록할 수 있었습니다.
그리고 사용자는 자신의 hosts파일에 공유 hosts파일을 덮어 씌움으로써 전세계에 등록된 도메인을 알 수 있었던 것입니다.

하지만 이 역시도 hosts파일이 커짐에 따라 도메인을 갱신하는데 시간이 오래 걸리는 단점이 있었습니다.

이러한 불편함을 극복하고자 1983년 존 파스텔폴 모카페트리 에 의해서 DNS 가 탄생하게 됐습니다.

도메인 이름의 구조

DNS (Domain Name Service)Root DNS Server, Top-level DNS Server, Second-level DNS Server, Sub DNS Server 와 깉이 총 4개의 레벨로 구성되어있습니다.

각각의 레벨의 도메인은 바로 하위 도메인의 정보만을 알고 있는데요.

예를 들어, 우리가 blog.tistory.com 이라는 주소로 인터넷에 접속하면
DNS 서버 내부적으로
루트 네임 서버에 .com을 알고 있는 탑 레벨 도메인 server의 주소를 물어보고
탑 레벨 서버에 .tistory를 알고 있는 세컨드 레벨 DNS server의 주소를 물어보고
세컨드 레벨 서버에 blog를 알고 있는 서브 도메인의 주소를 물어봐서
최종적으로 서브 도메인으로부터 blog.tistory.com 의 아이피 주소받아 해당 호스트에 접속할 수 있습니다.

그리고 DNS Server는 이러한 반복 작업을 피하고 통신 효율을 높이기 위해 일정 시간동안 호스트에 대한 도메안 정보를 저장하고
이후 요청에서는 저장한 도메인정보를 사용합니다.

nslookup

dignslookup 이라는 툴을 이용하여 특정 도메인의 아이피주소를 알 수 있습니다.

DNS record

DNS record란 도메인 네임을 설정하기 위한 설정값 하나를 의미합니다.

Database로 비유하자면 row로 볼 수 있습니다.

그 중 CNAME 이라는 타입이 있는데요.
CNAME은 목적 주소에 지정할 수 있는 별칭입니다.
예를 들어
cdn.example.com CNAME cdn.google.com
이라고 설정했다면, 사용자가 cdn.example.com 로 접속을 시도할 때 DNS 서버는 목적 주소를 cdn.google.com 로 알려주게 됩니다.

CNAME을 사용할때의 장점은 목적 주소의 변경이 필요한 경우라도 사용자에게 알려진 주소는 변경하지 않아도 된다는 것입니다.

느낀점

DNS 라는 것은 단순히 도메인을 아이피로 알려주는 서비스라는 정도로만 알고 있었는데요.

왜 아이피를 알아야하는지, 왜 DNS 가 필요한지, 내부적으로 어떻게 동작하는지, 어떻게 사용할 수 있는지에 대해 알수있는 유익한 시간이었습니다.

네트워크를 사용하는, 그 중에 도메인을 사용하는 서비스를 만들고 계신분들이라면 교양 차원에서 들어두면 좋다고 생각합니다.

감사합니다.

Comments