시퀀스 다이어그램 자동 생성

다이어그램 그리기는 어렵다. 특히 가로선의 수평 맞추기는 번거롭다. 텍스트로부터 다이어그램을 자동 생성하면 이런 불편함을 줄일 수 있고 수정 이력을 저장하고 서로 비교할 수 있다. 다이어그램 파일 포맷도 선택할 수 있다. 더 이상 가로 선 긋는 일은 하지 말자.

1. mscgen

mscgen을 사용하면 이런 작업을 쉽게 할 수 있다. 문법을 가진 텍스트 소스를 입력하면 여러 형식의 다이어그램 파일을 만들어 준다. 아래 내용을 test.msc 파일로 만들고

msc {
    width="600";
    FrontEnd [ textbgcolor="yellow" ],
    Server, DB [ textbgcolor="yellow" ];
    |||;
    FrontEnd box DB
    [ label = "box\nbox", textbgcolor="#F29C37" ];
    FrontEnd rbox DB [ label = "rbox", textbgcolor="red" ];
    FrontEnd abox DB [ label = "abox" ];
    FrontEnd note DB [ label = "note" ];
    |||;
    FrontEnd->Server [ label = "list(true)" ];
    --- [ label = "If more to run", ID="100" ];
    Server box Server [ label = "After 1 hour" ];
    Server=>DB [ label = "query()" ];
    Server=>>DB [ label = "stop()" ];
    |||;
    ...;
}

아래 명령을 수행하면 된다. 온라인으로 mscgen 결과를 확인할 수 있다.

$ mscgen -i test.msc -Tpng -o test.png

mscgen

2. seqdiag

mscgen와 다르게 seqdiag는 한글 입력도 문제 없으며 다이어그램도 더욱 보기 좋다. 온라인에서도 확인할 수 있다. seqdiaghttp://blockdiag.com/ 에서 제공하는 여러 다이어그램 중에 하나이니 다른 다이어그램도 살펴보기 바란다. 아래 내용을 test.diag 파일로 만들고

diagram {
    default_fontsize = 16;
    '프론트엔드' --> '서버' [label = "list(true)", leftnote= "한글"];
    '서버' -> '데이터베이스' [label = "query()"];
    '서버' -> '데이터베이스' [label = "stop()"];
}

아래 명령을 수행하면 된다.

$ seqdiag test.diag -o test.png -T png

seqdiag

3. seqdia

도쿠위키를 사용하고 있다면 seqdia 플러그인을 고려해 보길 바란다. 간단한 텍스트를 입력하면 이미지로 변환된다. 사진을 올리는 불편함을 줄여준다. 마지막 업데이트가 2010년이니 아마도 앞으로 업데이트가 없을 모양이다. 이 플러그인 기능을 https://www.websequencediagrams.com/ 사이트에서 사용하고 있는데 온라인으로 바로 확인할 수 있다. 플러그인을 설치하고 아래 내용을 입력하면 도쿠위키 입력화면에 다이어그램이 생성된다.

<seqdia rose>
FrontEnd -> Server: list(true)
Server->DB: query()
Server->DB: stop()
</seqdia>

seqdia_source

seqdia_image

4. Typora

마크업 에디터인 Typora를 사용한다면 내장된 기능으로 시퀀스 다이어그램을 그릴 수 있다. 사용자가 문자열을 입력하는 도중에 결과를 보여준다. 이 툴은 다른 종류의 다이어그램도 여럿 사용할 수 있다.

시퀀스 다이어그램 입력하는 모습
시퀀스 다이어그램

시퀀스 다이어그램 자동 생성”에 대한 답글 1개

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중

This site uses Akismet to reduce spam. Learn how your comment data is processed.