[하루 한시간] DNS / A Record / CNAME

신지웅·2023년 3월 20일
0

하루 한시간

목록 보기
2/7

DNS (Domain Name System)

얼마전, 나의 포트폴리오 웹사이트를 깃허브를 통해서 처음으로 배포해보았다.

포트폴리오 사이트를 나름 프로페셔널(?)하게 보이게 하고 싶었기에, 나름 도메인을 구입해서 깃허브와 연결시켰는데, 이때 처음 본 것이 DNS였고, 이 안에 CNAME을 설정하는 과정을 거쳤다.

DNS와 CNAME은 과연 무엇일까?

DNS (Domain Name System)

웹세상의 수많은 웹사이트는 IP주소라는 것을 가지고 있다. 이게 얘네들의 가장 근본적인 구분 방식이다.

하지만, IP주소는 몽땅 숫자와 점으로 이루어져 있다. 그러니 어떤놈이 어떤놈인지 알아채기가 쉽지않다. 우리는 모두 이름으로 인식을 하는데에 익숙하니까.

그래서 우리는 구글링을 하고 싶으면 google.com을 쳐서 들어간다.

이렇게, 우리의 편의를 위해서 IP주소를 인식하기 쉬운 현재의 웹사이트 이름으로 연결시키는 시스템을 Domain Name System, 즉, DNS라고 한다.

이때, 우리는 IP주소 xxx.xx.xx.xx를 google.com이라고 부를거야~라고 데이터를 저장해놓고 매칭시키게 되는데, 이때 저장되는 방식에 따라서 1) A Record2) CNAME 으로 분류될 수 있다.

그럼 이제 이 두방식에 대해서 알아보자.

A Record

이 방식은 어떤 도메인 이름을 IP주소와 직접적으로 매핑시키는 방식이다.

직접적으로 매핑시키기 때문에, 부하가 적다. 찾아가는 과정이 한방에 끝나기 때문이다.

다만, 이 방식은 직접 참조를 하기 때문에, 만약 IP주소 자체가 자주 바뀌는 상황이라면 연결된 모든 A Record를 바꿔줘야하기 때문에 꽤나 골치가 아픈 상황이 발생할 수 있다.

google.com → xxx.xx.xx.xx

CNAME

이 방식은 어떤 도메인 이름을 또다른 도메인 이름과 매핑시키는 방식이다.

어 그럼 얘는 IP주소랑 매핑을 안하나? 아니다.

결국 웹세상은 IP주소로 이루어져있기 때문에, 결국 마지막 행선지는 IP주소가 맞다.

다만, 간접적으로 참조하는 웹사이트 주소가 많은 경우에 돌고돌아 마지막에 직접적으로 IP주소와 연결시키기 때문에, 위에서 언급된 IP주소가 자주 바뀌는 상황에서 모든 연결된 주소를 바꾸는것이 아니라 최종적으로 연결된 한놈만 바꿔주면 간단하게 대응이 가능하다.

그럼 문제는 뭐냐?

부하가 많을 수 밖에 없다. IP주소로 찾아가기까지 DNS요청을 여러번 해야하기 때문이다.

google.com → google-search.com → search-on-google.com → xxx.xx.xx.xx

결국 이 두 방식은 장단점이 확실하다.

다시 기억을 더듬어보면, 나는 깃허브에 코드를 올렸으니 일단 github.com에 내 코드가 올라가있는것인데, 이걸 내가 구매한 도메인 (shinnjiwoong.com)으로 연결시키기 위해서는 CNAME을 통해 저장해야했던 것이다.

profile
WORLDWIDEWEB

0개의 댓글