지금 주인장은 Nest.js 공부 중 ···
Sign In

아키텍쳐

개발 아키텍쳐에 관련된 내용을 포스팅합니다.
웹 아키텍쳐
글을 시작하며 요 근래에는 프론트엔드 뿐만 아니라 백엔드, 인프라 등 전반적인 아키텍쳐를 배우는 것이 너무나도 즐겁다. 풀스택 개발도 한번 해보고싶어서 풀스택을 공부하면서, 웹 아키텍쳐를 복습하고 공부해보면 자연스레 내가 배워야할 길잡이 역할도 해줄 수 있을거라고 생각이 되어 한번 웹 아키텍쳐에 대해 공부를 진행해보았다. 웹이 어떻게 서빙 될까? 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와 통신을 해서 찾으려고 한다. 여기서 라우트 캐시라고 함은, 로컬 네트워크 장비(공유기, 사내 라우터)와 같은 곳을 말한다. 그래도 못 찾는다면 마지막으로 ISP 캐시를 확인한다. ISP는 DNS 서버를 구축하고 있고 브라우저가 마지막으로 DNS 기록이 있기를 바라며 접근하게 된다. 여기서 ISP는 KT, SK 브로드밴드와 같은 인터넷 제공업체를 말한다. 2. (1번 과정에서 찾으면 좋겠지만) 만약 찾지 못했다면 ISP의 DNS 서버가 목적지를 호스팅하고 있는 서버의 IP 주소를 찾기 위해 DNS Query를 날린다. 목적지 서비스에 접속을 하고 싶다면, IP 주소를 반드시 알아야한다. DNS Query의 목적은 다른 DNS 서버들을 검색하여 해당 사이트의 IP 주소를 찾는 것이기 때문에, IP 주소를 찾을 때까지 DNS 서버에서 다른 DNS 서버를 오가면서 반복적으로 검색을 진행한다. 또는 못찾아서 에러가 발생할 때까지 계속 검색을 진행한다. 이러한 검색을 recursive search 라고한다. ISP의 DNS 서버를 DNS recursor라고 부르며, 인터넷을 통해 다른 DNS 서버들에게 묻고 또 물어 도메인 이름의 올바른 IP 주소를 찾는데 책임을 가지고 있다. 이들은 웹사이트 도메인 이름 구조에 기반해 검색을 하기 때문이다. 다른 DNS 서버를 부르는 명칭은 네임 서버라고 한다.
  • 현우
👍
1
Made with Slashpage