새로운 MySQL 클라이언트

예전 글에서 살짝 들어나기도 했듯이, 나는 리눅스에서 흔히 쓰이는 프로그램을 윈도우 사용자도 쓸 수 있도록 권유하는 일이 종종 있다. 그것은 리눅스는 자유의 상징이고 MS는 돈의 노예같은 비뚤어진 의식때문이 아니라 어떤 필요성이 생겼을 때 대안이 있다는 것조차 모르는 윈도우 사용자가 많기 때문이다. 내가 추천한 프로그램이 선택되지 않는다고 해도 가능한 선택지들을 검토한 후에 공평하게 결정된 것이라면 어떤 의미에서든, 누구에게든 그것이 더 생산적이라고 생각한다. 선택되지 않은 프로그램이 더 나아질 계기가 될 수도 있을 것이다.
내가 다니는 회사에서 개발한 예전 게임의 서버는 윈도우 프로그램이라서 데이터베이스로 자연스럽게 MS-SQL을 사용한다. 윈도우 프로그램은 백엔드 - 프론트엔드 짝이라는 개념보다, 서비스가 즉 클라이언트라는 명료한 사상이 있는데 이것이 윈도우 유저가 외부의 프로그램을 사용하기로 마음먹는 초기 장벽을 높게 만드는 것 같다. 처음 이 회사에 리눅스 서버를 도입하면서 서버측 데이터베이스로 MySQL을 도입했는데, 나는 이것이 다른 팀에서도 엑셀 - 액세스 - MS-SQL 콤비 대신 폭넓게 쓰일 수 있을 것이라는 생각에 사람들을 좀 설득할 일이 있었다. 언젠가 또 다시 이야기할 일이 있겠지만 엑셀로 흔히 대표되는 클라이언트측 데이터 관리는 중앙집중식 데이터 관리에 비해 원전의 분산이라는 취약점에 노출되기 때문이다. 이 때 등장한 것이 앞서 말한 바 있는 MySQL Control Center다. 이건 Jorge del Conde라는 분이 원맨팀으로 MySQL AB를 위해 진행하던 프로젝트로 꽤 잘 만들어진 MySQL GUI 클라이언트인데 한글 작업이 오동작하는 바람에 회사 사람들에게 소개할 수 없던 문제로 무모하게도 패치를 감행했었다. 사실 여러 가지 문제로 지금 내가 몸담고 있는 프로젝트에서는 mysqlcc 대신 엑셀과 PMA를 프론트엔드로 MySQL을 사용하고 있다.

그러던 어느날, 나는 새로운 프로젝트에서 클라이언트용 데이터 관리를 위해 mdb 대신 MySQL을 사용하려고 한다는 소식과 함께 이 프로그램을 사용한다는 소식을 들었다. 그렇다. MySQL Control Center 원맨 프로젝트는 문 닫고 좀 더 본격적인 GUI 클라이언트팀이 발족한 것이다! (조금 안됐어) 초기 접근에 조금 진통은 있었던 모양이지만 누군가의 부추김이나 꼬드김 없이 MySQL을 사용한다는 결론만 건내어 듣고는 놀랐다. 프로그램을 깊게 들여다보지는 않았지만 첫인상만으로도 조금 감동해서 긴 서론 끝에 이 놈을 소개해야겠다는 마음을 먹었다.

윈도우에서 모든 프로그램을 깔고 사용한다는 가정하에 그림들을 늘어놓겠지만 사실 서버는 어느쪽에 있든 상관없다.

자, 먼저 필요한 패키지들을 설치한다. 공식 홈페이지에서 MySQL 서버 4.x 버젼과 클라이언트를 받아서 실행하면 보통 윈도우 프로그램처럼 설치할 수 있다. 이 두 클라이언트 콤비의 이름은 MySQL Administrator와 MySQL Query Browser인데 전자는 서버를 관리하는 프로그램이고 후자는 퀴어리를 날리고 받고 고치는 일반적인 데이터베이스 클라이언트에 해당한다.

클라이언트라는 것은 물론 어딘가에 접속해야 하니까 서버를 띄울 필요가 있을 것이다. MySQL System Tray Monitor를 실행한다.
MySQLSystemTrayMonitor 빨간 동그라미 안이 이 프로그램의 트레이 아이콘으로 MySQL 서버의 가동 상태를 알려준다. 실행되고 있지 않다면 인스턴스를 시작한다는 명령으로 가동하면 될 것이다. 관리자와 퀴어리 브라우저 모두 이 아이콘을 오른쪽 클릭해서 실행할 수 있다. 일단 우리는 계정이 필요하니까 관리자를 실행해야겠다.

MySQLAdministratorDialog

연결을 미리 등록해놓고 사용할 수 있다. Stored Connection이 그런 기능인데 ...을 누른다.

MySQLAdministratorStoredConnection

익숙하지 않은 커맨드 라인이나 초창기 GUI 관리자에 비하면 첫인상부터 거의 아름답기까지 하다. 자, 이제 새로 만든 정보로 연결하고 새 사용자 계정을 만들자. 만약에 연결되지 않으면 핑을 보내볼지 메뉴가 나오는데 그 세심함에 기분이 좀 좋아진다.

MySQLAdministratorUserAdministration
접속지에 따른 계정 설정하기도 편하고,

MySQLAdministratorSchemaPrivileges
권한 주기가 쉽다. (그녀는 현재 볼 수만 있는 존재)

자, 이제 퀴어리 브라우저로 테스트 데이터베이스에 접근한다. 테이블을 만들려면 권한을 좀 더 줘야 될 것이다.

MySQLQueryBrowserSchemata
(역시 깔끔한 인상)

테이블을 좀 만들어보자.

MySQLQueryBrowserTableEditor
필드 이름들 하고는. (귀염둥이같으니?!) 필드와 테이블 옵션에서 캐릭터셋을 섬세하게 다룰 수 있다.

MySQLQueryResultset

한꺼번에 고치고-반영하는 구조 때문에 Control Center나 PMA보다 반응성도 좋고 눈도 즐겁고 쓰기도 편하다. 이 글을 쓰기 위해서 다시 한 번 제대로 써보게 되었는데 다중 시트나 정규표현식, (아직은 작동하지 않는 것 같지만) 스크립트 기능까지 있어서 기능상으로도 거의 엑셀을 대체할 수도 있을 정도로 보인다. 사실 PMA도 대량의 데이터 편집에는 알맞지 않기 때문에 수정에만 사용하고 입력은 엑셀이나 VIM에서 하고 있었기 때문이다. Control Center에서는 작동하지 않았던 Export도 제대로 동작하고 XP 이상의 엑셀 파일(XML 구조)로 내보낼 수도 있다. 뷰가 자유롭기 때문에 내장 함수 기능을 쓸 수 없다는 점만 제외하면 엑셀보다 나을 수도 있겠다. 기획자에게 데이터베이스 입장에서 생각하는 방법을 길러줄 수도 있지 않겠는가. :]

몇 가지 특이점:
  1. MySQL Control Center는 QT를 사용했는데 이 프로그램은 GTK를 사용한다.
  2. 라이센스가 GNU GPL이다.
  3. 번역만 제공되면 좋겠다.
  4. 디렉토리를 들여다보면 intl.dll을 비롯해서 눈에 익은 dll들이 즐비하다. gettext만 더 있으면 되겠군.
  5. 위에서 사용한 모든 스크린샷은 김프로 옮겨서 저장하거나 편집했다.
  6. 이상한 건 은돋움이 설치되어 있으면 기본적으로 이 폰트로 표시한다는 것이다. 하드 코딩 되어있나?
  7. 수정 블로그 만세! FCK 에디터 만세! 김프 만세!

December 25, 2004 09:13 PM

TrackBack URL: http://hailydaily.net/soojung/trackback.php?blogid=7
4 Comments
On March 15, 2005 09:46 PM, 백일몽 said:
저도 저 클라이언트를 팀 DBA 분께 권한 적이 있는데 한글 문제로 좌절했던 적이 있었는데
팀을 나온 지금은 어떻게 쓰실지 모르겠네요.
mysql 서버 십수대를 만져야 하는 관계로 정말 필요한 툴 중에 하나였는데요.
On September 24, 2005 08:19 AM, 디토 said:
문제는 mysql-query-browser가 자주 죽는군요. 아무런 오류 메시지도 없이 죽어버립니다. -_-;;
On September 24, 2005 04:36 PM, hey said:
흐흐 왜 그 모양일까요. 월급 받으면서 만드는 것일텐데.
On September 25, 2005 11:58 AM, ai said:
앗! 초일류마지션께서 디비관리를..;
Post a comment
Name:

Email Address:

URL:

Comments: