본문 바로가기
반응형

전체 글46

internet ( HTTP/HTTPS/URL ) internet TCP/IP 기반의 네트워크가 전세계적으로 확대되어 하나로 연결된 네트워크들의 네트워크라고 할 수 있다. HTTP (Hypertext Transfer Protocol) 팀 버너스리과 팀이 CERN에서 HTML뿐만 아니라 웹 브라우저 및 웹 브라우저 관련 기술과 HTTP를 발명 서버와 클라이언트가 인터넷상에서 데이터를 주고 받기 위한 프로토콜이다 HTTP는 인터넷에서 하이퍼 텍스트를 교환하기 위한 통신 규약으로, 80번 포트를 사용하고 있다. 따라서 HTTP가 80번 포트에서 요청을 기다리고 있으며, 클라이언트는 80번 포트로 요청을 보내게 된다. HTTP는 계속 발전하여 HTTP/2까지 버전이 등장한 상태 HTTP 작동방식 HTTP는 서버/클라이언트 모델을 따른다. stateless 장점.. 2021. 12. 28.
그래프 - 깊이우선탐색 / 너비우선탐색 ( DFS / BFS ) 자료 구조 - 그래프 노드와 간선으로 표현되며, 노드를 정점이라고도 한다. 그래프는 하나의 노드(정점)에서 여러 갈래의 간선을 통해 다른 노드 방문하는 탐색을 주로 이용된다. 이때 두 노드가 간선으로 연결되어 있다라고 할 수 있는데 다른 표현으로는 '두 노드가 인접하다'라고도 표현한다. 프로그래밍에서의 그래프 구조 그래프는 크게 2가지의 형태로 표현된다. 인접 행렬 : 2차원 배열로 그래프의 연결 관계를 표현하는 방식 인접 리스트 : 리스트로 그래프의 연결 관계를 표현하는 방식 인접 행렬 2차원 배열에 각 노드가 연결된 형태로 기록하는 방식으로, 연결되지 않은 노드끼리는 무한한 값으로 초기화 한다. 인접 리스트 메모리 측면에서 보면 인접 행렬 방식은 모든 관계를 저장하기 때문에 메모리를 낭비하게 된다. .. 2021. 10. 18.
신장 트리 (Spanning Tree) & 크루스칼(Kruskal) 신장트리 하나의 그래프가 있을 때 모든 노드를 포함하면서 사이클이 존재하지 않는 부분 그래프 이러한 성질을 가진 그래프는 다양한 문제에 활용되는데, 대표적인 유형이 여러 노드를 연결하는 간선이 비용을 가질 때, 그 비용의 합이 최소가 되는 신장트리를 찾아야 하는 경우이다. 예를 들어보면, 아래와 같은 그래프가 존재 한다고 한다. 간선의 비용의 합을 최소로 하기는 신장트리가 되기 위해서는 아래와 같이 연결을 해야 할 것이다. 이처럼 신장 트리 중에서 최소 비용으로 만들 수 있는 신장 트릴르 찾는 알고리즘을 이제 '최소 신장 트리 알고리즘'이라고 하자. 이러한 최소 신장 트리 문제를 해결하기 위한 대표적인 알고리즘을 다음을 통해 배워보자. 크루스칼 알고리즘 (Kruskal Algorithm) 이는 가장 적은.. 2021. 9. 13.
위상 정렬 (Topology Sort) 위상 정렬 순서가 정해져 있는 일련의 작업을 차례대로 수행해야 할 때 사용할 수 있는 알고리즘, 또는 방향 그래프의 모든 노드를 방향성에 어긋나지 않고 순서대로 나열하는 것으로 정의할 수 있다. 위상 정렬을 2단계로 설명할 수 있는데 다음과 같다. 진입차수가 0인 노드를 큐에 넣는다. 큐가 빌 때까지 다음의 과정을 반복한다. 큐에서 원소를 꺼내 해당 노드에서 출발하는 간선을 그래프에서 제거한다. 새롭게 진입차수가 0이 된 노드를 큐에 넣는다. 이때 진입차수란? 이는 한 노드로 방향을 가르키는 간선의 개수를 의미한다. 파이썬 소스 2021. 9. 13.
반응형