D2 언어 사용해보기

BSH·2023년 1월 24일
3

일일이 손으로 구성하던 소프트웨어 아키텍쳐 혹은 그래프들을 간단하게 만드는 언어가 나왔습니다.

D2 공식문서

프로젝트에 쓰일 아키텍쳐를 아래처럼 만들어봤습니다. 보고 만드는데 30분도 안걸린것같네요

D2 install

script로 설치하는 방법과 source를 통해 설치하는 방법이있는데 저는 script로 설치했습니다.

curl -fsSL https://d2lang.com/install.sh | sh -s -- --dry-run # 설치 명령어 확인(실체 설치 X)
curl -fsSL https://d2lang.com/install.sh | sh -s --

Install VScode Extension

vscode extesion에서 d2를 검색하고 설치해줍니다. 그래야 문법 highlight를 할 수 있습니다.

make d2 file and run

이제 간단하게 test.d2파일을 만들어 아래 명령어를 입력하고 실행해줍니다.

# test.d2
x -> y : file
# 실행 명령어
d2 test.d2

위의 두 명령어를 실행하면 아래과 같은 test.svg파일이 생성됩니다.

실행 명령어

# local server를 통해 저장할 때 마다 변경사항 확인가능
d2 --watch=true filename.d2

# 파일 저장을 svg가 아닌 png로 가능
d2 filename.d2 filename.png

# 색 테마 지정(테마 색은 공식문서에서 확인 가능)
d2 --theme=(int) filename.d2

# 손으로 그린것같은 sketch 옵션 주기
d2 filename.d2 --sketch

# d2 format 자동으로 고쳐주는 기능
d2 fmt filename.d2

이 외에도 d2 --help를 통해 더 확인할 수 있지만 이정도만 알아도 그냥 사용하기엔 충분한 것 같습니다.

프로젝트 구성도 만들기

아직 프로젝트 초반이라 이렇게 작성했지만 회의를 통해 더 구체적으로 추가시켜 나갈 부분이 있을 것 같습니다.

direction: right
ps: project structure{
    VM{
        direction: right;
        dv: docker volume
        dc: docker containers{
            psql: postgresql
            psql.shape: cylinder
            fastapi
            nginx
            nginx -> fastapi{
                style.animated: true
            }
            fastapi -> psql{
                style.animated: true
            }

            fastapi.style.multiple: true

        }
        dc.psql -- dv

    }
    Airflow{

    }

    user

    GCS

    user -> VM.dc.nginx{
        style.animated: true
    }
    user -> GCS{
        style.animated: true
    }
    VM.dc.fastapi -> GCS{
        style.animated: true
    }
    Airflow -> GCS{
        style.animated: true
    }
    Airflow -> VM.dc.psql{
        style.animated: true
    }
}

https://excalidraw.com/
위 사이트를 통해서 전체 구성도를 만들었었는데 이제 그럴 필요없이 프로그래밍처럼 만든다는 사실이 너무 좋습니다. 그리고 프로그래밍에만 국한된 게 아닌 다른 조직에서도 충분히 사용할만한 언어인 것 같아서 기능이 추가 될 수록 많은 사람이 사용할 것 같습니다.

profile
컴공생

0개의 댓글