본문 바로가기

전체 글62

[알고리즘] 크루스칼 알고리즘 + Python 구현 크루스칼 알고리즘은 Minimum Spanning Tree(최소비용 신장 트리)를 만드는 알고리즘입니다. 그 방법을 5개의 노드를 가지고 6개의 엣지를 가진 그래프를 가지고 단계별로 설명해보도록 하겠습니다. 일단 모든 엣지들의 정보를 비용의 정보를 토대로 오름차순으로 정렬해줍니다. (사실 내림차순 이어도 괜찮습니다.) 이렇게 정렬된 엣지들을 작은 순으로 하나씩 가져와서 사용할 것이기 때문입니다. 그리고 편하신 자료형으로 각 노드들의 부모 노드를 표시하게 만들고 일단은 자기 자신이 부모 노드가 되도록 초기화를 합니다. 이는 그래프에서 사이클이 발생했을 경우 그 엣지를 사용하지 않기 위함입니다. 처음으로 가장 비용이 적은 엣지 중 하나인 A - C 에지를 가져오겠습니다. A - C에서 A와 C 노드의 부모 .. 2021. 7. 20.
[네트워크] OSI 7 계층 모델 여러 호스트들을 연결하여 통신하기 위해서는 연결하는 방식을 통일하지 않으면 서로 연결이 될 리가 없습니다. 마치 사람들 간 언어가 다 다르고 언어가 같아도 문법, 예의 등이 갖춰지지 않으면 서로 대화하기 힘든 것처럼 데이터 통신을 위해서도 연결 방식을 표준화합니다. ISO에서는 호스트가 제공하는 네트워크 기능을 연관된 그룹으로 묶어 계층 모델로 정의하였는데 이것을 OSI 7 계층 모델이라고 합니다. 이 모델은 호스트들이 가지고 있는 기본적인 통신 기능이자 방법입니다. 1. 물리 계층 물리 계층은 OSI 7 계층에서 맨 아래의 H/W를 담당하는 계층으로 호스트들이 데이터를 전송하기 위해서는 반드시 물리 계층이 있어야 합니다. 유일하게 H/W로 이루어진 계층으로 각 호스트들의 물리적 인터페이스에 관한 사항을.. 2021. 7. 19.
[알고리즘] 다익스트라 알고리즘 + Python 구현 참조 : https://youtu.be/HFapeLxvdNg Dijkstra(다익스트라) 알고리즘은 그래프에서 노드 간 최단 경로를 찾는 알고리즘입니다. 그 방법을 간단한 5개의 노드를 가진 간단한 그래프를 통하여 단계별로 진행해보겠습니다. 첫 번째로 일단 경로가 시작되는 노드를 잡습니다. 이 그래프에서는 A 노드가 되고 목적지 노드는 E로 가정합니다. 현재 노드에서 모든 노드까지의 비용을 계산합니다. 다만 현재의 노드와 바로 연결되지 않는 노드는 비용을 ∞로 둡니다. A 아래의 4개의 노드는 [B] A / 3이라면 현재까지의 B 노드로 가는 최저 비용의 경로는 3의 비용을 가지고 있으며 바로 직전의 노드는 A 였음을 뜻합니다. 계산이 종료되었다면 지금까지 밝혀진 경로 4개의 노드 중 가장 낮은 비용을 .. 2021. 7. 17.
네트워크 기초 용어 정리 1. System(시스템) 내부 규칙에 따라 능동적으로 동작하는 대상을 가리킵니다. OS 같은 우리가 알고 있는 시스템뿐만이 아니라 프로그램의 실행을 뜻하는 프로세스 같은 논리적인 단위도 시스템이라고 할 수 있습니다. 다만 이 시스템은 수행 기능에 따라 여러 가지로 나눌 수 있는데 그 분류는 아래와 같습니다. 1. Node(노드) 인터넷에 연결되어 있는 시스템을 부르는 가장 일반적인 용어입니다. 인터넷을 통하여 데이터를 주고받을 수 있는 모든 시스템을 통칭하여 사용할 수 있습니다. 2. Host(호스트) 인터넷에 연결되어 있는 컴퓨팅시스템을 뜻하는 용어입니다. 노드와 헷갈리기 쉽지만 노드 같은 경우에는 단순히 연결해주는 네트워크 장비 같은 경우에는 노드이지만 호스트라는 정의에는 부합하지 않고 저희가 사용.. 2021. 7. 16.
[MariaDB Tutorial 번역] 19. Update [MariaDB Tutorial 번역 글] Select : https://rural-mouse.tistory.com/43 Order By : https://rural-mouse.tistory.com/44 Where : https://rural-mouse.tistory.com/45 Distinct : https://rural-mouse.tistory.com/46 Between : https://rural-mouse.tistory.com/48 Like : https://rural-mouse.tistory.com/49 In : https://rural-mouse.tistory.com/50 Limit : https://rural-mouse.tistory.com/51 Is Null : https://rural-m.. 2021. 7. 14.
[MariaDB Tutorial 번역] 18. Insert Into Select [MariaDB Tutorial 번역 글] Select : https://rural-mouse.tistory.com/43 Order By : https://rural-mouse.tistory.com/44 Where : https://rural-mouse.tistory.com/45 Distinct : https://rural-mouse.tistory.com/46 Between : https://rural-mouse.tistory.com/48 Like : https://rural-mouse.tistory.com/49 In : https://rural-mouse.tistory.com/50 Limit : https://rural-mouse.tistory.com/51 Is Null : https://rural-m.. 2021. 7. 13.
[MariaDB Tutorial 번역] 17. Insert Multiple Rows (bluk insert) [MariaDB Tutorial 번역 글] Select : https://rural-mouse.tistory.com/43 Order By : https://rural-mouse.tistory.com/44 Where : https://rural-mouse.tistory.com/45 Distinct : https://rural-mouse.tistory.com/46 Between : https://rural-mouse.tistory.com/48 Like : https://rural-mouse.tistory.com/49 In : https://rural-mouse.tistory.com/50 Limit : https://rural-mouse.tistory.com/51 Is Null : https://rural-m.. 2021. 7. 12.
[MariaDB Tutorial 번역] 16. Insert [MariaDB Tutorial 번역 글] Select : https://rural-mouse.tistory.com/43 Order By : https://rural-mouse.tistory.com/44 Where : https://rural-mouse.tistory.com/45 Distinct : https://rural-mouse.tistory.com/46 Between : https://rural-mouse.tistory.com/48 Like : https://rural-mouse.tistory.com/49 In : https://rural-mouse.tistory.com/50 Limit : https://rural-mouse.tistory.com/51 Is Null : https://rural-m.. 2021. 7. 11.
[MariaDB Tutorial 번역] 15. Subqueries [MariaDB Tutorial 번역 글] Select : https://rural-mouse.tistory.com/43 Order By : https://rural-mouse.tistory.com/44 Where : https://rural-mouse.tistory.com/45 Distinct : https://rural-mouse.tistory.com/46 Between : https://rural-mouse.tistory.com/48 Like : https://rural-mouse.tistory.com/49 In : https://rural-mouse.tistory.com/50 Limit : https://rural-mouse.tistory.com/51 Is Null : https://rural-m.. 2021. 7. 9.