티스토리 뷰

도메인 네임(Domain Name)



처음 인터넷 상에서는 어떤 사이트를 접근하고자 할 때, IP주소만을 통해서 접근할 수 있었다. 하지만 IP주소라는 것은 32비트 2진수의 값을 단순이 8비트 씩 묶어서 표현한 것에 불과하여, 사람이 그 주소를 쉽게 이해하고 외워서 사용하기는 힘들었다. IP 주소에 대한 자세한 정보는 아래 링크에 정리되어 있으니 참고하기 바란다.


[Network]IP 주소(IP Address)

http://hyoje420.tistory.com/10


사람들은 어떤 웹 사이트에 접근할 때, IP주소가 아니라 어떤 별명을 붙여서 접속할 수 있다면 더욱 편리할 것이라는 생각을 했다. 그 결과로 나타난 것이 도메인 주소(Domain Address)이다.


이 주소는 IP주소와 다르게 어떤 의미를 가지고 있으므로, 사람들이 숙지하기에 훨씬 쉬웠다. 따라서 사람들은 사용하기 어려운 IP주소에 별명을 붙여서 사용하게 되는데, 이 별명을 도메인 주소라고 한다.


http://www.naver.com

210.89.160.88


네이버를 예를 들어서 설명하자면, 위의 두 주소는 같은 페이지를 가리키는 주소이다. 대부분의 사람들은 의미없는 연속된 숫자보다는 영문으로 의미가 부여된 도메인 주소가 더 직관적으로 다가올 것이다.




도메인 네임 서버(DNS Server)



기존에는 도메인 네임들을 로컬 저장소에 저장해 두고 참조해서 사용하는 형식으로 사용했다. 따라서 자신의 컴퓨터와 다른 사람의 컴퓨터는 같은 IP주소라도 자신이 로컬 저장소에 저장해 놓은 다른 도메인 주소로 설정될 수 있었다. 하지만 도메인 주소가 하나 둘 생겨나면서 이러한 도메인 주소들을 공통적으로 관리해야할 필요성이 생기게 된다.


이러한 이유로 도메인 주소를 서버에 모아둔 것이 DNS 서버(DNS Server)이다. 도메인 네임 서버는 전 세계에 골고루 분포되어 있으며, 모든 컴퓨터는 기본적으로 도메인 주소를 가지고 있다. 만약 내 컴퓨터에 지정된 DNS 서버의의 IP 주소를 제거하면, 내 컴퓨터는 더이상 도메인 주소를 알아보지 못할 것이다.





기본적인 동작 순서는 위 그림을 보면 쉽게 이해할 수 있을 것이다. 


1. 사용자가 브라우저의 주소창에 도메인 주소를 입력한다.


2. 브라우저는 이 도메인 주소의 실제 IP주소를 알아내기 위해서 DNS 서버에 요청한다.


3. DNS 서버는 해당 도메인 주소에 맵핑되는 IP주소를 돌려준다.


4. 브라우저는 돌려받은 IP주소를 통해 실제 서버에 페이지를 요청한다.


5. 서버는 요청한 페이지를 응답한다.



위와 같은 순서로 동작한다. DNS 서버에서는 실제로 상당히 많은 서버를 거쳐서 도메인 주소를 검색하는 로직이 존재하지만 그 내용은 추후에 다뤄보도록 하고, 대략적인 동작 방식만 이해하도록 하자.



DNS 서버 캐시


우리가 자주 사용하는 페이지들은 캐시로 저장시켜 놓는다. 매번 입력할 때 마다 DNS 서버에 요청하여 돌려받는 것은 상당히 비효율적일 것이다. 따라서 로컬 저장소에 최근에 접속한 페이지의 IP주소를 도메인 주소와 매핑시켜서 저장시켜 놓고, 브라우저에서 요청이 들어오게 되면 DNS 서버에 요청하기 전에 이미 캐싱되어 있는 도메인 주소인지 확인을 하고 있다면 바로 가져와서 IP주소를 반환시켜 준다. 따라서 상당히 빠른 속도로 IP주소를 얻어 낼 수 있게 된다.

하지만 캐싱되어 있는 주소와 실제 주소가 달라질 수 있는 문제가 있어 동기화에 대한 문제가 존재하지만, 도메인 주소에 대한 IP주소가 바뀌는 일은 이미 활성화되어 있는 서버에서는 드문일이기 때문에 캐시는 상당히 효율적이다.

간혹 개발시에 계속적으로 캐싱이 일어나서 반영 결과가 즉각적으로 보이지 않는 경우가 있는데 이때는 DNS 서버의 캐시기능을 꺼놓을 수도 있다.



참고



https://ko.wikipedia.org/wiki/%EB%8F%84%EB%A9%94%EC%9D%B8_%EB%84%A4%EC%9E%84_%EC%8B%9C%EC%8A%A4%ED%85%9C

https://ko.wikipedia.org/wiki/%EC%9D%BC%EB%B0%98_%EC%B5%9C%EC%83%81%EC%9C%84_%EB%8F%84%EB%A9%94%EC%9D%B8

https://m.blog.naver.com/PostView.nhn?blogId=s2kiess&logNo=220392888657&proxyReferer=https%3A%2F%2Fwww.google.com%2F

http://bobeathaja.tk/%EB%8F%84%EB%A9%94%EC%9D%B8%EA%B3%BC-%EB%8F%84%EB%A9%94%EC%9D%B8-%EB%84%A4%EC%9E%84-%EC%84%9C%EB%B2%84%EC%9D%98-%EB%9C%BB%EA%B3%BC-%ED%8A%B9%EC%A7%95/

'Network' 카테고리의 다른 글

[Network]HTTP 응답코드(HTTP Response Code)  (0) 2018.09.07
[Network]네트워크 클래스(Network Class)  (0) 2018.08.31
[Network]서브넷(Subnet)  (15) 2018.08.31
[Network]IP 주소(IP Address)  (2) 2018.07.10
[Network]Web Server & WAS  (5) 2018.07.02
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함