블로그 이미지
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 를 써본 결과는 대만족입니다.  

신고
IT 2011.05.14 23:57

blockdiag++ 와 앞으로의 문서화에 대한 고민...

 어제 (2011.5.13) Yokohama.pm #7 이 있었습니다.
 뭐 사실 지리적 특성 및 업무시간때문에 Yokohama.pm 에는 제대로 한번 참석해본 적이 없습니다. 대신  Shibuya.pm 에는 여러번 가본 기억이 있지만요. 하지만 이제부터는 도쿄에서의 생활은 바이바이 상태이기 때문에, USTREAM 과 공개된 슬라이드를 바탕으로 내용을 훑어보았습니다. 

 아무튼 어제 있었던 Yokohama.pm techtalk 에서 몇가지 주목하고 싶은 것 중에 하나가 
 sphinx + blockdiag series 였습니다. 시리즈의 구성마다 특성있는 다이어그램을 그릴 수 있게하는 그런  서비스입니다. 


  뭐 사실 가장 우왕~ 했던 부분은 이 시리즈 중에 seqdiag 입니다. 
  시퀀스 다이어그램을 아주 뽀대넘치게 만들어줍니다. 이런 다이어그램들은 SVG 로 브라우저에서 해석되어지기 때문에 SVG 해석이 불가능한 IE 에서는 아쉽게도 사용할 수 없겠네요.
 어제  TechTalk 에서 이 세션을 소개한 사람은 Sphinx 로 문서관리를 한다고 하는 군요. 글 뿐만이 아니라 이런 도식까지 포함해서 html,epub,pdf,latex 등 여러가지 포맷으로 변환가능하다고 합니다. (뭐 다른 것은 안되는 건 아니지만, Sphinx 에서 기본적으로 사용하는 reST 에는 여타 SVG 등을 그대로 embed 해서 쓰기 편하다는 군요.

  IE 에서 안된다는 것 때문에 그냥 무리해서 svg를 png 로 바꿔봤습니다만...

** Chrome 등의 SVG 지원 브라우저에서의 표시


** 무리해서 ImageMagicK 로 SVG 를 PNG 로 바꿨을 때...


 ... 일단은 ImageMagicK 를 이용한 변환작업에 상당한 시간이 걸리는 것과 함께... 살짝은 아쉬움도 남기도 합니다만, 그냥 뭐 이걸로 되었거니 하는 마음도 있습니다.
 
  2-3년전 쯤에 seqdiag 로 시퀀스다이어그램만을 만드는 서비스를 본 적이 있는데, 그게 아마...


 이었던 걸로 기억합니다. 예전에는 안그랬던 것 같았는데 최근에는 워터마크를 표시하고, 이를 제거하기 위한 유료플랜을 내세우는 것 같군요.

 아무튼 전 직장에서는 거의 손에 꼽을 정도의 사람만 Wiki 를 썼었고 (물론 전직장의 종업원수 역시 손에 꼽을 만 했지만..), 그 와중에 이런 시퀀스다이어그램이나 네트워크 구성도가 필요한 부분이 있었는데... [지금 알았던 것을 그때도 알았더라면...] 이라고 아쉬움이 남는군요.

 앞으로의 문서화에 있어서는 이렇게 일목요연한 도식을 겸하는 것도 좋은 선택이 아닐까 생각됩니다. 
신고
IT/Perl 2011.04.30 17:47

[ Perl / Cloud ] DotCloud .. 드디어 Perl Cloud 의 시작

DotCloud announces Perl support aka camels-as-service http://t.co/ZZSzWzbThu Apr 28 01:17:37 via Twitter for iPhone


 지난 28일 DotCloud 에서 Perl 을 지원하기 시작했습니다. Google App Engine, Heroku 등을 기점으로 시작한 PaaS 는 대개 Python, Java, Ruby, Node.js 등 Perl 을 제외한 상태에서 서비스가 되고 있었는데, 이번에 DotCloud 가 드디어 Perl 을 지원함으로인해 Perl 진영의 PaaS 로의 움직임이 시작되지 않을까 합니다.

  처음으로 Perl PaaS 의 기대감에 설레게했던 Phenona(http://www.phenona.com/) 는 Private Beta 중인 것같고.. 예전에 Private Beta 신청한 게 미끄러진 것 같네요. Phenona 는 메인화면에서 대놓고 Perl5 를 꺼내놓아서, Perl Developers 만의 PaaS 가 되지 않을까 하는 많은 기대를 하게끔 해주었습니다. CPAN 에서 Phenona Client 가 있으니... 어서 초대장이라도 오든가 해서 한번 접해보고 싶네요.

  현재 Mojolicious 나 Dancer, Catalyst 등의 여러 Perl Web Application Framework 를 중심으로 DotCloud 의 첫발을 위한 엔트리가 소개되고 있습니다.
  * Mojolicious

  * Dancer

@dot_cloud #perl #Dancer on the #cloud (dotcloud.com) EASY AS 1-2-3! https://gist.github.com/949192 WOW! Really well done!Fri Apr 29 23:08:48 via web

 
  * Catalyst 

@miyagawa good luck on the new job at @dot_cloud! Thanks to you guys, people can now easily deploy Catalyst apps too =) http://t.co/Dmhf7lfSat Apr 30 07:38:33 via Tweet Button


  관심이 있으신 분들은 한번 도전해보는 건 어떨까요?

  그리고 방금전에 터진 DotCloud 와 Perl 진영에 관한 빅뉴스가 하나 있었습니다. 


  바로 Perl 진영에서 가장 활동적인 해커인 @miyagawa 씨가 전직 SAY Media(옛날 Six Apart) 를 떠나서 DotCloud 로 회사를 옮겼다는 군요. 재미있게도 그의 지난 1년간의 주업무는 Python 이었고, DotCloud 도 Python 기반인 관계로 앞으로의 업무는 Perl 보다 Python 을 사용하게 될 것이라고 합니다. 그리고 서로간의 좋은 아이디어를 가져와 보완해줄 수 있지 않을까 하고 생각하고 있네요.
신고
TOTAL 479,602 TODAY 27

티스토리 툴바