[네트워크] 웹 통신의 큰 흐름
·
CS/네트워크
0. 웹이란?WWW(World Wide Web)의 약자이며 인터넷으로 연결된 컴퓨터를 통해 정보를 공유할 수 있는 공간을 뜻한다.인터넷과는 엄연히 다른 개념으로, 인터넷이 더 상위 개념이다.인터넷: 인터넷 프로토콜을 사용해 네트워크와 기기 간 통신하는 컴퓨터 네트워크들이 전세계적으로 상호 연결되어 이루는 시스템이다.1. 웹 통신의 과정사용자가 웹 브라우저를 통해 URL을 입력한다.DNS 서버에서 도메인 네임을 IP 주소로 변환한다.웹 브라우저가 IP 주소와 사용자가 입력한 URL 정보로 HTTP 요청 메시지를 생성한다.요청은 TCP를 통해 서버로 전송된다.서버는 클라이언트의 요청을 처리하고 HTTP 응답을 전송한다.브라우저가 응답을 받아 웹 페이지를 렌더링한다.2. 부록HTTP (Hypertext Tra..
[네트워크] DNS(Domain Name System)
·
CS/네트워크
아래 부록에 용어정리를 해두었으니 모르는 단어가 있다면 참고하면 좋다.0. DNS(Domain Name System) 란?DNS(Domain Name System)은 호스트의 도메인 주소(http://www.google.com)를 IP 주소(142.250.196.110)로 변환하거나, 그 반대의 역할을 수행하는 시스템이다.cmd에서 naver의 DN을 확인해보면 다음과 같다.0-1. DNS가 필요한 이유사람은 IP 주소보다 Domain 주소를 더 쉽게 기억한다.IP 주소는 변경될 수 있지만 도메인 이름은 일관성을 유지한다.하나의 도메인으로 여러 서비스(웹, 이메일, FTP 등) 관리할 수 있다.0-2. 가벼운 동작 원리도메인 주소를 브라우저에 입력하게 되면, 도메인 주소들을 가지고 있는 네임서버(DNS ..
[자료구조] 세그먼트 트리(Segment Tree)
·
CS/자료구조
0. 세그먼트 트리(Segment Tree)란?세그먼트 트리(Segment Tree)어떤 데이터가 주어질 때, 특정 구간의 결과값(구간합, 최댓값 등)을 구하는데 사용하는 자료구조세그먼트 트리는 이진 트리(Binary Tree) 구조를 가지고 있으며, 특정 구간의 결과값을 시간복잡도 O(logN)으로 빠르게 구할 수 있다는 장점이 있다.또한, 자료의 수정이 빈번히 일어날 때, 사용한다. 이 게시글에서는 누적합을 구하는 세그먼트 트리 기준으로 설명을 한다.만약 구간 최대나 구간 최소를 알고 싶다면, 반환하는 부분만 수정하면 된다.1. 세그먼트 트리 알아보기1-1. 세그먼트 트리 생성(초기화)아래는 [5, 7, 6, 3, 1, 9]인 원본 배열로부터 만든 세그먼트 트리이다.파란 글씨는 해당 노드가 가리키는 ..
[알고리즘] 모든 쌍 최단 경로: 플로이드 워셜(Floyd-Warshall) 알고리즘
·
CS/알고리즘
0. 최단 경로최단 경로간선의 가중치가 있는 그래프에서 두 정점 사이의 경로들 중에 간선의 가중치의 합이 최소인 경로하나의 시작 정점에서 끝 정점까지의 최단 경로다익스트라(Dijkstra) 알고리즘음의 가중치를 허용하지 않음벨만-포드(Bellman-Ford) 알고리즘음의 가중치 허용모든 정점들에 대한 최단 경로플로이드-워셜(Floyd-Warshall) 알고리즘이번에는 이 중에서 플로이드-워셜(Floyd-Warshall) 알고리즘을 알아본다.1. 플로이드-워셜(Floyd-Warshall) 알고리즘모든 정점에서 다른 모든 정점으로의 최단 경로를 구하는 알고리즘이다.시작 정점에서 목표 정점의 최단 경로를 계산할 때, 다른 정점을 경유했을 때 비용을 비교하면서 구하는 방식이다.DP 기법을 사용한 알고리즘으로 인..