전체 글
-
파이썬 TDD 예제: chapter 02 암호 검사기 (feat. unittest)Programing/TDD 2022. 11. 27. 19:41
이 글은 아래의 스터디 도서의 내용 중, 제가 자바 코드를 파이썬 코드로 변환하고, 코드만 올린 글입니다. 테스트 주도 개발 시작하기 - YES24 TDD(Test-Driven Development)는 테스트부터 시작한다. 구현을 먼저 하고 나중에 테스트하는 것이 아니라 먼저 테스트를 하고 그다음에 구현한다. 구현 코드가 없는데 어떻게 테스트할 수 있을까? 여기 www.yes24.com 파이썬으로 TDD를 진행하는 기본적인 방식에 대해서는 아래의 글을 참조해 주세요 = '0') & (ch = '0') & (ch = '0') & (ch = 8) containsNum = self.meetsContainingNumberCriteria(password) containsUpp = self.meetsContaini..
-
파이썬으로 TDD 진행해보기(feat. unittest 예제)Programing/TDD 2022. 11. 24. 01:11
스터디 도서의 내용을 실습하기 이전에, 파이썬으로 TDD를 진행할 수 있는지 자체를 먼저 확인해 봐야겠습니다. 엄밀히 따지면, 이 글의 제목은 잘못되었습니다. "TDD 진행해보기"가 아니라, "코드 테스트하기"가 더 정확할 겁니다. 그치만 전 TDD를 공부하기 위해서 unittest를 사용하는거니까요... import unittest 파이썬에서는 기본 라이브러리인 unittest를 이용해서 TTD를 진행할 수 있습니다. unittest는 코드를 테스트할 수 있도록 도와주는 라이브러리입니다. unittest를 활용하면 코드 테스트도 할 수 있고, 테스트가 가능하니 TDD도 진행할 수 있습니다. 아래는 덧셈,뺄셈,곱셈,나눗셈을 할 수 있는 calculator.py, 이 calculator.py가 돌아갈 때 ..
-
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) 네트워크 견고성: 네트워크의 구조를 유지하는 능력, 연결성을 유지하는 능력 네트워크 견고성이란, 네트워크가 고장나거나 공격을 받더라도 연결성을 잃지 않는 능력이라는 뜻입니다. 즉, 노드나 엣지가 제거되더라도 네트워크가 제 기능을 할 수 있느냐는 뜻이죠. 인천공항에 사고가 생기면 김포공항으로 회항하면 되지만(견고성 확보) 제주공항에 사고가 생기면 ..