2008. 2. 25. 02:32
사랑하지 않으면 떠나라! - 10점
차드 파울러 지음, 송우일 옮김/인사이트


누군가의 블로그에서 알게 된 이 책을 읽으면서, 참 여러가지 생각이 들었던 것 같다. 나 자신 IT업계에 지난 수년간 몸담으면서, 이 책이 끊임없이 나에게 해오는 질문들에 대해서 제대로 대답하지 못하는 나를 뼈저리게 느꼈기 때문이었다.

이 책의 원제는 "My Job Went to India!"이다. OffShore 정책에 따라 많은 미국의 IT R&D Lab이 인도로 옮겨가게 되면서, 미국의 많은 개발자들은 실직의 두려움과 공포가 느꼈을 것이다. 그런 격변하는 상황 속에서 어떻게 자기 계발을 통해서 자신의 일자리 아니 자신의 자존심을 지킬 수 있는지가 저자인 차드 파울러가 이 책을 쓴 동기라고 말할 수 있겠다. 여담이지만, 나도 이 책에서 언급하고 있는 인도 방갈로르에 동료들이 있다. 그 친구들이 영어를 얼마나 잘하는지, 일은 또 얼마나 잘 하는지 나는 사실 잘 아는 편이다.

하지만 이 책은 일자리를 뺏기고 지키고 이런 것이 중요하지 않다고 말한다. 즉, 일자리가 중요한 것이 아니라, 자신의 일에서 얼마나 즐거움을 느끼는가 그리고 얼마나 잘 하기 위해서 노력하고 있는가 이런 것에 중요하다고 말한다.

"일자리를 지키는 것이 여러분의 유일한 목적이라면 이 책은 별로 도움이 되지 않을지도 모릅니다. 대신 자신의 분야에서 탁월한 무언가가 되기 위해 노력한다면 이 책을 계속 읽어나가시기 바랍니다"
- 저자 서문에서

그런 의미에서 이 책은 무언가를 알려주는 책이 아니다. 거꾸로 이 책은 독자에게 계속해서 질문을 던진다. 당신은 진정한 전문가입니까? 당신은 유능한 프로그래머입니까? 당신은 다른 사람들에게 도움을 줄 수 있을만큼 지식을 갖추고 있습니까? 등등..

부끄러운 말이지만, 나는 거의 제대로 대답하지 못했다. 책을 읽는 내내 얼굴이 화끈거렸고, 후회가 들었다. 나는 정말 훌륭한 개발자도 아니었고, 다른 사람들에게 도움을 줄 수 있는 좋은 사람도 아니었고, 정말 진정한 개발자가 아니었던 것이다. 개발자인척 폼만 잡고 있었던 것이다.

나는 이 책을 읽고, 앞으로 아래 세 가지 방향으로 나를 발전시켜 나가기로 했다. 이 책을 몇 년 뒤에 다시 들었을 때, 이 책이 던지는 질문들에 대해서 자신있게 대답할 수 있도록 말이다.



넓고도 또한 깊어지자.

넓게 공부를 해야 한다. 현재 나는 MS 닷넷 기반 개발을 주로 하고 있지만, 자바나 루비같은 다른 최신의 기술들도 공부해야 한다. 개발자이지만, IT Staff들이 많이 사용하는 셸 스크립트나 Perl같은 것들도 공부해야 한다. 지식의 폭이 넓어질 수록, 내가 현재 사용하는 기술에 대해서 더욱 잘 이해를 할 수가 있다.

그리고 넓으면서 동시에 깊어야 한다. 여러 가지 공부를 한다고 해서 맛만 보는 수준은 되지 말아야 겠다. 흔히들 넓으면 깊지 못하고 깊으면 넓지 못하다고 말하지만, 내가 보는 한 그 말은 틀렸다. 넓어야 깊을 수 있고 깊어야 넓을 수 있을 것이다. 즉, 다른 기술들에 대한 넓은 이해를 바탕으로 해야, 현재 내가 주로 사용하는 기술에 대해서 깊게 이해를 할 수 있을 것이다. 또 반대로 내가 주로 사용하는 기술들에 대해서 깊게 이해를 하고 있다면, 넓게 공부하는 것이 좀 더 쉬워질 것이다.

"유능한 사람은 다양성을 찾는다. 그런 사람들은 새로운 것을 배우기 좋아하기 때문이다. 또한 이질적인 경험이나 환경을 통해 더 성숙하고 다재다능한 소프트웨어 개발자가 되기 때문이다"
- 04. 지성에 투자하라 중에서



남을 도우면서, 나 자신 또한 도와주자.

나는 그동안 혼자서 개발만 하는 사람은 아니었다. SI업체에 있을 때에는 주로 개발 표준이나 코드 리뷰 등의 업무를 많이 맡았기 때문에, 각종 프로젝트에서 그래도 가장 다른 개발자들과 접촉이 잦았던 개발자 중의 하나였다. 그것은 그다지 쉬운 일은 아니었다. 사실 가장 편한 일은 자기 것만 하는 것이다. 하지만, 나는 그런 경험들을 통해서 정말 많이 배울 수가 있었다. 다른 개발자들의 질문에 대답해주면서, 나 자신 관련 기술들에 대한 이해를 좀 더 깊게 할 수가 있었다. 결국 남을 돕는 것은 나 자신을 돕는 것이었다. 현재는 그런 공통적인 일을 하는 팀이 아니라 혼자서 할 수 있는 일을 하고 있지만, 계속해서 내가 먼저 다가가서 다른 개발자들의 문제를 같이 고민해주고 같이 해결해주고 싶다. 그리고 그 모든 것들은 나에게 다시 돌아올 것이다. 더 크게..

"무엇인가를 정말 배우고 싶다면 그것을 다른 누군가에게 가르쳐 보라. 어떤 것에 대한 이해를 구체화하는데 가장 좋은 방법은 다른 사람들이 이해할 수 있도록 그것을 표현하는 것이다. 말을 한다는 것은 단순한 행동이지만 불분명한 사고를 다루는 데는 특효약이다."
- 13. 멘토가 되라 중에서

진정한 신뢰받는 전문가가 되자.


나는 사실 전문가여만 한다. 고객이나 PM 등이 나에게 프로그램에 대한 질문을 할 때에는 기본적으로 이 사람에게 물어보는 순간 모든 고민이 해결될 거라는 생각을 갖고 하게 될 것이다. 하지만 내가 그런 질문들에 잘 응대를 했던가 하는 반성을 하게 되었다.

일단, 관련된 기술 전체에 대해서 폭넓게 이해를 해야겠다. 닷넷 개발자이지만, 윈도우 서버에서 어떻게 우리의 서버 응용 프로그램들이 동작하는 지 알려면 서버나 네트워크에 대해서 알아야 한다. 오피스 애드인 프로그램에 문제가 있다면, 오피스의 동작원리나 애드인을 어떻게 처리하는 지에 대해서도 알아야 한다. 우리 제품 그 자체뿐 아니라 제품이 동작하는 환경 전체에 대해서 전문가가 되어야 한다.

그리고, 우리 제품의 가장 밑바닥에 있는 비즈니스 로직에 대해서도 알아야겠다. 내가 현재 개발하고 유지보수를 하는 제품은 기업 회계 소프트웨어이다. 하지만 솔직히 말하자면 나는 기업의 회계나 재무 분석에 대해서는 현재 백치나 마찬가지이다. 진정으로 전문가가 되기 위해서 나는 당장 회계 기초 책을 사서 공부할 생각이다. 그러지 않고서는 나는 내가 만든 소프트웨어로부터도 소외를 당하는 것이다.

"그렇다면 소프트웨어 분야에서 전문가는 어떤 사람이어야 할까? 어떤 상황이 닥치더라도 80%정도는 '그거요, 해봤습니다.' 라고 말할 수 있고 나머지 20%의 상황에서는 기존 지식의 깊이를 사용해 문제를 처리할 수 있는 사람을 원했다. 상위 수준 추상화를 다루면서 그러한 추상화 구현의 세세한 부분을 이해할 수 있는 사람을 원했다. 앞으로 부딪힐 수 있는 문제를 풀 수 있다거나 풀지 못한다면 최소한 도움을 요청할 만한 사람을 아는 사람이 필요했다."
- 06. 진정한 전문가가 되라 중에서



이상, 내가 앞으로 나의 계발을 위해서 할 것들을 정리해보았다. 다 정리해보니 사실 눈앞이 캄캄하다. 앞으로 놀기는 글렀다.^^ 하지만, 이제 더 이상 후회하지 않기 위해서, 더 이상 내 직업에 부끄럽지 않기 위해서 오늘부터 노력할 것이다. 아니 지금 당장부터 노력을 할 것이다. 매일 아주 바쁘겠지만, 기분이 좋다. 상쾌하다. 앞으로의 나의 진로와 미래가 기대된다. 두근두근거릴 정도로...


마이크로소프트 Hero 블로그
Posted by kkongchi
기타2008. 2. 24. 20:42
그간 개인 위키를 하나 만들어야 겠다는 생각을 하다가.. 오늘 실행에 옮겨버렸다.

Cafe24 호스팅 서비스에 호스팅을 신청하고, MediaWiki를 다운받아서 설치하는 간단한 작업이었지만, 몇 가지 문제가 있었다.

1. Cafe24 리눅스 호스팅은 PHP5를 지원하지 않는다.

그래서, MediaWiki 최신 버전은 포기할 수 밖에 없었다. Cafe24 호스팅에 설치가 가능한 Media Wiki 최고 버전은 1.6 버전이다. (참고로 Media Wiki의 현재 최신 버전은 1.11이다.) 그러니 Media Wiki 다운로드 페이지에서 1.6.10 버전을 다운로드해야 한다.

사용자 삽입 이미지


2. Cafe24 Hosting 서비스 신청 시에 데이터베이스를 UTF-8로 세팅했다면, DB 테이블 생성 과정에서 아래와 같은 에러가 나게 된다.

"Specified key was too long; max key length is 1000 bytes"

이 에러는 MySQL 개발 측에서도 버그로 인지하고 있는 부분이기도 하다. 아래 링크를 보면, 꽤 오래된 이슈라는 것을 알 수 있다.

 http://bugs.mysql.com/bug.php?id=4541


이 에러를 해결하기 위해서는 소스를 조금 수정을 해야 한다. 수정해야 할 소스는 다운받은 MediaWiki소스 중에 Maintenance 폴더에 있는 tables.sql파일이다. 총 3군데를 고쳐야 한다.

Line 424
기존: cl_to varchar(255) binary NOT NULL default '',
수정: cl_to varchar(200) binary NOT NULL default '',

Line 915
기존: job_cmd varchar(255) NOT NULL default '',
수정: job_cmd varchar(100) NOT NULL default '',

Line 920
기존:  job_title varchar(255) binary NOT NULL,
수정:  job_title varchar(100) binary NOT NULL,

이렇게 수정해줘야 하는 이유는, MySQL에는 Index 칼럼에 1000byte제한이 있기 때문이다. 255면 1000이 안 되지 않느냐고 말할 수도 있겠지만, UTF-8에서는 한 자당 3byte를 소모하기 때문에, 여러개의 칼럼이 인덱스를 구성하는 위 쿼리들에서는 1000byte를 초과하게 되는 것이다. 그래서 Line 424의 쿼리에서는 200으로 수정해주면 되고, Line 915와 920의 경우 저 두 칼럼이 한 인덱스를 구성하기 때문에 100에서 150정도로 수정해줘야 하는 것이다.

위 과정을 통해서, Cafe24 호스팅에 성공적으로 Media Wiki 설치를 완료했다. 개인 위키이긴 하지만, 사적인 내용은 없고 개인적으로 공부하는 것들을 좀 정리하고자 만든 위키이니 다른 분들의 방문도 환영한다. ^^

URL은 http://kkongchi1027.cafe24.com

사용자 삽입 이미지

Posted by kkongchi