개발 도구2012. 7. 27. 17:41

안녕하세요. 엉스데브 입니다.

이번에 회사의 중요 DB의 스키마 정리 업무를 맡게 되었습니다.
MySQL DB 인데, 제법 테이블의 갯수가 많고 복잡하게 얽혀있는 녀석입니다.

기존에는 ERwin 을 통해 관리 되고 있었으나,
라이센스 가격이 너무 비싼 관계로 다른 도구(이왕이면 무료!)를 사용해 보기로 했습니다.

검색 해 보니 위키피디아에 좋은 문서가 있네요!

@위키피디아의 데이터 모델링 도구 비교 정보(영문):
http://en.wikipedia.org/wiki/Comparison_of_data_modeling_tools

 

이 업무를 수행하기 위해 필요한 도구의 조건을 정리 해 보니 대략 다음과 같더군요.

@이번 업무에 필요한 데이터 모델링 도구 의 조건:

1. MySQL 지원
스키마를 정리하고자 하는 대상 DB 가 MySQL 입니다.

2. 리버스 엔지니어링 기능 지원
이미 존재하는 DB 로 부터 모델링 정보를 추출하는 기능입니다.
이 기능이 지원되지 않는다면 일일이 수작업을 해야 하는데, 너무 많은 비용/시간이 소모 됩니다. 필수적으로 필요합니다.

3. 논리적 모델링 기능 지원(다이어그램에 한글표기 가능)
물리적 모델링 정보(DB 테이블 및 컬럼의 실제이름 및 컬럼 데이터타입)만으로는 한눈에 어떤 정보가 어떻게 얽혀있는지 파악하기 쉽지 않습니다. 기존에 사용하던 ERwin 처럼 한글로 된 논리적 모델링이 가능해야 한눈에 파악하기가 좋기 때문입니다.

 

여러 무료 데이터 모델링 도구를 대상으로 비교 해 본 결과, 
이번 업무에 맞는 도구로는 MySQL Workbench 가 가장 적절 해 보였습니다.

@MySQL Workbench 의 장점:
1. MySQL 의 공식적인 GUI 도구라는 점이 믿음직 하고,
2. 리버스 엔지니어링이 완벽히 지원 되며,
3. 다이어그램이 매우 예쁘게 그려집니다. :)

@MySQL Workbench 의 단점:
1. 논리적 모델링을 지원하지 않으며
2. 한글 지원이 완벽하지 않습니다
3. 다소 불안정한 동작을 보이는 것도 단점입니다.(잦은 다운 등)

단점들이 무료인 점을 감안하면 납득 가능 한 수준이며, 다른 적절한 대안을 찾을 수 없었기 때문에 결국 최종 선택 했습니다.

 

@리버스 엔지니어링을 통해 기존 DB 불러오기:
MySQL Workbench 를 이용해서 리버스 엔지니어링을 하는 방법은 매우 직관적이라, 별도의 메뉴얼이 필요 없을 정도입니다.
만약 메뉴얼이 필요하신 경우, 아래 "더보기"를 클릭 하세요.

 

 

@ERD 만들기:
리버스 엔지니어링을 통해 기존 DB 의 Object 들을 가져온 뒤,
다이어그램에 보기좋게 배치하면 물리적 모델링 ERD 가 완성 됩니다.

위에서 언급했던 MySQL Workbench 의 단점인 논리적 모델링 기능의 미지원은
아쉬운대로 다이어그램을 복사 한 뒤 각 테이블 및 컬럼명을 한글로 입력 해 주는 것으로 처리하기로 했습니다.
어차피 출력 해 두고 둘러보는 용도로 사용 할 것이니까요..

헌데 여기서 문제가 생기는 데요. 다이어 그램상에서 한글이 깨져서 보입니다. 이는 MySQL Workbench 가 기본적으로 사용하는 글꼴이 latin-1 계열의 문자만을 처리 할 수 있는 글꼴이기 때문에 발생하는 문제입니다. 이 문제의 해결은 아래 Tip #1 을 참고 하시기 바랍니다.

(Tip #1: 한글 글꼴 설정)

[Edit > Preferences > Apperance] 메뉴로 접근하면 Workbench 가 사용하는 글꼴을 변경 할 수 있습니다.
한글이 지원되는 글꼴을 지정하면 되는데, 글꼴 및 크기지정에 따라 숫자가 깨져보이거나 문자 간격이 틀어지는 등 문제가 좀 있는 편입니다. 여러 시행착오 끝에 현재는 아래와 같이 설정 해 두고 사용하고 있습니다. 이 상태가 가장 보기 좋게 표시되는 것 같더군요. 참고 하시기 바랍니다.

@한글 글꼴 설정 추천:

 

(Tip #2: 컬럼 갯수 표시 갯수 및 표시 이름 길이 설정)

만약 컬럼 갯수가 많거나 이름이 길어서 잘리는 경우, [Edit > Preferences > Diagram] 메뉴에서 각종 옵션을 조정해서 해결 할 수 있습니다. 단, 다이어 그램 상에 새로 배치를 해야 적용되는 경우가 있으니, 설정 변경 후에는 표시되길 원하는 Object 를 다이어그램에서 제거 한 후 다시 추가 하시길 권장 드립니다.

@Diagram 설정:
 

 

@정리:

MySQL Workbench 는 무료인만큼 아쉬움이 다소 많이 있는 툴이지만,
상용툴도 그다지 만족스럽지 않은 상황에서는 상당히 매력적으로 느껴지는 녀석입니다.

포럼을 뒤져보니 논리적 모델링을 추후 지원 예정이라고 하는데, 아직 확정 된 내용은 아닌것 같습니다.
만약 논리적 모델링 기능이 추가되고 한글이 좀 더 완벽히 지원 된다면 상당히 매력적인 도구가 될 것 같습니다.

MySQL 만 지원하는 만큼 ERwin 처럼 범용적인 데이터 모델링 도구로서 사용하기는 어렵겠지만,
MySQL 에 한해서는 상당히 높은 경쟁력을 가진 프로그램이라 생각합니다.

 

Posted by 알 수 없는 사용자