블로그 이미지
JEEN

서울에 사는 꽃청년의 IT찌질모험기

Rss feed Tistory
IT/Tips 2011.07.15 14:10

[ python / seqdiag / Sequence Diagram ] 실제 사용기

  이번 어느 녹색성장삘나는 프로젝트 하나를 끝내가면서 간략하게 문서화를 해뒀습니다.
  그리고 일단 전체적인 흐름을 도식화하는 게 좋겠다는 피드백을 받고는 그것을 일일이 도형 그려가면서 할까... 했더니 지난번에 써둔 기사가 있어서 다행이었습니다.

2011/05/14 - [IT] - blockdiag++ 와 앞으로의 문서화에 대한 고민... 

 일단 문서화는 Mac 의 Pages 상에서 그냥 글로 쓰면서 했습니다. 그 과정에서 왜 Markdown 이 아니냐 라는 많은 질책을 감수해야 했지만...

  - http://interactive.blockdiag.com/seqdiag/ 

  일단 SeqDiag 는 그냥 의 Interactive shell 에서 기본 예제를 참고하면서 이래저래 깨작거려봤습니다.
 그리고 결과를 확인한 후에 이걸 png 로 옮겨서 갖다붙여야 되는데... 그냥 캡쳐뜰까 하다가 seqdiag 를 설치하는 방법이 있어서 도전해봤습니다.
  
  seqdiag 는 Python CLI 툴도 존재하기에... 사내 Bugzilla 에 SE (@y0ngbin) 가 써둔 seqdiag 설치법을 따라서 설치를 해봤습니다. 그냥 깔려고 하니 Python 은 에러가 나길래 어떻게 해야할지 막막했는데 역시 SE네요.

[seqdiag](http://tk0miya.bitbucket.org/seqdiag/build/html/index.html)
DSL을 sequence diagram으로 그려주는 python script 를 mac 에 설치하는데 한
30분정도 삽질한 내용을 공유합니다. 1. brew install python 2. python binary 이외에 easy_install 등 각종 스크립트들은
/usr/local/share/python/ 에 설치되므로 /usr/local/share/python/ 을 PATH에 추가 3. easy_install pip 4. pip install --upgrade pil 5. build 과정중 내용을 보면 freetype2, jpeg, littlecms 가 없다고 궁시렁거리지만
그냥 빌드는 완료됨 (freetype2 가 글자를 랜더링하기 때문에 이부분이 easy_instal seqdiag 로 깔아도
안돌아가는 원인) 6. jpeg는 brew 로 설치 : brew install jpeg 7. freetype2 와 littlecms는 brew에 없으므로 노가다로 설치
(<http://stackoverflow.com/questions/5345348/what-is-the-best-way-to-install-pil-on-mac-snow-leopard-with-xcode-4-installed>) 8. 모두 설치후 pip install --upgrade pil 9. 다음과 같이 다 OK 덜어지면 seqdiag 설치 : easy_install seqdiag * TKINTER support available * JPEG support available * ZLIB (PNG/ZIP) support available * FREETYPE2 support available * LITTLECMS support available 10. $ seqdiag segdiag.diag 11. 느낀점 * easy_install , pip 왜 두개가 따로있는건지 잘 모르겠음 * 왜 freetype2가 포함되지 않는데 pil 이 에러없이 설치되는지 모르겠음 * 파이썬은 잘 안써서 뭔가 복잡함

// written by @y0ngbin

그리고 아래와 같이 seqdiag 문법에 맞게 적어둡니다.

* test.seqdiag

{
  Browser  -> WebApp [label = "(1) GET /co...-compare"]
  Browser <-- WebApp [label = "Just Forms"]

  Browser  => WebApp [label = "(1-2) GET /co../result"] {
              WebApp -> MongoDB [label = "Query[s../../2]"]
              WebApp <-- MongoDB [label = "Matches,Probes,GeneIDs"]
  }

  Browser  -> WebApp [label = "(2-3) GET /co../detail"]
              WebApp ->  TokyoCabinet [label = "(3/1)Query[probes]"]
              WebApp <-- TokyoCabinet [label = "[Probe, Affymetrix]"]
              WebApp ->  MongoDB [label = "(3/2)Query(Affymetrix)=>Annotation"]
              WebApp <-- MongoDB [label = "Annotation Dataset"]
  Browser <-- WebApp [label = "Calculate Kappa Statistics"]
}


  그리고...

  $ seqdiag aaa.seqdiag 

 
 를 통해서 seqdiag 의 결과로 png 를 얻을 수 있습니다.


 이렇게 나오죠 :-) 이 png 를 Pages 에 한페이지씩 붙여넣으면서 도식화를 끝냈습니다. 

 기본 예제에서 사용한 문법만을 이용해서 그런지 좀 더 이런 표현이 있었으면 좋겠다 하는 게 몇가지 있었는데.. 그냥 이렇게 끝내고 나니 참고할 문서가 보이더군요 ㅜㅜ

  - http://blockdiag.com/seqdiag/build/html/index.html

 네. 아무튼 실제로 seqdiag 를 써본 결과는 대만족입니다.  

신고
TOTAL 486,669 TODAY 36

티스토리 툴바