교회 사람이 운영하는 겜방에서 작업; 금연인 겜방이 이렇게 좋을수가. 한쪽의 세미나실의 기독교 관련 서적이 빼곡하게 차 있는 것이 인상적.
vi - python - ctags - grep 조합이 손에 참 잘 들어맞는다. 다른 Python 쪽 좋은 IDE들을 잘 못접해서 그런지 개인적으론 가장 편한 조합이 되었다. 타 개발툴들로 작업할때 하던 일들을 이것들의 조합으로 의식적으로 할 수 있게 된다.
처음에는 모듈에 대해 Remote Test 를 먼저 진행했다가, Local Test 로서 일단 HTML 문서를 받아놓고, 이를 TDD 로 하면서 데이터들을 추출하는것이 낫겠다 판단, Local Html Test 를 작성해나갔다. 이전
ProjectPrometheus 에서 했었던 방법과 비슷했었던지라, 일사천리로 거의 하루동안 관련 작업들이 끝났다.
작업을 계속 하다 보니, 각 모듈들에 대해
BottomUp 스타일로 작성이 되었다. 근데, 막상 '다음에 해야 할일은?' 질문을 해보니, 좀 멍멍해졌다. 이래서는 안되겠다고 판단, 일단 만들어놓은 개개의 모듈들을 근거로 시퀀스 다이어그램을 그리고 그 순서를 잡아나갔다.
각 모듈들이 서로 불러져야 할 순서들을 정하고 난뒤, 내가 만든 각 모듈들을 일종의
SpikeSolution 처럼 라이브러리 연습하듯이 이용해보았다. 그러면서 잠시 놓쳤던 흐름을 다시 잡았다. 이러한 일들을 의식적으로, 그리고 '무엇을 할까 - 이것을 하자' 라고 생각해낼 수 있었던 것이 기분을 참 좋게 했다.
초반 3일정도는 TDD 를 하고 후반의 PBI 스타일로 테스트 코드이 진행했는데, 후반으로 갈수록 작업 진척도가 떨어지고, 코드에 대한 이해도도 떨어짐을 느꼈다.
주로 제로보드 데이터로 변환하기 위한 데이터베이스 저장 부분인데, 첫번째 이유로는 제로보드 DB 의 스키마를 제대로 파악하지 못한것이 문제였다. 이 문제는 프리첼->제로보드 컨버터 PHP 소스를 보고 이를 Python 으로 포팅하였다. 이전에 PHP 프로그래밍을 많이 했기 때문에 익숙했고, 어차피 같은 어족군(?)의 언어이므로 별다른 어려움이 없었다. 하지만, 테스트 경우를 명확하게 하지 않았기 때문에, 작동이 제대로 되지 않는지에 대해서는 게시판 변환뒤 매번 웹에서 나온 결과를 확인해야 했다.
또하나 문제로는 이상하게
MySQLdb 모듈이 문제를 일으켰는데, update query 를 날릴때 에러발생을 하는 것이였다. 똑같은 쿼리문을 쉘에서 실행했을때는 잘 되었는데,
MySQLdb 의 cursor 클래스를 이용, 쿼리를 날리면 실행이 안되는 것이였다. (DB 에 적용은 되는데, 에러가 발생한다.) 이 부분에 대해서는 일단 try-except 로 땜질처리를 했지만, 그리 기분좋진 않다. 수정이 필요하다.