제 프로젝트는 사용자가 특정 차트를 고르면, 코스피 코스닥 전 종목의 과거(5년) 차트들을 모두 탐색하여 가장 유사한 차트 10개 정도를 골라 사용자에게 보여주는 것이 목표입니다.
similar chart finder
내 종목의 차트는 상승하는 차트일까요?
3.35.36.208
DNS(Domain Name System) 이해하기
저는 웹 프로젝트를 하나 진행 중인데, similarchart.com이라는 도메인을 구매해서 웹사이트를 운영해 볼 계획입니다. 그전에, DNS에 대해 확실히 짚고 넘어가려고 합니다.
DNS, 즉 도메인 네임 시스템은 인터넷의 전화번호부라고 생각하면 좋습니다. 우리가 웹 브라우저에 주소를 입력하면, 그 주소를 해당 서버의 IP 주소로 변환해 주는 역할을 하는데요, 이 과정에서 DNS는 핵심적인 역할을 합니다.
이미지 출처 : aws
1. DNS의 역할
인터넷은 수많은 컴퓨터와 서버로 구성되어 있습니다. 이 각각의 기기는 고유의 IP 주소를 가지고 있는데요, 이 IP 주소는 숫자로 이루어져 있어서 기억하기 어렵습니다. 예를 들어, '192.168.1.1' 같은 식으로 표현되죠. 그런데 이런 숫자를 우리가 모두 기억하고 있기는 어렵습니다. 이때 필요한 것이 바로 도메인 이름입니다.
도메인 이름은 'google.com'이나 'naver.com'과 같이 사람이 기억하기 쉬운 이름을 가지고 있습니다. 이 도메인 이름을 통해 우리는 웹사이트를 쉽게 방문할 수 있는데요, 여기서 DNS가 중요한 역할을 합니다. DNS는 이 도메인 이름을 해당 서버의 IP 주소로 변환해 주는 역할을 하는 것이죠.
2. DNS 작동 원리
그렇다면 DNS는 어떻게 도메인 이름을 IP 주소로 변환해줄까요?
- 먼저 사용자가 웹 브라우저에 도메인 이름을 입력합니다.
- 컴퓨터는 이 도메인 이름에 해당하는 IP 주소를 찾기 위해 가장 가까운 DNS 서버에 질의를 보냅니다.
- DNS 서버는 요청받은 도메인 이름에 대한 IP 주소를 찾아서 응답합니다.
- 컴퓨터는 이 IP 주소를 사용하여 웹 서버에 접속하고, 웹 서버는 사용자가 원하는 웹페이지를 제공합니다.
3. DNS의 특징
DNS는 분산형 데이터베이스 시스템입니다. 이는 DNS 정보가 전 세계의 수많은 서버에 걸쳐 저장되어 있음을 의미합니다. 이로 인해 DNS는 매우 안정적이며, 효율적인 방식으로 도메인 이름을 IP 주소로 변환할 수 있습니다.
또한, DNS는 계층적인 구조를 가지고 있어, 특정 도메인 이름을 관리하는 서버가 문제가 생겨도, 다른 서버들이 그 일을 대신할 수 있습니다. 이는 DNS의 내결함성을 보장합니다.
4. DNS의 계층
DNS는 계층적인 구조를 가지고 있습니다. 이는 DNS가 전 세계의 모든 도메인 이름을 관리하기 위한 방법으로, 각 계층은 특정 범위의 도메인 이름을 관리합니다.
- 루트 서버: DNS 계층의 최상위에 위치하며, 전 세계에 13개의 루트 서버가 있습니다. 루트 서버는 모든 최상위 도메인(. com,. net 등)의 위치 정보를 알고 있습니다.
- TLD 서버 (Top Level Domain 서버): 각각의 최상위 도메인을 관리하는 서버입니다. 예를 들어, '. com' 도메인은. com TLD 서버에 의해 관리됩니다.
- 영향력 서버 (Authoritative 서버): 특정 도메인 (예: 'google.com')을 관리하는 서버입니다. 이 서버는 해당 도메인의 정확한 IP 주소를 알고 있습니다.
5. DNS 캐싱
DNS 캐싱은 DNS의 중요한 기능 중 하나입니다. DNS 캐싱은 일단 한 번 도메인 이름을 IP 주소로 변환한 후, 그 정보를 일정 시간 동안 저장하는 것입니다. 이렇게 하면 동일한 도메인에 대한 요청이 있을 때, DNS 서버를 다시 찾아가지 않고, 캐시에서 바로 정보를 가져올 수 있습니다. 이는 네트워크 트래픽을 줄이고, 웹페이지 접속 시간을 단축시키는 역할을 합니다.
6. DNS 보안
DNS는 웹사이트의 도메인 이름을 IP 주소로 변환해 주는 중요한 역할을 하지만, 이 시스템에는 보안 취약점이 존재합니다. 가장 대표적인 공격 방법 중 하나는 DNS 스푸핑입니다. 이는 공격자가 DNS 캐시에 허위의 IP 주소를 삽입하여 사용자를 피싱 사이트 등으로 유도하는 방식입니다.
7. DNSSEC (DNS Security Extensions)
DNS 보안 취약점을 해결하기 위해 DNSSEC이라는 기술이 개발되었습니다. DNSSEC는 DNS 응답에 디지털 서명을 추가하여, DNS 스푸핑과 같은 공격을 방지합니다. 이 서명을 통해 DNS 응답이 변경되지 않았음을 보증하고, 응답이 신뢰할 수 있는 서버에서 왔음을 확인할 수 있습니다.
8. 동적 DNS (Dynamic DNS)
동적 DNS는 IP 주소가 자주 변경되는 환경에서 유용하게 사용됩니다. 일반적으로, 도메인 이름은 고정된 IP 주소를 가리키지만, 동적 DNS를 사용하면 도메인 이름이 현재의 IP 주소를 항상 가리키도록 유지할 수 있습니다. 이를 통해, IP 주소가 변경되더라도 도메인 이름을 통해 항상 접근할 수 있습니다.
'웹 아키텍쳐' 카테고리의 다른 글
웹 아키텍처5 - 메세징 시스템과 Kafka - 디도스 방지 가능? (0) | 2024.02.17 |
---|---|
웹 아키텍처4 - 캐싱 시스템과 Redis (23.11.9) (0) | 2024.02.17 |
웹 아키텍처3 - 웹 애플리케이션 서버(WAS) - 스프링은 WAS? (0) | 2024.02.17 |
웹 아키텍처2 - 웹서버란? 웹 어플리케이션 서버와 다른건가? (0) | 2024.02.17 |
웹사이트를 만들기 전, 웹 아키텍처부터 알아보자(23.11.9) (0) | 2024.02.17 |