CDN 네트워크 구조와 웹 데이터 전달 방식

이미지
서론 웹사이트에 접속할 때마다 우리는 서로 다른 환경에서 같은 콘텐츠를 보게 된다. 같은 페이지라도 어떤 경우에는 즉시 열리고, 어떤 경우에는 로딩이 길어지는 경험이 반복된다. 이 차이는 단순한 인터넷 품질 문제로 보이지만, 실제로는 데이터가 어디에서 어떻게 전달되느냐에 따라 결정된다. 일반적으로 웹 콘텐츠는 하나의 서버에서 사용자에게 전달된다고 생각하기 쉽지만, 실제 구조는 훨씬 더 분산되어 있다. 콘텐츠는 여러 위치에 나뉘어 저장되고, 요청이 발생할 때마다 가장 효율적인 경로를 통해 전달된다. 이러한 흐름을 만들어내는 핵심 구조가 바로 CDN이다. 데이터를 하나의 중앙 서버에서 보내는 것이 아니라, 여러 지역의 CDN에 나누어 저장하고 가까운 곳에서 전달하는 방식으로 작동한다. 그래서 사용자는 더 빠르게 콘텐츠를 받아볼 수 있다. 즉, CDN은 단순히 속도를 높이는 기술이 아니라, 데이터를 전달하는 전체 구조를 바꾸는 시스템이다. 이 구조를 이해하면 왜 어떤 사이트는 빠르고 어떤 사이트는 느린지 자연스럽게 이해할 수 있으며, 네트워크 성능 차이의 원인도 함께 파악할 수 있다. 콘텐츠 요청이 발생하는 초기 구조 웹페이지를 열면 브라우저는 하나의 데이터만 요청하는 것이 아니라 여러 데이터를 동시에 요청한다. 화면을 구성하는 HTML 문서뿐 아니라 이미지, 스타일, 스크립트 등 다양한 요소가 각각 따로 요청된다. 이 요청들은 하나의 흐름으로 처리되는 것이 아니라 각각 독립적으로 처리된다. 즉, 하나의 페이지라도 내부에서는 여러 개의 요청이 동시에 발생하고 있는 것이다. 만약 모든 요청이 하나의 서버로만 몰린다면, 서버에 부하가 집중되어 처리 속도가 느려질 수밖에 없다. 그래서 CDN 구조에서는 사용자의 요청이 분산될 수 있도록 설계되어 있다. 이 단계는 CDN이 작동하기 위한 출발점이며, 이후 모든 처리 흐름이 여기서부터 시작되고, 데이터 분산의 필요성이 결정되는 중요한 기준이 된다. 사용자 위치 판단과 서버 선택 구조 사용자로부터 요청이 들어오면 CDN은 사용...

웹 브라우저 캐시 작동 구조와 데이터 저장 방식

이미지
서론 같은 웹페이지를 다시 열었을 때 처음보다 훨씬 빠르게 화면이 나타나는 경험은 누구나 한 번쯤 해봤을 것이다. 대부분은 이를 단순히 인터넷 속도가 빨라졌기 때문이라고 생각하지만, 실제로는 그보다 다른 이유가 작용한다. 바로 브라우저가 이전에 받아온 데이터를 다시 활용하는 구조가 있기 때문이다. 이 과정에서 핵심 역할을 하는 것이 브라우저 캐시다. 브라우저 캐시는 단순히 속도를 높이기 위한 기능이라기보다, 데이터를 저장해두고 필요할 때 다시 사용하는 흐름에 가깝다. 처음 접속할 때 받아온 이미지나 디자인 정보, 코드 같은 요소들을 따로 저장해두고, 이후에는 동일한 요청이 들어오면 이를 다시 활용한다. 그래서 웹페이지는 매번 새로 만들어지는 것이 아니라, 일부는 저장된 데이터를 기반으로 빠르게 재구성된다. 요청 발생과 캐시 확인 단계 사용자가 웹페이지를 열면 브라우저는 곧바로 서버에 요청을 보내지 않는다. 먼저 내부에 저장된 캐시 데이터를 확인하는 과정이 먼저 이루어진다. 이는 동일한 데이터가 이미 존재할 가능성을 고려한 구조로, 불필요한 네트워크 요청을 줄이기 위한 기본적인 처리 단계다. 이 단계는 모든 요청에서 반복적으로 수행된다. 예를 들어 같은 사이트를 다시 방문했을 때, 브라우저는 이전에 받아온 데이터가 남아 있는지를 먼저 살펴본다. 이미지, 스타일 정보, 스크립트 파일 등 다양한 자원이 캐시에 저장될 수 있으며, 요청마다 각각의 자원에 대해 개별적으로 확인이 이루어진다. 따라서 웹페이지 요청은 단일 흐름이 아니라 여러 데이터 단위에 대한 병렬적인 확인 구조로 진행된다. 데이터 존재 여부 판단 구조 캐시에 데이터가 존재한다고 해서 항상 그대로 사용되는 것은 아니다. 브라우저는 해당 데이터가 현재에도 유효한지를 판단하는 과정을 거친다. 이는 저장된 데이터가 최신 상태인지 확인하기 위한 절차로, 잘못된 정보가 사용되는 것을 방지하기 위한 구조다. 이러한 판단 과정은 안정성을 유지하는 핵심 요소다. 유효성 판단은 데이터가 생성된 시점, 만료 기준, 변경 여...

쿠키와 세션이 사용자 정보를 관리하는 구조

이미지
서론 웹사이트에 로그인하면 사용자는 그 상태가 계속 유지된다고 느끼기 쉽다. 페이지를 이동하거나 새로운 요청을 보내더라도 다시 로그인하지 않아도 되기 때문이다. 이 경험 때문에 로그인 상태가 한 번 저장되면 그대로 유지된다고 생각하기 쉽다. 하지만 실제 웹 환경은 상태를 기억하지 않는 구조를 기반으로 작동한다. 브라우저가 서버에 보내는 모든 요청은 서로 독립적으로 처리되며, 이전 요청의 정보가 자동으로 이어지지 않는다. 즉, 로그인 상태 역시 저장되어 유지되는 것이 아니라, 요청이 발생할 때마다 동일한 사용자임을 다시 확인하는 방식으로 유지된다. 이때 핵심 역할을 하는 것이 쿠키와 세션이다. 이 두 구조는 상태를 단순히 저장하는 기능이 아니라, 반복적인 사용자 식별 흐름을 유지하기 위한 구조로 이해하는 것이 더 적절하다. 이러한 구조를 이해하면 웹 서비스가 사용자를 어떻게 인식하는지 파악할 수 있다. 쿠키와 세션을 구성하는 기본 구조 쿠키와 세션은 사용자 정보를 관리하기 위해 서로 다른 위치에서 역할을 나누어 수행한다. 쿠키는 브라우저에 저장되는 작은 데이터로, 사용자 식별에 필요한 최소한의 정보가 담긴다. 반면 세션은 서버에서 관리되는 데이터로, 로그인 상태나 사용자 설정과 같은 실제 정보를 유지한다. 이 구조가 분리된 이유는 효율성과 안정성을 동시에 확보하기 위해서다. 브라우저는 요청을 보낼 때마다 쿠키를 함께 전달하고, 서버는 이 값을 기준으로 해당 사용자의 세션을 찾아낸다. 중요한 정보는 서버에 보관되면서도, 사용자를 빠르게 식별할 수 있는 구조가 만들어진다. 결과적으로 쿠키와 세션은 하나의 기능이 아니라 역할이 나뉘어 협력하는 구조라고 볼 수 있다. 각각의 역할이 명확히 분리되어 있기 때문에 유지보수와 보안 측면에서도 유리하다. 사용자 요청이 발생하는 처리 구조 웹 환경에서 사용자가 페이지를 이동하거나 버튼을 클릭할 때마다 새로운 요청이 생성된다. 이 요청은 이전 요청과 연결되지 않은 독립적인 단위로 서버에 전달된다. 이 구조는 웹이 기본적으로 상태를...