mjeongriver
article thumbnail
 

도메인 테스트를 하면서 궁금했던 내용들

프로젝트를 진행하면서 도메인마다 서로 다른 메뉴 구성이 필요했습니다. 각 도메인에서 올바른 메뉴가 제대로 렌더링되는지 확인하기 위해 hosts 파일을 활용하여 로컬 환경에서 도메인 별 테스트를 진행했습니다. 이 과정에서 몇 가지 궁금한 점들이 생겼고, 이를 해결하기 위해 DNS와 hosts 파일의 작동 방식에 대한 이해가 필요한 것 같아 글을 작성하게 되었습니다.

 

왜 굳이 hosts 파일을 사용하는 걸까?

처음에는 단순히 DNS 서버를 통해 IP 주소를 받아올 수 있는데, 왜 굳이 hosts 파일을 수정해야 하는지 의문이 들었습니다. 알고 보니, hosts 파일을 사용하면 특정 도메인을 로컬 환경으로 빠르게 연결할 수 있어 테스트에 유용하다는 걸 깨달았습니다. 특히, 도메인 별로 서로 다른 메뉴 구성을 해야 할 때, 로컬 서버에서 실시간으로 변경된 도메인을 테스트하기 위해 매우 편리했습니다.

 

hosts 파일을 수정할 때 생길 수 있는 문제는 없을까?

hosts 파일을 수정하는 것은 간단해 보이지만, 의외로 주의해야 할 점이 많았습니다. 가장 걱정됐던 건 보안 문제였습니다. hosts 파일을 통해 특정 도메인을 가짜 IP로 설정하는 것은 매우 간단한데, 만약 악성 프로그램이 이를 악용하면 피싱 사이트로 접속을 유도할 수 있습니다. 이와 같은 파밍(Pharming) 공격을 방지하기 위해서는 적절한 권한 설정이 필수적입니다.

/etc/hosts 파일이 잘못된 권한으로 설정되어 있다면, 비인가 사용자가 파일을 수정할 수 있어 보안 위험이 증가합니다.
권장되는 권한 설정은 600입니다. 즉, 파일 소유자는 root여야 하며, 파일에 대한 읽기 및 쓰기 권한은 소유자만 가지고, 다른 사용자나 그룹은 접근할 수 없도록 설정해야 합니다.

소유자 설정 sudo chown root:root /etc/hosts
권한 설정 (600: 소유자는 읽기 및 쓰기, 다른 사용자는 접근 불가) sudo chmod 600 /etc/hosts

 

도메인 테스트 시 캐시 문제는 어떻게 해결할까?

hosts 파일을 수정했음에도 변경 사항이 즉시 반영되지 않는 경우가 있었습니다. 이는 DNS 캐시 문제였는데, 이전 설정이 캐시에 남아 있기 때문에 발생한 것이었습니다. 이를 해결하기 위해 Windows에서는 ipconfig /flushdns 명령어로 캐시를 삭제할 수 있었고, Mac과 Linux에서는 sudo killall -HUP mDNSResponder 명령어를 사용하여 문제를 해결할 수 있었습니다. 이 방법을 알고 나니 변경 사항이 즉시 반영되었습니다.

 

 

DNS란?

DNS는 도메인 이름을 IP 주소로 변환해주는 시스템입니다. 웹사이트는 IP 주소를 통해 서버에 연결되지만, 사람들이 숫자로 된 IP 주소를 기억하는 것은 어렵기 때문에 도메인 이름이 사용됩니다. DNS는 이러한 도메인 이름을 IP 주소로 변환하거나 그 반대의 작업을 수행하는 중요한 시스템입니다.

DNS의 작동 방식

사용자가 브라우저에 URL을 입력하면, DNS 서버는 해당 URL을 IP 주소로 변환하여 반환합니다.
이 과정에서 먼저 캐시 메모리(이미 저장된 IP 정보)를 확인하고, 없다면 /etc/hosts 파일을 참조한 후, 마지막으로 DNS 서버에 요청을 보냅니다.

 

Hosts란?

DNS와 함께 hosts 파일도 중요한 역할을 합니다.

hosts 파일은 도메인 이름과 IP 주소의 매핑 정보를 로컬에 저장해 두는 파일입니다. 덕분에, 굳이 DNS 서버에 요청하지 않고도 브라우저는 hosts 파일을 참조하여 IP 주소를 찾아 서버에 연결할 수 있습니다.
예를 들어, 브라우저에서 https://www.naver.com을 입력하면, 기본적으로는 DNS 서버를 통해 해당 도메인의 IP 주소를 받아와 연결합니다. 하지만 hosts 파일에 이 도메인의 IP 주소가 미리 설정되어 있다면, DNS를 거치지 않고 바로 해당 IP로 접속할 수 있습니다.

호스트 파일 저장 위치

Windows 시스템에서 hosts 파일은 다음 위치에 저장되어 있습니다:

C:\windows\system32\drivers\etc\hosts
profile

mjeongriver

@mjeongriver

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그