[obsidian] 코드로 간트차트(Gantt) 작성하기

     

    obsidian - 코드로 간트차트(Gantt) 작성하기

    프로젝트의 진행상태를 한 눈에 보고자 하는 사람이라면, 간트차트를 선호할 것이다.

    직접 그리는 것까지는 아니더라도, 누군가 그려놓은 간트차트라도 보면서 관리하고자 할 것이다.

    간트차트를 그리려면, MS-Project, Jira의 Big Picture, MS-Excel에서 직접 그리기 등을 활용하는 방법들이 있다.

    이러한 툴들은 그야말로 GUI 기반에 가깝다.

    그러나, 코드로 간트차트를 그리는 방법이 있다.

    마치 PlantUML과 같이, 코드로 간트차트를 그리게 되면, 이 또한 버전 관리가 가능할 것이다.

    본 글에서는, Obsidian을 활용하여 간트차트를 그리는 법을 소개한다.

     

    mermaid 플러그인을 사용한 간트차트 그리기

    obsidian은 mermaid 플러그인을 사용하여 간트차트를 그린다.

    ```mermaid
    내용 작성
    ```

    mermaid 문법은 위와 같이 감싸준다.

     

    반응형

     

    작성 요소

    mermaid라고 선언한 후, 아래의 요소들로 내용을 작성한다.

     

    gantt

    최상위 요소이다.

    하위 요소로 title, dateFormat, section, task, milestone 등을 기입한다.

    gantt
        title 제목
        dateFormat 날짜형식
        section 섹션
        태스크명 : ...
        ...

    등과 같이 작성하게 될 것이다.

     

    title

    작성 중인 간트 차트의 제목

    title 간트 차트 제목

     

    section

    섹션은 일종의 논리적인 그룹명이다.

    다음 섹션을 만날 때까지 현재 섹션으로 유지된다.

    section 섹션 이름

     

    dateFormat

    입력 기준 날짜 형식이다.

    보통 간트 차트는 날짜 단위로 관리하므로, YYYY-MM-DD가 무난하다.

    dateFormat YYYY-MM-DD

    axisFormat

    출력 기준 날짜 형식이다.

    출력할 데이터가 많아지면, 노출하고자 하는 날짜 포맷에서 연도를 제외하고 싶을 수도 있다.

    %% 년-월-일로 표시하기
    axisFormat %Y-%m-%d
    
    %% 월-일로 표시하기
    axisFormat %m-%d

     

    %%: 주석

    주석은 %% 뒤에 기록한다.

    %% 이 문장은 주석이다.

     

    task

    태스크는 키워드로 시작하지 않고, 구조로 태스크임을 표현한다.

    태스크명 : 속성1, 속성2, 속성3 등을 기술하는 형식이다.

    %% 태스크1은 t1이라 별칭을 지정하고, 5일이 걸린다.
    태스크1: t1, 5d 
    
    %% 태스크2는 t2이라 부르고, t1 다음에 수행하며 3일이 걸린다.
    태스크2: t2, after t1, 3d
    
    %% 태스크3은 t3이라 부르고, 2022-10-01에 시작하여 2022-10-02에 완료했다.
    태스크3: done, t3, 2022-10-01, 2022-10-02
    
    %% 태스크4는 t4라 부르고, t3에 이어서 48h째 진행중이다.
    태스크4: active, t4, after t3, 48h
    
    %% 태스크5는 t5라 부르고, 2022-10-01로부터 5일이 걸린다.
    태스크5: t5, 2022-10-01, 5d

     

    milestone

    MS-Project를 사용하여 간트차트를 그려봤다면, 다이아몬드 표시를 기억할 것이다.

    마찬가지로 마일스톤을 찍을 수 있다.

    위의 task와 사용법이 매우 비슷하다.

    %% 마일스톤1을 m1이라 부르고, 2022-10-07 00:00:00의 위치에 마일스톤을 표시한다. (0은 duration)
    마일스톤1: milestone, m1, 2022-10-07

     


     

    예제

    위에서 설명한 것을 모두 모으면 아래와 같이 정리할 수 있다.

    ```mermaid
    gantt
    title My Gantt
    dateFormat YYYY-MM-DD
    axisFormat %m-%d
    
    section section-1
    %% 태스크1은 t1이라 별칭을 지정하고, 5일이 걸린다.
    태스크1: t1, 5d 
    
    %% 태스크2는 t2이라 부르고, t1 다음에 수행하며 3일이 걸린다.
    태스크2: t2, after t1, 3d
    
    %% 태스크3은 t3이라 부르고, 2022-10-01에 시작하여 2022-10-02에 완료했다.
    태스크3: done, t3, 2022-10-01, 2022-10-02
    
    section section-2
    %% 태스크4는 t4라 부르고, t3에 이어서 48h째 진행중이다.
    태스크4: active, t4, after t3, 48h
    
    %% 태스크5는 t5라 부르고, 2022-10-01로부터 5일이 걸린다.
    태스크5: t5, 2022-10-01, 5d
    
    %% 마일스톤1을 m1이라 부르고, 2022-10-07 00:00:00의 위치에 마일스톤을 표시한다. (0은 duration)
    마일스톤1 : milestone, m1, 2022-10-07, 0
    ```

    그리고, 이 내용을 Obsidian에서 보면 아래와 같이 노출된다.

    obsidian 옵시디안 gantt 간트

     

    더 보기

    댓글

    Designed by JB FACTORY