※ 일본의 한 블로그 글을 번역한 포스트입니다. 오역 및 의역, 직역이 있을 수 있으며 틀린 내용은 지적해주시면 감사하겠습니다.
DB설계의 관리나 생성이 힘들지 않은가? 오늘은 DB 설계의 공유와 관리에 편리한 툴인 dbdocs에 대해서 이야기하고 한자. dbdocs를 사용하면, 설계의 가시화나 공유가 간단해진다. 이번에는 장점과 실제 사용법에 대해서 설명하도록 하겠다.
dbdocs이란?
dbdocs는 코드베이스(DBML)로 DB설계를 관리하고, URL로 공유하는 것이 가능한 툴이다. 데이터 베이스의 테이블 구조나 관계성을 과시화하여, 이것을 다른 팀 멤버나 기업의 이해관계자에게 쉽게 공유할 수 있다.
dbdocs의 장점
dbdocs의 장점에 대해서 살펴보자.
1. 무료
맨 처음으로 dbdocs는 기본 무료이다. 비용을 신경쓰지 않고 이용할 수 있으므로, 팀의 누구도 액세스할 수 있다.
2. 코드 베이스로 관리
dbdocs는 코드 베이스로 DB설계를 관리한다. 이로 인해 설계의 변경 이력을 추적하는 것이 간단하므로, 버젼 관리도 대응할 수 있다.
3. 공유가 편리
설계도를 공유하기 위해서 단순히 URL의 복사 붙여넣기하면 된다. 이것만으로 다른 팀 벱어나 관계자와 설계를 간단히 공유할 수 있다. 또한 PDF나 PNG로 출력하는 것도 가능하다!
4. 열람제한
패스워드 설정으로 설계도의 열람을 제한하는 것이 가능하다. 보안을 확보하면서 필요한 사람만 액세스를 허가하는 것이 가능하다.
5. 가시화된 테이블간의 관계
dbdocs에서는 테이블간의 관계가 가시화된다. 따라서 한 눈에 데이터 베이스의 구조를 이해하는 것이 가능하다. 테이블을 검색해서 관련된 테이블만 표시하는 것도 가능하다.
6. Enum에 대응
Enum의 설계도 서포트하고 있다. 따라서, Enum의 정의를 알기 쉽도록 나타내는 것이 가능하다. 외부 툴에서는 이 부분을 대응하지 않은 경우가 많기 때문에 굉장히 편리하다.
7. 코멘트가 DM대응
테이블이나 칼럼의 코멘트가 DM대응하고 있다. 왜 이렇게 설계를 했는지 적어 놓을 수 있기 때문에 나중에 잊었던 부분이 떠올리기 편해진다.
8. 토큰 사용가능
토큰을 사용할 수 있으므로, CI/CD에 올려 도큐먼트의 갱신을 자동화할 수 있다.
dbdocs의 사용법
그렇다면 dbdocs의 설치 방법이나 사용법에 대해서 알아보자.
1. dbdocs의 설치
먼저 npm을 사용하여 dbdocs를 설치하자.
$ npm install -g dbdocs
2. CLI로 계정 생성 또는 로그인
다음은 CLI을 사용하여 dbdocs에 로그인한다. 메일 주소로 로그인하면 OTP 코드가 보내진다. 계정 생성도 동일하다.
$ dbdocs login
? Choose a login method: Email
? Your email: example@example.com
✔ Request email authentication
? Please input OTP code sent to the email:
3. 문서의 신규 작성/갱신
아래의 커맨드를 사용하면 문서를 신규 작성하거나 갱신할 수 있다.
$ dbdocs build [your/dbml/path]
✔ Parsing file content
⚠ Password is not set for 'sample'
✔ Done. Visit: https://dbdocs.io/example/sample
생성된 URL을 보면 DB 설계를 볼 수 있다.
그 외의 사용법
1. 문서의 패스워드 설정
로그인한 상태에서 아래의 커맨드를 실행시키면, 문서에 패스워드를 설정할 수 있다.
$ dbdocs password
? Project name: sample
? Enter password: [hidden]
? Re-enter password: [hidden]
✔ Password is set for 'sample'.
2. 토큰의 획득
Token을 발행하면 매번 로그인하지 않고, dbdocs를 갱신하는 것이 가능하다. 아래의 커맨드로 Token을 획득하고, 환경 변수 dbdocs_TOKEN을 설정한다.
$ dbdocs token -g
참고자료
'IT > 기초 지식' 카테고리의 다른 글
소프트 웨어 개발 스케줄 견적 입문 (0) | 2023.06.20 |
---|---|
UX 디자인의 5단계 모델 (0) | 2023.06.15 |
읽기 쉬운 코드를 쓰기 위한 가이드라인 (0) | 2023.06.11 |
[axios] axios의 error handling (0) | 2023.06.10 |
[AWS] SQS의 특징과 SNS와의 차이점 (0) | 2023.05.29 |