웹기반 ERD 생성 프로그램 소개 0 2 4,635

by 아발란체 [2016.02.18 15:12:57]


한국 개발자 분이 취미로? 잘 만드신 웹기반 솔루션 하나 소개 드립니다.

ERD 생성 및 ERD 기반 SQL 추출을 할 수 있습니다.

 

● 프로그램 데모

http://aquerytool.com/?demo=y

 

● 개발자 블로그

http://cafe.naver.com/aquerytool

 

● 개발자 블로그에 있는 소개 내용 

AQueryTool을 소개합니다.

 

0. 목차

1. 사이트 주소

2. 한줄 소개

3. 간단 소개

4. 사용 환경

5. 제작 이유

6. 회원가입, 로그인

7. 보안

8. 기본 사용 방법

9. 테이블 추가 및 ERD 생성

10. 테이블 설명

11. 인덱스 설정

12. 컬럼 순서 변경

13. 관계 설정

14. SQL 생성 – Table Create SQL

15. SQL 생성 – Favorite SQL

16. SQL 생성 – Test Data Insert SQL

17. SQL 생성 – 모든 테이블 생성 SQL파일 내보내기

18. 메모 추가하기

19. 테이블 레이아웃

20. 해당 테이블만 Comment 보기

21. 테이블 자동 정렬

22. ERD 서버에 저장하기

23. 서버에 저장된 ERD 불러오기 및 삭제하기

24. ERD 이름 변경 및 DB 서버 변경

25. 이미지 파일로 저장하기

26. ERD 공유 – 읽기 전용 ERD URL 생성

27. ERD 공유 – 회원 간 공유 요청 및 허가

28. ERD Drag/Move

29. 테이블 검색

30. 테이블의 위/아래 TextBox로 이동

31. 회원 이름 변경

 

1. 사이트 주소

http://aquerytool.com/

 

2. 한줄 소개

AQueryTool은 웹 기반 ERD 툴 + SQL 자동 생성 프로그램입니다.

 

3. 간단 소개

AQueryTool은 웹 기반이기 때문에 접근과 공유가 대단히 편리하며 기존의 ERD 툴 보다 쉽게 사용할 수 있습니다.

또한 AQueryTool로 간편하게 테이블 구조를 만들면 다양한 SQL문들을 자동으로 생성할 수 있습니다.

현재는 테이블 생성관련 SQL과 기본적인 CRUD, Join, Paging, Merge등 다양한 SQL문과 테스트 데이터를 자동 생성해주며 앞으로 계속 늘어날 계획입니다.

현재는 Oracle, MySQL, MSSQL을 지원하며 지원하지 않는 DB를 이용하더라도 ERD 설계에는 전혀 지장이 없으며 자동 SQL 생성 시 약간 맞지 않을 수 있습니다.

지원하는 DB 또한 계속 늘려나갈 계획입니다.

 

4. 사용 환경

AQueryTool은 HTML5 기반으로 제작되었기 때문에 PC의 최신 브라우저와 스마트폰, 태블릿에서 모든 기능을 이용할 수 있습니다.

PC 크롬 브라우저에서 이용할 경우 속도가 가장 빠릅니다.

 

5. 제작 이유

학생이나 신입 개발자라면 SQL에 익숙하지 않으니 도움이 될 것 같고 저 같은 경우에는 서버 작업을 할 때마다 같은 코드 몇십 번씩 치는 게 귀찮아서 이렇게 대신 코드 만들어주는 툴을 좋아합니다.

예전부터 저 혼자 쓸 목적으로 윈도우 어플리케이션으로 만들어서 잘 쓰다가 웹 기반으로 AQueryTool을 만들게 되었습니다.

 

SQL 자동 생성을 위해서 ERD 정보가 필요했고 기존의 ERD툴들에 대한 불만도 많아서 ERD 툴도 함께 만들었습니다.

기존의 ERD 툴들은 가격이 상당히 비싼데도 불구하고 “왜 이렇게 불편하지?”라는 생각뿐이었습니다.

안 쓰는 기능이 잔뜩 있지만 정작 필요한 기능은 너무 번거롭고 안 되는 것들이 많습니다.

너무 오래전에 만들어진 프로그램이라 너무 늙은 느낌 이였습니다.

젊은 ERD 툴이 필요하다고 생각했습니다.

 

6. 회원가입, 로그인

1) 회원가입과 로그인을 하지 않아도 ERD를 만들고 자동 SQL을 생성할 수 있습니다. 다만 작성한 ERD를 서버에 저장하려면 회원가입 및 로그인이 필요합니다.

  

2) 회원가입을 하지 않고 Facebook, Google, Naver 아이디로도 로그인할 수 있습니다.

 

7. 보안

1) 모든 개인 정보는 암호화 되어 DB에 저장 되며 다양한 암호화 기법으로 통신 중에도 개인 정보 유출을 막도록 설계 되었습니다.

특히 비밀번호는 최신 SHA3 방식으로 복호화가 안 되게 저장됩니다.

2) AQueryTool은 SQL Injection공격 및 XSS공격에 대한 대비가 잘 되어있습니다.

3) 자동 로그인(Remember me)의 경우 안전한 본인 PC에서만 자동 로그인을 이용하시기를 추천 드립니다.

보안을 위해서 아래와 같은 상황에서 자동 로그인이 무효화 됩니다.

- 다른 PC에서 로그인할 경우

- 현재 PC에서 다른 계정으로 로그인할 경우

- 로그아웃할 경우

 

8. 기본 사용 방법

시작화면은 아래와 같습니다.

1) HELP 메뉴를 클릭하면 도움말을 볼 수 있습니다.

2) DEMO 메뉴를 클릭하면 데모 ERD를 볼 수 있습니다.

3) 서버에 저장한 ERD가 있다면 [ERD] - [ERD 불러오기] 메뉴를 선택하여 서버에 저장한 ERD를 불러올 수 있습니다.

4) 마우스 오른쪽 버튼을 클릭하면 팝업메뉴가 나타나며 여기에서 테이블과 메모를 추가할 수 있습니다.

5) 스마트폰이나 태블릿의 경우 터치를 길게 하면 팝업메뉴가 나타납니다.

 

9. 테이블 추가 및 ERD 생성

1) 로그인을 하지 않아도 ERD를 만들 수 있지만 서버 저장을 위해서 회원가입 후 로그인을 하는 것을 추천 드립니다.

2) 마우스 오른쪽 버튼을 클릭하면 나타나는 팝업메뉴에서 [테이블 추가] 메뉴를 클릭합니다.

2) 처음 테이블을 추가하면 자동으로 ERD 설정 팝업이 나타납니다.

테이블 생성 후 컬럼 타입을 입력하고 자동 SQL 생성을 위해서는 기본적인 DB타입을 포함한 ERD 정보가 필요합니다.

필요한 정보를 입력하고 OK 버튼을 클릭하면 서버에 저장되는 것은 아니고 클라이언트에 저장됩니다.

 

10. 테이블 설명

1) 버튼 설명

 : 테이블 드래그

 : 테이블 삭제

 : Column 드래그(테이블 관계 설정용, FK 생성용)

 : Column 삭제

 : Column 추가

 : Create Table 관련 SQL 생성

 : 많이 쓰는 SQL 생성

 : 테스트 데이터 생성

 : 인덱스 설정

 : 해당 테이블만 테이블 커멘트, 컬럼 커멘트 보기/숨기기

 

11. 인덱스 설정

1) 테이블 우측 하단의  버튼을 클릭하면 인덱스 설정 팝업이 나타납니다.

2) 하나의 인덱스로 설정할 컬럼들을 Index cart에 드래그&드랍으로 추가 합니니다.

3) 하나의 인덱스로 설정할 컬럼들을 모두 Index cart에 추가 했으면 주황색 Add Index 버튼을 클릭해서 하나의 인덱스로 설정합니다.

이렇게 설정한 Index는 Create Table 관련 SQL을 생성할 때 반영됩니다.

 

 

 

12. 컬럼 순서 변경

1) FK 컬럼을 마우스로 드래그 하여 순서를 변경할 컬럼 위에 드랍하면 순서가 변경 됩니다.

 

13. 관계 설정

1) FK 컬럼을 마우스로 드레그 하여 참조할 테이블의 컬럼에 드랍 하면 관계가 설정 됩니다.

2) 또는 FK 컬럼을 마우스로 드래그 하여 참조할 테이블 상단에 드랍 하면 FK 컬럼과 이름과 타입이 같은 컬럼이 있으면 해당 컬럼과 관계를 설정하고 없으면 이름과 타입이 같은 컬럼을 자동으로 만들어 줍니다.

3) 연결선은 정확히 관계가 설정된 두 컬럼을 가리키기 때문에 두 테이블이 어떤 컬럼으로 관계를 맺고 있는지 쉽게 알 수 있습니다.

연결선에서 화살표가 있는 쪽이 parent(references) 테이블이 되며 화살표가 없는 쪽이 foreign key를 갖는 child 테이블이 됩니다.

child 테이블에서 FK의 체크박스를 해제하면 연결 관계는 삭제됩니다.

연결된 컬럼을 삭제해도 연결 관계는 삭제됩니다.

 

14. SQL 생성 – Table Create SQL

1) 테이블 하단에 [CT SQL]버튼을 클릭하면 테이블 생성 관련 SQL문이 자동으로 만들어집니다.

2) Constraint(Foreign Key), Index, Comment를 포함해 테이블에서 설정한 모든 내용이 반영 되며 Oracle의 경우 AI(Auto increment)를 설정하면 AI용 SEQUENCE와 TRIGGER도 자동으로 만들어집니다.

3) DB 서버 타입을 변경할 수 있으며 DB 서버 타입을 변경하면 자동 SQL 생성 시 변경된 DB 서버에 맞는 SQL이 만들어집니다.

 

15. SQL 생성 – Favorite SQL

1) 테이블 하단에 [F SQL]버튼을 클릭하면 많이 쓰는 SQL문이 자동으로 만들어집니다.

2) 현재는 테이블 생성관련 SQL과 기본적인 CRUD, Join, Paging, Merge등 다양한 SQL문을 자동 생성해주며 앞으로 계속 늘어날 계획입니다.

Join SQL의 경우 현재 테이블과 관계가 설정된 모든 테이블의 정보에 맞게 Join SQL이 생성되며 현재 테이블과 관계가 설정된 테이블이 없다면 Join SQL은 만들어지지 않습니다.

 

16. SQL 생성 – Test Data Insert SQL

1) 테이블 하단에 [T Data]버튼을 클릭하면 테스트 데이터를 테이블에 추가할 수 있는 Insert문이 생성됩니다.

2) 테스트 데이터 Row 수를 입력하고 OK버튼을 클릭하면 테스트 데이터 Insert SQL이 생성됩니다.

txt 파일로 저장 되어서 메모장에서 볼 수 있습니다.

 

17. SQL 생성 – 모든 테이블 생성 SQL파일 내보내기

1) 상단 도구모음에서 [테이블] - [모든 테이블 생성 SQL] 메뉴를 선택하면 ERD에 포함된 모든 테이블에 대한 Create Table 관련 SQL문이 txt 파일로 생성됩니다.

2) txt 파일에서 테이블 순서는 관계를 고려하여 한 번에 실행해도 에러가 발생하지 않게 정렬됩니다.

 

18. 메모 추가하기

1) 마우스 오른쪽 버튼 – 팝업메뉴 – [메모 추가] 메뉴를 클릭하면 메모가 추가 됩니다.

위치, 크기도 마음대로 설정할 수 있습니다.

 

19. 테이블 레이아웃

1) 상단 도구모음에서 [테이블] - [테이블 형태 설정] 메뉴를 선택하면 원하는 모양으로 테이블이 보여지도록 설정할 수 있습니다.

Comment, Name, Type, Default Value 항목의 넓이도 설정할 수 있습니다.

여기에서 설정하면 모든 테이블이 설정한대로 보여집니다.

 

2) 아래는 기본 형태입니다.

3) 아래는 숨겨진 Comment까지 표시한 형태입니다.

4) 아래는 버튼을 숨긴 형태입니다.

5) 아래는 최소화한 형태입니다.

 

20. 해당 테이블만 Comment 보기

보통의 경우 Comment까지 화면에 나타나게 하면 ERD가 너무 커져서 Comment는 숨겨 놓고 작업하는 경우가 많은데 간혹 특정 테이블에 Comment를 추가하거나 작성된 Comment를 확인해야할 때가 있습니다.

이럴 경우 테이블 하단에 버튼을 클릭하면 해당 테이블만 Comment가 표시 됩니다. 버튼을 다시 클릭하면 Comment가 숨겨집니다.

 

21. 테이블 자동 정렬

1) 상단 도구모음에서 [테이블] - [테이블 자동 정렬] 메뉴를 선택하면 테이블과 메모가 자동 정렬 됩니다.

 

22. ERD 서버에 저장하기

1) 상단 도구모음에서 [ERD] - [ERD 저장] 메뉴를 선택하면 현재 ERD가 서버에 저장 됩니다.

 

23. 서버에 저장된 ERD 불러오기 및 삭제하기

1) 상단 도구모음에서 [ERD] - [ERD 불러오기] 메뉴를 선택하면 서버에 저장한 ERD를 불러올 수 있습니다.

2) ERD 삭제

여기에서 ERD를 삭제할 수 있는데 주황색 인 경우 해당 ERD를 자신이 생성한 것을 의미합니다. 자신이 생성한 ERD를 삭제하면 해당 ERD를 보는 모든 사용자는 더 이상 해당 ERD를 볼 수 없게 됩니다.

청녹색 인 경우 해당 ERD는 다른 사용자가 생성한 것을 의미합니다. 다른 사용자가 생성한 ERD를 삭제해도 자신의 목록에서만 사라질 뿐 원본은 삭제되지 않습니다.

원본 ERD 삭제는 오직 생성한 회원만이 삭제할 수 있습니다.

 

24. ERD 이름 변경 및 DB 서버 타입 변경

1) 상단 도구모음에서 [ERD] - [ERD 정보] 메뉴를 선택하면 아래와 같은 팝업이 나타납니다.

여기에서 ERD 이름, DB 서버 타입, ERD 크기를 설정할 수 있습니다.

DB 서버 타입을 변경하면 자동 SQL 생성 시 변경된 DB 서버에 맞는 SQL이 만들어집니다.

여기에서 설정 후 OK버튼을 클릭해도 서버에는 저장되지 않습니다.

 

25. 이미지 파일로 저장하기

1) 상단 도구모음에서 [ERD] - [이미지 파일로 저장] 메뉴를 선택하면 현재 ERD가 이미지 파일로 저장됩니다.

 

26. ERD 공유 – 읽기 전용 ERD URL 생성

1) 서버에 저장된 ERD만 공유 할 수 있습니다.

2) 이 방법은 비회원도 ERD에 읽기 전용으로 접근할 수 있습니다.

3) 상단 도구모음에서 [ERD] - [읽기전용 Url] 메뉴를 선택하면 아래와 같은 팝업이 나타납니다.

4) New Link 버튼을 클릭하면 ERD 바로 가기 주소와 비밀번호가 자동으로 만들어집니다.

Clipboard Copy 버튼을 클릭하여 주소와 비밀번호를 클립보드로 복사한 후

다른 사람에게 이메일이나 메신저로 전달하면 간단하게 해당 ERD를 공유할 수 있습니다.

5) New Link 버튼을 다시 클릭하면 새로운 주소와 비밀번호가 만들어지고

기존의 주소로는 ERD에 접근할 수 없게 됩니다.

6) 읽기 전용 주소로 접속하면 아래와 같이 비밀번호 입력 화면이 보여집니다. 비밀번호를 입력하면 ERD가 보여집니다.

수정을 할 수 있고 자동 SQL 생성 기능도 이용할 수 있지만 서버 저장은 할 수 없습니다.

 

27. ERD 공유 – 회원 간 공유 요청 및 허가

1) 서버에 저장된 ERD만 공유 할 수 있습니다.

2) 상단 도구모음에서 [ERD] - [공유 설정] 메뉴를 선택하면 아래와 같은 팝업이 나타납니다.

3) 상단 Clipboard Copy 버튼을 클릭하여 현재 ERD의 고유키를 클립보드로 복사한 후 다른 회원에게 이메일이나 메신저로 전달합니다.

4) ERD 고유키를 받은 다른 회원은 상단 도구모음에서 [ERD] - [공유 요청] 메뉴를 선택하면 아래와 같은 팝업이 나타납니다.

5) 여기에 전달 받은 ERD 고유키를 입력해서 해당 ERD에 대한 권한 요청을 할 수 있습니다.

6) ERD 생성 회원은 상단 도구모음에서 [ERD] - [공유 설정] 메뉴를 선택하면 아래와 같은 팝업이 나타납니다.

 

7) 여기에서 접근 권한을 신청한 회원에게 읽기, 쓰기 권한을 줄 수 있습니다. 물론 쓰기 권한은 매우 신중하게 설정하는 것을 추천 드립니다.

8) 이렇게 다른 회원에게 ERD 접근 권한을 주면 다른 회원은 상단 도구모음에서 [ERD] - [ERD 불러오기] 메뉴를 선택해서 권한을 받은 ERD를 불러올 수 있습니다.

 

 

28. ERD Drag/Move

1) ERD 빈 곳을 마우스로 드레그 하면 ERD가 이동 됩니다.

브라우저 Scroll로 이동해도 되지만 ERD Drag로 더 편리하게 이동할 수 있습니다.

주황색 화살표와 같이 왼쪽 위로 드레그 하면 ERD의 오른쪽 아래 부분을 볼 수 있습니다.

 

29. 테이블 검색

1) 테이블이 많을 경우 도구상자의 테이블 목록에서 원하는 테이블을 쉽게 찾을 수 있습니다.

테이블을 선택하면 스크롤이 이동되어 선택한 테이블이 화면 가운데로 맞춰지며 선택한 테이블 테두리가 반짝거립니다.

 

30. 테이블의 위/아래 TextBox로 이동

1) 아래 그림의 employee_id을 입력한 후에 아래 컬럼인 company_id를 입력하려면 마우스로 클릭할 필요 없이 Down(↓) 키를 입력하면 이동 됩니다.

마찬가지로 위에 있는 컬럼의 TextBox에 값을 입력할 때는 Up(↑) 키를 입력하면 이동 됩니다.

 

31. 회원 이름 변경

1) 로그인 후 오른쪽 위 이름을 클릭하면 이름 수정 팝업이 나타납니다.

2) 새로운 이름을 입력하고 Edit 버튼을 클릭하면 이름이 수정 됩니다.

 
by 우리집아찌 [2016.02.18 16:54:01]

취미로 만드셨다니... 헐...


by 이용범 [2016.03.09 17:56:19]

대박이네요... 좋은정보 감사합니다!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입