...
ERD CLOUD
프론트엔드 작업을 하기전에 UI 와이어프레임을 그리는 과정은 중요하듯이, 백엔드에서도 데이터베이스 모델링 설계 과정은 매우 중요하다.
데이터베이스 모델링을 할 때 ERD 다이어그램 툴을 사용하는데, ERD 관련 소프트웨어는 대부분 유료이며 체험판 무료 버젼은 제약도 많고 대부분 연식이 좀 된 소프트웨어들이라서 디자인도 조금 올드하다.
ERD(Entity Relationship Diagram)
문자 그대로 해석하면 '개체들의 관계를 다이어그램 형식으로 표현한 것' 이라고 볼 수 있고, 쉽게 정리하면 데이터베이스의 구조를 한눈에 파악할 수 있게 시각화한 것이다.
ERD Cloud 는 웹 기반으로 설치가 필요 없으며 팀원들과 실시간으로 동시 작업할수 있는 클라우드 서비스를 제공해주고 만든 ERD 다이어크램을 데이터베이스 SQL 쿼리문으로 추출까 제공해주는 정말 디자인도 좋고 보기도 좋고 편한 서비스이다.
웹브라우저나 모바일에서도 편리하게 접근할 수 있어서 편리하고 따로 저장장치를 갖고 다니지 않아도 언제든지 ERD를 참조하고 수정할 수 있어서 매우 편리하다.
그리고 무엇보다 재미있는 점은 다른 프로젝트에서 이용한 ERD를 조회할 수 있다는 점이다.
그누보드나 워드프레스 같은 오픈소스 프로젝트들의 ERD도 있으며, 심지어 국내 개발자 커뮤니티인 OKKY의 ERD도 있어 들어가서 구조를 구경해볼 수 있다.
ERD CLOUD 사용법
먼저 사이트에 들어가면, ERD Cloud 사용하기 버튼을 클릭한다.
그러면 회원가입 창이 뜰텐데, 간단하게 로그인 절차를 진행해준다.
로그인을 하면 이제 나만의 ERD를 생성할 수가 있다.
적당히 제목을 적어주고 비공개로 하고 만들기 버튼을 누른다.
ERD 설정 부분 디스플레이 항목에 도메인 / 타입 / Null 허용 / 기본값 / 코멘트를 모두 체크를 해주고 저장해준다.
참고로 그냥 하얀색 사각형이 체크가 안된거고, 검은색 사각형에 하얀 테두리가 체크가 된 상태이다.
ERD CLOUD 구성화면 기능은 매우 심플하고 필요한 것만 있다.
왼쪽에 있는 툴바는 새로운 테이블을 추가하고 카디널리티를 표시할 수 있는 기능들이 모여있다.
오른쪽 툴바에는 남들과 협업하면서 메시지를 주고 받거나 엔티티 목록을 볼 수 있다.
상단 툴바에서는 실행취소 버튼이나 톱니바퀴 모양의 ERD설정 버튼을 자주 사용한다.
ERD 그리기
이제 본격적으로 ERD 다이어그램을 그려보자.
왼쪽 메뉴바에 엔티티 추가 버튼을 누르고 빈 영역에 마우스를 가져다가 클릭을 하면 새로 엔티티가 생기게 된다.
그리고 두 버튼이 눈에 띄는데 + 버튼을 키를 생성하는 버튼이고, + 버튼은 일반 필드를 생성하는 버튼이다.
키 생성 버튼과 필드 생성 버튼을 누르게 되면 다음과 같이 테이블이 완성되는데, 각 테이블 항목을 설명하자면 다음과 같다.
[ 테이블 항목 ]
- 논리 테이블명 : 테이블명에 대한 설명 (한글)
- 물리 테이블명 : 실제 테이블명 (영문)
- 논리 필드명 : 필드명에 대한 설명 (한글)
- 물리 필드명 : 실제 필드명 (영문)
- 도메인 : 필드명에 대한 주제를 적는 곳 (이것도 일종의 코멘트와 같다)
- 타입 : int, varchar, date 필드 타입을 써주는 곳
- NULL 유무 : NULL / NOT NULL 중에 하나
- 기본값 : default 값을 써주는 곳
- 코멘트 : 말 그대로 부가설명이 필요할 경우 써주는 곳이다
논리값은 그냥 주석, 부가설명 으로 이해하면 된다. 실제 쿼리에는 포함되지 않아 한글로 설명을 쓰면 된다.
다음은 완성된 users(회원정보)와 posts(게시글) 테이블이다.
도메인 부분은 필드명 만 봐도 충분해서 굳이 항목 주제를 적을 필요가 없어서 빈칸으로 놔두었다. (나중에 설정메뉴에서 체크 해제 하면 된다)
만일 테이블 레코드를 수정하고 싶다면, 일일히 칸을 클릭해가며 하지말고 다음과 같이 편리한 메뉴를 따로 제공해주니 이를 이용해보자.
수정하고 싶은 레코드 행 클릭하고 우측의 느낌표 버튼을 클릭하면 수정 메뉴가 나오게 된다.
ERD 관계 맺기
이제 회원정보와 게시글 테이블을 관계를 맺어 보자.
하나의 회원은 여러개의 게시글을 작성할 수 있으며, 회원은 게시글을 하나도 작성 안 할 수 있다.
반면에 게시글은 한명의 회원만이 게시글을 쓸수 있으며, 반드시 회원 정보를 가지고 있어야 한다.
따라서 정리하자면 관계도는 회원정보(1)(|) : 게시글(N)(O)가 된다.
왼쪽 사이드 메뉴에서 알맞는 아이콘을 눌러주고, 회원정보 테이블을 먼저 클릭하고 그다음 게시글 테이블을 클릭해주면, 자동으로 관계선이 잇게 된다.
그러면 게시글 테이블에 자동으로 외래키 레코드가 삽입되게 되는데, 적절히 이름을 바꿔주면 된다.
ERD 쿼리 추출하기
하단메뉴를 보면 가져오기/내보내기 버튼이 있는데 내보내기를 한번 해보자.
- SQL 다운로드 : 쿼리문이 들어있는 sql 파일을 다운
- PNG 다운로드 : 테이블 모습을 이미지로 다운
- EXCEL 다운로드 : 테이블의 데이터를 엑셀 형식으로 다운
아쉽게도 Export는 MySQL(Maria DB), 오라클, MS-SQL 3종류만 지원된다.
그래도 무료툴인데 이 정도면 꽤 준수한 편이다.
이번에는 외부의 쿼리문을 ERD CLOUD로 가져와 테이블을 생성해보자.
하단의 가져오기 버튼을 누르고, 쿼리를 복붙 후 다시 가져오기 버튼을 누르면 ERD 화면에 테이블이 자동 생성된다.
ERD CLOUD 협업하기
ERD CLOUD의 최대의 장점인 클라우드 답게 온라인으로 팀원들과 실시간으로 동시 작업을 할수 있다는 점이다.
https://www.erdcloud.com/myPage 내 프로필 페이지로 가서, 팀 항목에 + 버튼을 누른다.
팀 이름을 설정하고 팀 멤버에 유저 ID를 입력, 추가해주고 팀 설명, URL(미입력 가능)을 입력해주시면 팀이 생성된다.
그리고 팀 목록에 들어가서 다음과 같이 ERD를 설정할때 팀 설정을 해주면 된다.
이렇게 team 작업용 ERD를 만들면, 팀원 작업 중에 실시간으로 변경되고 history도 확인할 수 있으며, 우측 메뉴에 소통하기 위한 채팅창도 있어 동시작업하기에 최적화 되어있다.
이 글이 좋으셨다면 구독 & 좋아요
여러분의 구독과 좋아요는
저자에게 큰 힘이 됩니다.