메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

IT/모바일

『MySQL 시스템 관리와 프로그래밍: 자바, PHP, 펄, C, 파이썬, 개정판』의 역자 서환수님이 말하는 MySQL

한빛미디어

|

2002-10-22

|

by HANBIT

12,121

저자: 『MySQL 시스템 관리와 프로그래밍: 자바, PHP, 펄, C, 파이썬, 개정판』의 역자 서환수

MySQL과의 첫만남

필자가 처음 MySQL을 접한 것은 확실하게 기억나는 것은 아니지만 대략 1998년쯤이었던 것 같다. 1997년쯤부터 리눅스 공동체가 본격적으로 모양을 갖추기 시작했는데, 그 때쯤부터 인터넷을 통해 여러 가지 신기한(?) 것들이 속속들이 등장하기 시작했다. 그 중 필자의 관심을 가장 많이 끈 분야는 CGI였다. 정적인 HTML 파일을 통해 정보를 제공하는 것에서 한 차원 올라선 CGI는 필요한 내용을 즉석에서 HTML로 구성해서 화면에 뿌려주는 정말 신기한 물건이었다. CGI에 관심을 갖다 보니 당연히 펄에 대해서도 관심을 가지게 되고, 그 당시에는 비교적 최신 기술이었던 PHP에도 상당히 관심을 기울였던 기억이 난다.

아무래도 PHP를 배우다 보니 PHP에서 상당한 부분을 차지하는 데이터베이스 관련 기능도 함께 공부를 하게 되었다. 그 시절 필자는 군복무 중이었는데, 다행히도 비교적 좋은 환경에 있어서 인터넷을 자유롭게 쓸 수 있었다. 그리고 텔넷으로 원격 접속을 해야 하긴 했지만 거의 마음대로 쓸 수 있는 리눅스 서버가 있어서 이것저것 해 보고 싶은 일을 많이 할 수 있었다. 입대하기 전에 몸담고 있던 음악 감상실에서는 수천장의 LP 레코드와 수백장의 CD를 관리하고 있었다. 그 음악 감상실에서는 음반 데이터베이스를 폭스프로로 관리하다가 MS 액세스로 바꿔서 관리하고 있었는데… "그 데이터베이스를 관계형 데이터베이스로 옮겨서 관리하고 웹을 통해서 액세스할 수 있도록 하면 좋지 않을까…"하는 생각이 들었다.

그 때 머리에 떠오른 것이 바로 리눅스에 아파치 웹 서버와 PHP를 깔고 MySQL에 데이터베이스를 얹어서 데이터를 제공하는 것이었다. 웹 서버야 당연히 아파치 만한 것이 없었고, CGI 스크립트로는 펄과 PHP 가운데 하나를 선택해야 했는데, PHP가 워낙 쓰기가 편하기 때문에 PHP를 쓰기로 했다. 그리고 데이터베이스 서버로는 무료 서버인 PostgreSQL과 MySQL 중 하나를 선택해야 했는데, 486 정도의 컴퓨터에서도 돌릴 수 있어야 했고, 그리 다양한 기능이 필요하지도 않았기 때문에 가볍고 빠른 MySQL을 선택했다.

하지만 요즘 APM이라고 부르는 Apache+PHP+MySQL 시스템(외국에서는 APM이라는 표현은 잘 안 쓰고 LAMP - Linux+Apache+MySQL+(Perl 또는 PHP) - 라고 부른다.)이 널리 쓰이는 시절은 아니었기 때문에 마땅히 필요한 정보를 얻을 곳이 없었다. 결국 그 시절 내가 구할 수 있는 정보는 대부분 웹에서, 그것도 주로 PHP 공식 홈페이지와 MySQL 공식 홈페이지에서 제공되는 공식 문서뿐이었다. 다행히도 MySQL과 PHP에서 제공하는 공식 문서가 워낙 잘 되어 있기 때문에 조금 시간이 걸려서 그렇지 필요한 내용을 꼼꼼하게 공부하는 데에는 전혀 문제가 없었다.

데이터를 데이터베이스로 옮길 때에는 액세스에서 dBase 형식으로 데이터를 저장한 다음 그 데이터를 SQL 구문으로 옮겨주는 프로그램을 사용해 SQL로 바꾼 다음에, 그 SQL을 MySQL에서 읽어서 꽤 짧은 시간 안에 데이터를 모두 옮길 수 있었던 것으로 기억한다. SQL을 텍스트로 저장했을 때 그 파일의 크기가 대략 5메가바이트 정도였으니 뭐 그리 큰 데이터베이스라고 할 수는 없겠지만 그렇다고 해서 그리 작은 것도 아니었다. 하지만 꽤 저사양의 컴퓨터에서도 전혀 무리 없이 돌아가는 걸 보고 MySQL과 아파치 서버의 위력을 실감했다.

우여곡절 끝에 구축한 시스템에서 웹을 통해 만족할만한 결과를 얻었을 때 정말 뿌듯했던 기억이 난다. 그 기분은 어렸을적 몇 일 동안 본드 냄새 맡아 가면서 복잡한 프라모델을 완성했을 때 느꼈던 기분과 비슷했던 것 같다. 지금이야 뭐… 그냥 그런 일이 있어도 그렇게 뿌듯해하거나 기뻐하지는 않지만, 그 때는 첫 경험이어서 그랬는지 정말 기분이 좋았다. 일반적인 애플리케이션이 아니라 웹을 통해서 그렇게 뭔가를 실행시키고 그 결과를 볼 수 있다는 사실이 마냥 신기했다.

안타깝게도 여러 가지 주변 여건 때문에 그 당시에 후배 하나를 붙잡고 진행하던 프로젝트는 프로토타입만 만들어 놓은 상태에서 흐지부지 끝나고 말았고, 아직도 그 음반 데이터베이스 검색기는 필자의 디렉토리 어딘가에 링크도 되지 않은 채로 구석에 웅크리고 있을 뿐이다. 얼마 전 이 책의 번역이 끝날 무렵에 다시 그 코드를 찾아 보니 정말 길이도 짧고, 지저분한 스파게티 코드인데다가 유치하기 짝이 없는 것을 보고는 나 자신에 대해 실망을 많이 했지만, 경험이 부족한 데다가 어디서 마땅히 배울 데도 없었으니 그 정도면 잘 한 거라고 스스로를 위로할 수 밖에 없었다.


MySQL 시스템 관리와 프로그래밍: 자바, PHP, 펄, C, 파이썬, 개정판

참고 도서

MySQL 시스템 관리와 프로그래밍: 자바, PHP, 펄, C, 파이썬, 개정판
조지 리스, 랜디 제이 야거, 팀 킹, 휴 윌리엄스




『MySQL 시스템 관리와 프로그래밍: 자바, PHP, 펄, C, 파이썬』은 어떤 책인가?

이번에 번역한 책은 『MySQL 시스템 관리와 프로그래밍: 자바, PHP, 펄, C, 파이썬』이라는 조금 긴 제목의 책이다. 원제목은 『Managing & Using MySQL, 2nd Edition』이지만, 책의 내용을 조금이라도 더 잘 설명할 수 있는 제목을 짓다 보니 이런 긴 이름이 붙게 되었다. 이 책을 번역하면서 가장 크게 느낀 점은 내가 처음 MySQL을 공부하던 시절에 이런 책이 있었다면 얼마나 좋았을까 하는 것이었다. 이 책에서 MySQL을 아주 자세하게 다루는 것은 아니지만, 전반적으로 알아두면 좋을 만한 내용을 두루 소개하고 있기 때문이다.
Managing & Using MySQL, 2nd Edition


이 책의 번역을 처음 맡았을 때 1판에 대한 평을 보고는 사실 조금 겁이 났다. 1판인 『MySQL & mSQL』에 대한 평이 그다지 좋지 않았기 때문이다. 개정판을 봤을 때는 전반적으로 괜찮다고 느꼈기 때문에 사실 1판의 내용이 어떨지 조금 궁금하기도 했다. 실제로 1판을 나중에 참고용으로 받아서 봤을 때, 그 의문은 금세 풀렸다. 제목과 목차만 봐도 쉽게 알 수 있겠지만, 1판은 MySQL과 mSQL을 거의 같은 비중으로 다루고 있었다. mSQL은 이미 한 물 간 데이터베이스였고, 그렇다 보니 책의 가치가 많이 떨어질 수 밖에... 그리고 너무 많은 것을 무리하게 담으려고 하다 보니 조금 산만한 느낌도 들었다.

하지만 개정판은 1판과 전혀 다르다. mSQL에 대한 내용은 모두 없애고 MySQL에 대한 내용만으로 책을 완전히 새롭게 구성했기 때문이다. 이 책은 크게 네 부분으로 나뉘어 있다. 1부MySQL 소개 부분으로 MySQL에 대한 개괄적인 내용, 설치 방법, MySQL과 관련된 SQL 설명, 데이터베이스 관리 방법 등이 수록되어 있다. 2부MySQL 관리를 다루는 부분으로 튜닝 방법, 보안, 데이터베이스 설계 방법을 소개하고 있다. 3부MySQL 프로그래밍에 관한 부분으로 데이터베이스 애플리케이션 개론으로 시작하여 펄, 파이썬, PHP, C, 자바로 MySQL 애플리케이션을 개발하는 방법을 소개하고 마지막으로 MySQL의 사용자 정의 함수에 관한 내용을 자세하게 다룬다. 4부는 MySQL을 사용할 때 자주 참고하게 될만한 레퍼런스 부분이다.

이 책을 읽는 데 좋은 방법을 추천하라면 일단 한 번 전체적인 내용을 모두 읽어보고 나서 필요한 부분은 다시 읽어보고, 또 다른 자료를 찾아서 공부를 해 보라고 하고 싶다. 그냥 목차만 보고 "대강 아는 내용이군…" 하고 넘어가면 중요한 내용을 놓치기 쉽다. MySQL에 관한 것은 인터넷을 뒤지면 대충 다 구할 수 있긴 하지만, 그렇다고 해서 이런 책이 필요 없는 것은 아니다. 인터넷에 널려 있는 정보의 옥석을 가리기가 워낙 힘들기 때문이다. 그렇기 때문에 특히 이런 책을 한 권 읽어 보고 난 후, 인터넷을 뒤져서 필요한 정보를 얻는 것이 효율적이라는 생각이 든다.

필자도 이 책을 번역하고 나서 전에는 별 관심을 두지 않았던 백업/보안/성능 튜닝과 같은 데이터베이스 서버 관리와 관련된 문제의 중요성을 실감할 수 있었다. 그리고 7장, 데이터베이스 설계 부분에서는 이제까지 주먹구구식으로 데이터베이스를 만들었다는 것을 깨닫게 되었다. 확실한 이해를 위해서는 다른 자료를 더 찾아봐야 하겠지만, 일단 이 책을 읽고 나면 무엇을 모르고 있었는지, 어떤 것을 더 배워야 할지를 알 수 있게 될 거라고 생각한다.

이 책이 많은 MySQL 사용자들에게 도움이 되기를 기원하며…

2002년 10월 22일 역자 서환수
TAG :
댓글 입력
자료실

최근 본 상품0