웹 아키텍쳐
글을 시작하며 요 근래에는 프론트엔드 뿐만 아니라 백엔드, 인프라 등 전반적인 아키텍쳐를 배우는 것이 너무나도 즐겁다. 풀스택 개발도 한번 해보고싶어서 풀스택을 공부하면서, 웹 아키텍쳐를 복습하고 공부해보면 자연스레 내가 배워야할 길잡이 역할도 해줄 수 있을거라고 생각이 되어 한번 웹 아키텍쳐에 대해 공부를 진행해보았다. 웹이 어떻게 서빙 될까? 1. 브라우저는 캐싱된 DNS 기록들을 확인하고, IP 주소가 있는지 확인한다. 인터넷에 있는 모든 URL들에는 고유 IP들이 존재한다. 이 IP 주소를 통해서 해당 웹사이트를 호스팅하고 있는 서버 컴퓨터에 접근할 수 있다. 이때 DNS(Domain Name System)라는 개념이 나오는데, DNS(Domain Name System)은 URL들의 이름과 IP주소를 저장하고 있는 데이터베이스이다. DNS의 큰 목적은 사람들에게 편리함을 주는 것이다. 숫자로 된 IP 주소를 작성해도 원하는 웹사이트에 접속할 수 있지만, 매번 많은 자릿 수의 숫자들을 검색하는 과정은 매우 복잡하기 때문에 DNS는 사람들이 웹 사이트 주소에 쉽게 접속할 수 있게 매핑해주는 역할을 한다. 웹 사이트 이름을 브라우저에 검색을 하게 되면 내부적으로 브라우저는 DNS 기록을 4가지의 캐시에서 확인한다. DNS Query : 여러 다른 DNS 서버들을 검색해서 해당 사이트의 IP 주소를 찾는 과정 및 행위 가장 먼저 브라우저 캐시(크롬, 파이어 폭스 등 브라우저 내부 DNS 캐시)를 확인한다. 브라우저는 일정기간 동안 (유저가 이전에 설정한 시간 동안)의 DNS 기록들을 저장하고 있다. DNS query가 이곳에서 가장 먼저 실행된다. 그 다음으로 브라우저는 OS 캐시를 확인한다. 브라우저 캐시에 웹사이트 이름의 IP 주소가 발견되지 않았다면, 브라우저는 systemcall을 통해 OS가 저장하고 있는 DNS 기록들의 캐시에 접근한다. 그 다음에서는 router 캐시를 확인한다. 컴퓨터에 DNS 기록을 찾지 못했다면 브라우저는 DNS 기록을 캐싱하고 있는 router와 통신을 해서 찾으려고 한다.
- 현우

4