기술로 변화를 이끄는 기업

토마토시스템의 다양한 이야기를 만나보세요!

- PRODUCT

[ERD]DB설계 툴에 대한 리뷰(eXERD, ERwin)

토리댁 2014. 1. 7. 11:24
[ERD]DB설계 툴에 대한 리뷰(eXERD, ERwin)



    저는 디스커버리 채널을 좋아합니다.

    이 채널은 과학과 오락의 절묘한 경계에 잘 놓여진 좋은 채널이라고 생각해요~ 

    그런데 이 채널을 볼 수 있는 방법은, 가장 비싼 케이블 TV패키지에 가입하는 

    방법 밖에 없습니다. 원하는 채널은 하나 뿐인데, 필요하지도 않은 다른 채널까

    지 반드시 구독해야 합니다.




정작 필요로 하는 기능은 몇가지 없는데 비싼 가격을 지불해야 하는 문제는, 소프트웨어에 

시장에서도 비일비재하죠?


예를 들어 윈도우 운영체제의 가격에는, 그림판이나 지뢰찾기, 그리고 무엇이 무엇인지 모를 괴상한 기능들에 대한 가격이 여전히 포함되어 있습니다.


오늘은 소프트웨어 중에서도, 데이터 모델링 도구(ERD툴)시장에 존재하는 이러한 유형의 문제와, 이러한 문제를 해결하는 데 도움이 될만한 제품을 소개하겠습니다.



ERwin


ERwin은 데이터 모델링 도구(ERD툴)에 있어 문자 그대로 독보적인 지위를 가진다. 90년대 후반부터 이어져와, 오랜 역사를 지닌 만큼, 방대한 기능을 제공하고 있으며 그 기능들 만큼이나 높은 가격을 가지고 있습니다.


ERwin의 주요 커버리지는 다음과 같습니다.


 - 논리 설계

 - 물리로 전이 및 설계

 - 실제 DB로 전이, DB로부터의 모델 전이, 그리고 실제 물리 DB의 특성 수정


오늘날에는 다양한 DB 제품군이 존재하며, 각 DB는 해당 DB에서만 사용할 수 있는 세부적인 기능들을 다수 갖추고 있으며, 빠른 속도로 늘어나고 있습니다. 현존하는 도구 중 ERwin은 이들을 가장 잘 지원합니다. 


문제는 가격입니다!!!


ERwin 본연의 기능은 데이터 베이스 모델을 설계하는 것이었지만, ERwin이 고가인 원인은 이런 임무를 잘 지원하기 때문이 아닙니다. 앞서 언급한 것처럼 방대하게 다원화(각각의 DB제품군 및 버전)된 각각의 DB들의 세부적인 특성을 지원하기 때문이라고 생각이 드는데요. N스크린은 항상 엄청난 비용을 필요로 하기 마련입니다.


ERwin은 엄밀히 말하자면 하나의 제품이 아니라, 각각의 DB들을 위한 모델링 도구들의 집합이라고 볼 수 있으며, 이러한 구조의 문제점은 다른 종류의 DB를 디자인 하는 동안, 경험이 일치하지 않는다는 점에서 잘 드러납니다. 예를 들어 MSSQL을 리버스 엔지니어링 할 때에는 진행율 표시바가 나타나 얼마나 기다려야 하는지를 알려주지만, 오라클을 리버스 엔지니어링 할 때에는 그러한 인터페이스가 누락되어 있습니다.


사용자 측면에서, 경험의 불일치보다 더 큰 문제는 이러한 방식에 의해 발생되는 cost의 증가 인데요.다소 극단적으로 말하자면 ERwin은 실제로는 여러 프로그램이기 때문에 비쌀 수 밖에 없습니다. 따라서 최종사용자는 디스커버리 채널만 보고 싶어도, 수 많은 불필요한 채널을 포함한 TV 패키지를 구매해야 하는 것처럼, 비싼 비용(상황에 따라 500만 ~ 1000만 KRW)을 지불해야 합니다.



개념 설계, 논리 설계, 물리 설계


이론상으로 DB 테이블의 설계는, 개념과 논리의 단계를 거쳐 물리로 전이되는 전 과정을 거치게 되지만, 그것은 전혀 새로운 분야에 대한 모델링이나 학술적 범위에만 주로 국한됩니다. 특히 DBA나 DB설계자가 아니면서도, ER 다이어그램을 가장 많이 참조하는 일반 개발자의 경우, 개념 및 논리 설계서를 아예 참조하지도 않으며, 설계의 결과물인 물리 DB 설계서만 참조하게 되는데요.


DB 설계등의 업무 담당자의 경우에도 업무의 내용에 대해 이미 숙달 된 경우가 많기 때문에, 개념/논리 모델링의 과정을 생략하는 경향이 짙으며, 이 경우 물리 DB를 곧바로 설계하며 주석이나 별칭 정도의 논리 정보를 부수적으로 입력합니다.


이런 상황에서, 사용자들은 논리명 정도를 제외하고는 ERwin이 제공하는 논리 설계 기능이나, 물리 전이 기능을 거의 이용하지 않게 됩니다. 뿐만 아니라 논리/물리의 전이 단계의 명확한 구분은 작업 문맥의 전환 등 오히려 불편함을 느끼게 됩니다.


결국 사용하지도 않는 기능들에 대해 많은 비용을 지불하는 셈입니다. 이런 점은 개선되어졌으면 좋겠습니다.  



eXERD


eXERD는 이러한 문제점에 착안하여 개발된 이클립스 기반의 국산 ER 모델링 도구인데요. eXERD는 이러한 개발실태에 맞추어, 논리 개념을 물리 디자인의 부수 개념으로 취급하며, 물리 테이블을 중심으로 논리/물리를 동시에 한 화면에서 편집할 수 있게 합니다. 또한 각 DB의 세부적인 특징을 통한 튜닝을 지원하지 않는 대신, 보편적인 실제 업무를 빠르게 처리할 수 있도록 고안되어 있습니다.



                                                      <논리 / 물리 동시 편집 화면>



가장 큰 특징은 엑셀 처럼 쉽고 빠르게 인라인 편집이 가능하다는 점인데요. 

대부분의 작업이 마우스나 다이얼로그를 필요로 하지 않습니다. 흔히 전통적 기법으로 모델을 설계할 때에는 물론 오랜 고민과 생각이 필요하므로 도구의 작업 속도가 그리 중요하지 않을 수도 있습니다.


그러나 현업은 대게 도메인에 전문화 되어 이미 개념 및 논리적 디자인을 지적 자산 형태로 가지고 있기 때문에 빠른 시간내에 DB에 배치 가능한 물리 설계를 빨리 만들어내고 변경하는 것이 중요합니다. 


eXERD는 이러한 상황에 놓인 팀에게 매우 적합한 DB 모델링 도구라는 생각이 드네요.



DBA 그리고 개발자


데이터베이스는 보통 DBA에 의해 디자인 되어왔습니다. 그런 이유로, 대개의 모델링 도구가 제공하는 작업환경은 DBA에게 초점이 맞추어져 있을 뿐, 다원화 되어 있지 않았습니다.


하지만 eXERD는 작업 인터페이스를 사용자가 스스로 결정할 수 있도록 되어 있습니다.


예를 들어 논리 설계자는 논리명과 도메인만을 보며 작업하고, 개발자들은 물리 화면만 볼 수도 있습니다.  물론 모든 내용을 동시에 보는 것도 가능하며, 항상 보이는 데로 인라인 편집이 가능한데요.

따라서 자신의 역할에 적합한 뷰를 직접 구성하여 모델을 바라보는 것이 가능합니다.





개발자들은 보통 인쇄된 ER 다이어그램을 참조하거나, 불법 복제본의 소프트웨어로 ER 다이어그램을 참조해야 했으며, 그 결과물은 개발자에게 별로 친화적이지도 않았습니다. eXERD는 다양한 참여자가 스스로의 목적에 맞게끔 ER 다이어그램을 볼 수 있으며, 모두에게 공급이 가능할 만큼 저렴하네요.



데이터 타입 추상화와 용어사전


비록 eXERD가 물리설계 중심의 DB 모델링 도구라고 할지라도, 프로젝트 관리에 필수적인 데이터 타입, 논리명에 따른 물리명 생성 규칙등의 정합성 추적은 반드시 필요한 기능인데요. 


기존 ERwin 에서 이러한 정합성 관리가 추가 플러그인에 의해 후처리(post-processing) 방식으로 일괄 처리되는 것과 달리, eXERD에서는 작업 내내 이러한 정합성 추적지원을 받을 수 있습니다.


예를 들어 도메인에서 지정한 데이터 타입을 컬럼이 덮어쓴 경우 붉은색으로 곧바로 표시되며, 물리명 입력시 용어사전의 지원을 받아 실시간 지원을 받습니다. 또한 검토 기능을 통하여 일괄적으로 검증하거나 수정하는 것도 가능합니다.



<작업 도중 물리명 입력 지원을 받는 모습>


이클립스


eXERD는 이클립스 플러그인이자, 이클립스 기반 제품으로, 독립적으로 설치하여 사용할 수도 있고, 기존에 존재하는 이클립스 환경에 플러그인 형태로 설치 될 수도 있습니다. 


개발자들은 원래부터 사용해 왔거나 선호하는 다른 플러그인들과 조합하여 이클립스 환경에 데이터 모델링 기능을 추가할 수 있으므로, 시너지 효과가 상당하다고 생각이 드는데요.


ERwin 등과 같은 소프트웨어는 가격 부담이 커서, 일반 개발자들까지 모델링 도구를 사용하는 일이 거의 불가능했으나, eXERD는 모든 스탭이 사용할 수 있을만큼 가격이 저렴하고, 그런 의도인 듯, 사용환경이 개발자에게 훨씬 더 친화적인 모습을 보이고 있네요.



건의


eXERD를 써보며 불편하게 여겨지기도 했던 부분은 eXERD의 개발진들은 선을 정리하거나, 테이블들을 보기 좋게 배치하는 작업을 비생산적인 작업으로 여기는 듯 하는거 같습니다.


또한 eXERD에서는 관계선을 사용자가 임의로 배치할 수 없으며, 항상 최단 경로로 자동 배치되는데 이것이 편리한 점도 있지만 내 마음대로 배치를 못한다는 점이 불편할 때 도 있습니다.


테이블들 또한 Ctrl + Shift + F 를 눌러 자동으로 배치할 수 있는데, 선의 꼬임등이 적고 꽤 볼만하지만인쇄하기에 최적으로 배치되는 것은 아니어서, 쓸모 없이 종이를 한 장 더 쓴다거나 하는 일이 많습니다. 


이와 같은 점들은 개선되어지면 좋겠네요 ^^;




마치며..



업무에 이미 해박하여, 개념 단계 부터 DB를 설계할 필요가 없는 경우, eXERD는 가격 경쟁력이 뛰어난 훌륭한 대안이 될 수 있을거 같습니다. 


많은 부분에서 실무 개발자의 편의성 및 생산성을 배려한 흔적이 보이고, 이클립스 환경과 통합되어, IDE 툴링 측면에서도 뛰어난 강점을 발휘합니다. 


각각의 팀과 개발자들의 점조직 형태의 복수 프로젝트를 진행하는 회사라면 추천할 만한 도구라는 생각이 드네요.