전체 글
-
TDD(Test Driven Development) 사내스터디를 시작하며Programing/TDD 2022. 11. 23. 22:40
규모도 작고 개발인력은 더더욱 적은 저희 회사에서는 개발문화가 부족했습니다. 그래서 사내 스터디를 해보자는 제안을 했고, 투표를 통해 TDD가 주제로 채택되었습니다. TDD 관련 스터디 내용, 자습 내용, 실습 내용을 간간히 올려볼 생각입니다. TDD(Test-driven Development, 테스트 주도 개발) TDD란 테스트 코드를 먼저 작성한 뒤 구현을 하는 개발 방식을 의미합니다. 개발하고자 하는 기능을 검증하는 테스트 코드를 먼저 만든 뒤, 테스트를 통과 시키는 것을 주된 목적으로 개발하는 것이죠. TDD를 진행하면 오류, 버그에 보다 강하고 견고한 개발이 가능합니다. 한 부서에 겨우 한두명이 있고, 어떨 때는 한명이 여러 부서의 업무를 맡아 빠르게 업무를 처리해야 하는 저희 같은 소규모 스타..
-
[NetworkX] Assignment 2 - Network ConnectivityData & ML & AI/NetworkX 2022. 11. 17. 22:36
본 게시물은 Coursera의 Applied Social Network Analysis in Python(by Daniel Romero)를 통해 자습하며 작성한 게시물입니다. 이 Assignment는 Coursera Jupyter 콘솔에서만 제대로 진행할 수 있습니다. (데이터 파일을 따로 제공하지 않기 때문입니다.) 개괄 원본 In this assignment you will go through the process of importing and analyzing an internal email communication network between employees of a mid-sized manufacturing company. Each node represents an employee and ea..
-
[NetwrokX] 방향그래프의 연결성분(Connected Components)Data & ML & AI/NetworkX 2022. 11. 16. 22:14
지난 글에서는 그래프의 연결성분에 대한 개념을 알아보았습니다. 특히 "무방향" 그래프에 대해서 알아보았습니다. [NetwrokX] 그래프 연결성분(연결요소, Connected Components) 그래프 연결성분(연결요소)이란 쉽게 말해서 서로 분리되어 있는 그래프를 뜻합니다. 위의 (A~O)그래프에서는 3개의 연결성분이 있는거죠. 연결성분의 조건 연결성분 안의 모든 노드들은 동일한 brain-nim.tistory.com 지난번의 포스트가 "무방향"임을 강조하는 이유는, 방향그래프에서의 연결성분을 확인하는 방식이 무방향그래프에서와는 조금 다를 수 있기 때문입니다. 방향그래프의 강연결(Strongly Connected)과 약연결(Weackly Connected) 아시다시피, 방향그래프에서의 엣지는 방향성을..
-
[NetwrokX] 그래프 연결성분(연결요소, Connected Components)Data & ML & AI/NetworkX 2022. 11. 15. 01:47
그래프 연결성분(연결요소)이란 쉽게 말해서 서로 분리되어 있는 그래프를 뜻합니다. 위의 (A~O)그래프에서는 3개의 연결성분이 있는거죠. 연결성분의 조건 연결성분 안의 모든 노드들은 동일한 성분 내의 다른 노드와 연결되어 있어야한다. 연결성분 밖에 있는 노드와 연결되면 안된다. 즉, 소외 되는 노드가 없으면서도 외부와의 접촉도 없는, 일종의 섬같은 성분을 연결성분이라고 부르는 겁니다. 위의 조건에 따라, 1번 : {A,E,F,G}는 연결성분이 아닙니다. (서로 분리되어 있으므로) 2번 : {K,L,O}는 연결성분이 아닙니다. (외부의 노드 M,L과 연결되어있으므로) 3번 : 오로지 {A,B,C,D,E}, {E,F,G,H,I}, {J,K,L,M,N,O}만 위 그래프의 연결성분입니다. 무방향 그래프 연결성분..
-
[NetworkX] 레이아웃으로 그래프 예쁘게 그리기 (nx layout)Data & ML & AI/NetworkX 2022. 11. 11. 14:58
NetworkX에서 그래프를 그려서 시각화 하는 가장 쉬운방법은 nx.draw_networkx()입니다. nx.draw_networkx(G) 하지만 결과는 처참합니다. 이게 어떻게 생겨먹은 그래프인가 싶습니다. 이럴 때 layout을 이용하면 편리합니다. kamada kawai layout NetworkX가 기본적으로 제공하는 레이아웃 중 가장 마음 편하게 쓸 수 있는 레이아웃 중 하나입니다. pos = nx.kamada_kawai_layout(G) nx.draw(G, pos, with_labels=True) 훨씬 깔끔해지고, 한눈에 들어옵니다. 그 외 다양한 레이아웃 pos G=nx.path_graph(15) G=nx.complete_graph(15) G=위의 그래프 kamada_kawai_layout..
-
[NetworkX] 네트워크 견고성(Robustness in Networks)Data & ML & AI/NetworkX 2022. 11. 9. 00:32
네트워크 견고성 (Robustness in Networks) The ability of a network to maintain its general structural properties whet it faces failures or attacks 출처 : Applied Social Network Analysis in Python(by Daniel Romero) 네트워크 견고성: 네트워크의 구조를 유지하는 능력, 연결성을 유지하는 능력 네트워크 견고성이란, 네트워크가 고장나거나 공격을 받더라도 연결성을 잃지 않는 능력이라는 뜻입니다. 즉, 노드나 엣지가 제거되더라도 네트워크가 제 기능을 할 수 있느냐는 뜻이죠. 인천공항에 사고가 생기면 김포공항으로 회항하면 되지만(견고성 확보) 제주공항에 사고가 생기면 ..
-
[MySQL] Could not connect, server may not be running. 그런데 관리도구 서비스에 MySQL이 없는 경우Programing/기타 오류 해결 2022. 11. 8. 10:40
localhost 서버가 또 말썽입니다. 가끔씩 모종의 이유로 localhost 서버가 멈추는 경우가 있는데, 그 해결방법입니다. 관리도구-서비스에 들어가서 MySQL을 실행시켜준다. "Windows key + R" > "services.msc" 관리도구-서비스에 MySQL이 없는 경우 그런데 관리도구-서비스에 MySQL이 없는 경우가 있습니다! 이런 경우엔 직접 bin 폴더까지 찾아가야 합니다. 윈도우에서 MySQL workbench를 이용해 설치했을 경우, bin 폴더 위치는 일반적으로 아래와 같습니다. 이 위치에서 cmd를 열어주세요 그리고 아래의 명령을 입력해주세요 # mysqld --install 입력 C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqld -..
-
[NetworkX] 그래프를 거리(length)로 설명하는 방법(평균거리, 지름, 반지름, 둘레, 이심률)Data & ML & AI/NetworkX 2022. 11. 3. 22:30
그래프G를 간추려서 수치로 설명하는 방법은 여러가지가 있습니다. Average distance: 모든 노드 간 거리의 평균 nx.average_shortest_path_length(G) 위와 같은 그래프가 있다고 할 때, A로부터 다른 노드들 까지의 거리는 다음과 같습니다. nx.shortest_path_length(G,'A') # 결과 {'A': 0, 'B': 1, 'K': 1, 'C': 2, 'F': 3, 'E': 3, 'G': 4, 'H': 4, 'I': 4, 'D': 4, 'J': 5} A~J까지의 모든 노드들에 대해서 위의 방법을 실행하고, 그 평균을 내면되지만, 굳이 직접 평균을 계산할 필요는 없습니다. nx.average_shortest_path_length(G) # 2.52727272727..