'개발의 기수'에 해당되는 글 9건

  1. 2007.08.10 2탄 개발자가 본 오라클 4 by 알 수 없는 사용자
  2. 2007.08.08 C/C++ 개발자가 없다구? 8 by 알 수 없는 사용자
사람이 담백하게 살려면 말을 줄여야하건만...
항상 뜻대로 살아지는 건 아니더라.
첫번째 글은 알티베이스 칭찬 일색이어서 외부인이 보기에 좀 느끼한 면이 없지 않았나 싶다.
오늘은 그 느끼함을 달래고자 좀 자극적인 양념으로 버무린 글을 한 번 써볼랜다.

2탄 개발자가 보는 오라클

- 1 -
모 국내 소프트웨어 개발 업체가 개발한 DBMS 제품 홍보물에서 이런 문구를 봤다.

'오라클보다 빠른 고성능을 보장하는...'

본인은 피식 웃었다.
뭘 근거로 더 빠르다는거지?
빠른 성능을 보인 질의문 한 두개를 가지고 더빠르다고 뻥치는거 아냐?

또는 신문기사에서 이런 문구도 자주 본다.

'골리앗에 정면 도전하는 다윗의 기세'

또 한번 피식 웃어준다.
그래...세상은 드라마틱한 승부를 좋아하지...
하지만 그 기자들은 진정 골리앗이라고 표현하는 거대 기업의
막강한 제품의 위력에 대해서 얼마나 알고 있는지 궁금하다.

강호동이 그랬다.
천하장사하기전에 매일 이만기 선배랑 씨름판 위에서 한판 붙는 꿈을 꾸었다고...
절대 강자라는 존재를 쓰려뜨리는 그런 꿈은 인생의 목표가 되었고
마침내 이만기를 쓰러뜨리면서 최고 강자가 되었다.
뜨거운 가슴을 가진 사람이라면
불끈불끈하는 뭔가를 분명 느낄거다.

하지만...
오라클은 시대가 간다고 해서 쉽게 1위자리를 내줄 그런 존재가 아니다.
뜨거운 가슴을 잠시 달래고
골리앗이라는 존재에 대해 냉철하게 한번 살펴보자.

컴퓨터 전공자라면 공룡 그림이 그려진 컴파일러 책을 누구나 한번 쯤 보았을 거다.
울만...
컴파일러계의 지존?쯤 되는 사람이 쓴 책이다.
뿐만 아니라 DBMS 개발자라면 가장 먼저 보아야할 필독서인
'Database System Implementation'의 공동 저자이기도 하다.
오라클 파서 소스를 어쩌다 본일이 있었는데...주석에 작성자 이름이 있었다.
울만이었다-_-
물론 지금도 그가 개발을 하고 있을지는 모르겠다.
파서라는 모듈은 쉽게 바뀌는 코드가 아니니...
어쨌든 솔직히 그때 주석에서 본 "by Jeffrey D. Ullman"은
오라클은 인정할 수 밖에 없는 절대강자이다라는 인식을 확실히 각인시켜준 문구였다.
MS는 또 어떤가...
DBMS의 지존이라 불리는 Jim Gray가 바로 MS에서 일하고 있다.
(폭풍우에 실종되었단 소문이 있던데...;;)
우리가 책에서나 봤던 그런 지존들이 바로 오라클이나 MS에서 우리와 비슷한 일을 하고 있다!
더우기 개발자 물량도 압도한다.
오라클은 개발자 수만 200명이라한다. 그것도 최고 수준으로...
음...갑자기 레벨업 없는 마린 30마리와 공방 3씩업된 마린 200마리가 붙는 장면이 떠오른다-_-;
개발자의 네임벨류나 그 수도 대단하지만
그보다 더 압도하는 힘은 20년을 넘게 쌓아온 노하우가 녹아 있다는 사실,
그리고 그 오랜 기간동안 만들어진 수많은 커뮤니티의 힘이다.
뭐 여기에 대해 더 굳이 설명 안해도 될 것 같다.

미국에 MMDB로 1등을 달렸던 TimesTen이란 제품이 있다.
그 회사 CEO에게 왜 디스크 기반 DBMS에 뛰어들지 않았냐니
돌아오는 대답이 "망할일 있습니까?" 였다고 한다.
오라클에 대적한다는 사실이 퍼지는 것만으로 주가가 폭락할 것이 틀림없다는 것이다.
그들은 오라클이 뻗치지 못한 곳을 새롭게 개척한 것이었고,
결국 오라클에 인수되었다.

우리의 여건을 돌아보자.
고작 30명도 안되는 인원으로 개발에 테스트에 매니징에 문서작업까지...
이런 여건으로 오라클에 대적한다?
디스크 DB 개발한지 이제 2년이 지났다.
거기다 우린 MMDB와 DiskDB 둘다 하지 않는가...

한국의 MMDB 시장에선 알티베이스는 독보적인 존재가 되었다.
한때 우리 경쟁 제품이었던 P 제품, A 제품도 결국 뿌리쳤고
미국의 T제품까지 대적이 안되었다.
우린 더 큰시장을 겨냥하기 위해 디스크를 선택했고
이젠 거대기업들이랑 생존 경쟁을 해야한다.
기업 입장에서는 분명 경쟁이겠지만,
개발자로서 본인은 오라클이나 DB2, MS-SQL Server, Sybase들을 경쟁상대로만 보진 않는다.
그들의 자료들을 보면서 공부할 수 있고 그들의 선경험을 손쉽게 답습할 수 있는
한수 배운다는 자세로 바라보고 있다는게 솔직한 심정이겠다.
뭐 그런 소심한 자세를 가졌냐고 그럴지 모르겠지만,
한국 소프트웨어 기술의 현실이 그렇다는 걸 인정해야 한다.
세상은 IT 강국이라고들 하지만 정작 IT 기술자들은 너나없이
핵심 기술은 아직 걸음마 수준이라는 사실을 인정할 것이다.
DiskDB는 이제 2살되었다.
그들이 경험했던, 하지만 기업에서 사용되지 못하고 사장되어버린 방대한 프로젝트들이며,
일부 박식한 DBA들만 알고 있는 저기 밑바닥에 숨어 있는 기능들,
1등이란 위치에 오른 자가 감당해야할 시행착오와 시장을 이끄는 힘을...우린 존중해야하고,
모방이라고 비난받을지언정 그들의 경험을 겸허한 자세로 습득해야 한다.

자, 이시점에서 앞서 맨 처음 본 문구를 다시 살펴 보자.
'오라클 보다 빠른 고성능...'
그 모업체에서 과연 오라클을 얼마나 분석했을지 감히 한번 의심해본다.
본인이 프로젝트에 앞서 Survey 작업으로 타 제품들의 버퍼 관리자를 분석해 본적이 있다.
과연 그들의 고민은 우리보다 한발 앞서 있었다.
DiskDB라면 통상 I/O를 유발하기 마련이다.
버퍼 관리자는 그 I/O를 최소화하기 위한 장치이다.
당연히 Buffer miss rate를 최소화하는데 초점을 맞출 것이라고 짐작해보겠지만,
놀랍게도 오라클은 그 단계를 넘어서 래치 경합을 최소화하도록 설계의 초점이 맞춰져 있었다.
이미 기업에서는 대용량의 메모리를 버퍼를 위해 할애하고 있으며
DiskDB라 할 지언정 메모리에서 동작하는 거나 다름없다는 가정에서 출발한 것이다.
결과적으로 MMDB만큼이나 래치 경합에 신경을 쓴 모습이 역력했다.
(물론 MMDB의 래치 수준은 DiskDB가 따라올 수 없는 영역이 있다.)
오라클 버퍼 관리자를 보고 느낀 점은 이론에 기반했다기보단,
순전히 오랜 노하우가 쌓인 경험적 산물이라는 느낌을 많이 받았다.
그걸 뒷받침해주는게 OWI의 막강한 기능이었다.
OWI 같은 기능없이는 성능에 대한 극대화를 추구할 수가 없다.
어떤 획기적인 알고리즘이 탄생되지 않는 이상,
다 고만고만한 알고리즘을 바탕으로 한 실제 환경에서는
다양한 성능 측정 도구로 쪼잔하리만큼 병목 현상을 쫓아다니며 제거해줄 수 밖에 없다.
그런면에서 이제막 DBMS 모습을 갖춘 제품들이 그 기능을, 그 성능을 따라잡았다고
쉽게 말할 순 없을 것이다.


- 2 -
심형래의 영화가 요새 장안의 화제이다.
영화보다 영화 외적인 말들로 들끓는...
우리가 언제나 가슴과 이성이 갈등을 일으키는 민감한 부위를,
정확히 관통하고 있는 영화이다.
애국심이라는 코드로 제품의 냉정한 평가에 보너스 작용을 받고 있다는 사실은
알티베이스와 공통된 입장이다.
하지만 그 한국꺼라는 단어와 함께 눈물로 호소하는 건 본인이봐도 눈꼴시럽더라.
우리것을 당당하게 알리고자하는 욕심은 누구나 있다.
하지만 그건 가슴에 담아둘 일이지, 그 욕심으로 포장 도배를 하고서는
그걸 마케팅에 이용하는 건 제품의 객관적 질보다 per(?)를 높이게 되어
장기적 관점으로 결국 역효과로 작용하지 않을까 상상해본다.
심형래의 기술과 추진력은 우리가 본받아야 한다.
하지만 그에겐 '겸허함'이 빠져있었고 '애국코드'로 무장하고 있었다.
보다 좋은 영화 만들기에 혼을 쏟지 못했고
'우리것이라는 자부심을 알리고 싶은 욕심'이 앞섰다고 평가하고 싶다.
바로 이부분이 우리가 가장 경계해야 할 부분이 아닐까?

자, 본인은 두 가지의 자극적 양념을 준비했다.
우리가 경쟁상대로 생각하고 있는 기업과 제품에 대한
냉철을 가장한 사실 어찌보면 좀 감정적이었던 시각.
그리고 우리가 경계해야 할 마음 가짐.

두 가지 양념으로 알티베이스에 대한 새로운 맛을 느꼈으면 한다.

Posted by 알 수 없는 사용자
필자는 개발본부 한귀퉁이에서 시원한 에어컨 바람쐬면서 시간 죽이기를 하고 있는 한명의 개발자라는 것만 밝힌다.(더 이상은 알려고 하지 마셔~~~ ㅋ)
원래 글쓰는 것에 소질이 무쟈게 없는 관계로 계속 피해다니다가, 알티지기님의 범접하지 못할 포스에 눌려서,,, 이렇게... ㅡㅡ
근데, 마땅히 쓸게 없어서, 걍 요새 보이는 개발자의 모습과, 예전에 동기, 후배들과 썰 풀던 얘기나 정리해 보려고 한다. 개인적인 생각을 혼자 떠드는 내용이다 보니, 말이 좀 짧다. (근데, 존대말로 쓰면 더 우스운거 같아서, 걍 냅두기로 했다.)

요즘 회사 내에서 개발자를 충원하려고 노력을 하는 모습이 많이들 보인다.
그런데, 좀 지지부진하네... 쩝~~~
그러면서 자주 회자되는 내용중에 하나가 요새 지원하는 사람들은 대부분이 Java만 써봤다는 거다. 흠,, 확실히 대세가 Java인가? 울 알티베이스는 C/C++로 만들어져 있는데....

어쨋든, 그래서 필자의 주변 네트워크를 동원하여 간단한 설문조사...
(걍 후배들 술 사주면서, 물어본거지만.. ^^;;)
C/C++이 어럽단다. 머,, 이렇게 따져야 되는 것도 많고, 알아야 하는 것도 많고,
머 하나 해 보려고 해도, 이거저거 해줘야 하는 것도 많고, 간단하게 눈에 보이는 거 하나 만들기도 쉽지 않댄다.

근데, 그 녀석들의 공통점이 있다. 다들 나보다 영어는 기똥차게 잘 한다. 필자 영어에는 젬병이다. 사실 난 영어가 훨씬 어렵다. 거기에 비하면 프로그래밍 언어는 무자게 단순하다.
혹시 그런 생각들을 해 본적이 있는지 모르겠다. 사람들이 일상적으로 사용하는 언어가 프로그래밍 언어보다 훨씬 어렵다는,, 단적으로 프로그래밍 언어로 만들어진 것은 사람의 언어로 의사소통이 가능하게 통역(?)이 가능하지만, 그 반대의 경우는 정말정말 어렵다. 인간이 만물의 영장(?)인 관계로 엄청나게 어렵고 복잡한 언어로 서로 의사소통을 하지만, 컴퓨터는 그 단순하디 단순한 프로그래밍 언어를 사용해서 정해진 얘기밖에 할수가 없는 건데..

그래서, 나름 결론을 내렸다. 우리가 플밍언어를 어렵다고 하는 생각하는 것은 우리 생각이 너무 복잡해서 그런 게 아닌가? 라는.. 컴이라는 것은 기본적으로 무지하게 바보라(터미네이터의 스카이넷이나 매트릭스 같은 게 아닌 이상) 정말로 단순한 일 밖에 모르는데, 우리의 자유로운 상상세계를 그 단순한 언어로 표현하려니 그게 얼마나 어렵고 빡쎄겠어..

영어 공부를 하다 보면 언제나 나오는 말이 있다. 영어랑 친해져라,, 내지는 영어식 사고를 하라.. 이 말을 바꿔서 표현해보면 이런 얘기도 가능하지 않을까 싶다. 프로그래밍 언어를 배우려면, 컴퓨터식 사고를 하라. 이게 안 되니까 프로그래밍 언어가 어려운게 아닐까?
예전에 석사과정 시절에 울 지도교수님 왈, 전산인은 "Thinking Binary" 란다.

음,, 어쩌다 C/C++ 얘기로 시작했다가 프로그래밍 언어로 빠져버렸을까? ㅡㅡ
암튼 프로그래밍 언어 자체는 암것도 아닌데, 솔직히 말하면 그 언어를 가지고 뭔가를 하려고 하는게 어려운 거지? 앞서도 말한 것처럼, 인간의 이 심오한 정신세계를 그 단순하디 단순한 Binary로 표현할라니깐... 고차원 정신세계를 저차원의 바이너리로 매핑하는게 힘든거지.

선형 시스템이란 분야를 보면, 단순한 3차원의 매트릭스를 2차원으로 1차원 다운시키는 데만 해도, 엄청안 양의 연산식과 과정이 필요한데, 사람의 사고와 바이너리 사이의 간격이란... 에휴...

기본적으로 돌아가서, 언어가 뭔지를 생각해 보자.
컴하고 대화를 하던, 컴한데 일만 시키던, 컴하고 놀던, 씨름을 하던, 죽을 쑤어 먹던, 멀 하던 간에 언어라는 것은 컴하고 나하고의 교감을 위한 수단 밖에는 되지 않으니깐.. (쩝~~ 누구나 다 아는 얘기를 이렇게 뻔뻔하게,, 헐,, 나이를 먹어갈수록 뻔뻔함만... ㅋ)

첨 말 배우는 2~3살 아이들을 생각해 보면 좀 이해가 되려나? 표현력도 없고, 발음도 부정확하고.. 그래두, 계속 말을 하려고 하다 보니깐, 점점 어휘도 늘고, 발음도 좋아지고, 표현력도 늘고, 머 그런 것 처럼...

C로 첨에
void main()
{
}
만 해도 이게 어디냐? 이것도 프로그램인데..
컴파일도 되고, 실행화일도 만들어지고, 실행시키면 실행도 되고...
(머,, 하는 일이야 암것도 없긴 하지만..)
이런것부터 계속 하다보면, 문법도 늘어가고, 표현력도 좋아지고, 그러다가 알고리즘도 생각하게 되고, 머 그런거지..

머,, 이렇게 떠든 필자 본인도, 그렇게 뛰어난 프로그래머는 아니지만, 혹시라도 프로그래머의 길을 꿈꾸고 있는데, 그게 너무 어렵다고 생각하는 사람들이 있다면, 한번씩 생각을 정리해 보는 것이 어떨까 해서....

근데, 도대체 지금까지 내가 한 얘기가 도대체 먼 소리래?
(난 항상 마무리가 안 되는 이게 문제라니깐... ㅡㅡ)
Posted by 알 수 없는 사용자