[개발에세이] 4세대 인메모리 DB 개발 회고 #1

개발에세이 #01

2007년 10월 29일 월요일

입사 후 가장 먼저 한 것은 MFC 공부였다. 물론 대학교 때 C, C++을 해보았지만 실무레벨의 코드는 처음 보는 것이였다. 자바 네트웤 전공자로 졸업한 내게 MFC는 대화상자 만들때나 써보았던… 그냥 딱 그정도였다.

그 유명한 눈깔책 (VisualC++ 6.0 완벽가이드)을 사서 보기 시작했다. (물론 출근하기 전에 한번은 훓어보고 갔지만) 머 딱히 어려운건 없었다. 기본적인 내용과 정말 그냥 샘플 뿐이었다.

그래서 주변에 볼만한 책을 물어보기 시작했다.

“윈도우 프로그래머를 위한 MFC 구조와 원리”, “CoF의 디자인 패턴”, “생각하는 프로그래밍”, “Effective C++”, …

하나씩 사서 보기 시작했다 ^^ 그 당시엔 퇴근이 다들 늦었고 일주일 뒤에 일을 받기로 한 나는 하루에 한권씩 파보기 시작했다. 그리고 선배님들께 물어보며 해당 패턴, 방식이 적용되어 있는 우리 소스를 분석하며 ^^

암튼 저 4권의 책은 분명 첫주에 다 보았다. 패턴이야 자바로 이미 많이 공부하고 구현해봤고, 생각하는 프로그래밍도 딱히 언어 제약이 있는 건 아니었으니…

그렇게 일주일 후 월요일 처음으로 스펙이란걸 받아보았다. 그당시 개발하던 제품이 정해석 관련까지 개발이 되어 있었고, 나는 동해석 관련 기능을 개발하는 것이었다.

Time dependent 시리즈~ (tdnf, tdnd, tdnv, tdna) 아는 사람만 아는 !ㅎㅎ! 그 당시 대화상자 개발이라고 하면 대충 이런 플로우를 거친다.

  1. struct & class design (include file i/o)
  2. dialog (modal & modeless)
  3. workstree
  4. label
  5. menu
  6. property window
  7. analysis case
  8. sub case
  9. save & open, previous file open check
  10. solver interface
  11. post processing (contour, …)
  12. post result option
  13. VBA Automation
  14. bug
  15. while (true) { ; }

이거 하나하나 설명하려면 밤 새야한다 ㅋ 뭐, 그렇게 어렵지 않게 개발했다.솔직히 하나(힘) 하고 나면 나머지 변위, 속도, 가속도는 거의 복사해서 구조체 처리만 바꿔도 되는 수준이었다. (말이 그렇다는 것이지 쉽진 않은 ㅎㅎㅎ)

이렇게 첫번째 프로젝트를 성공(?)적으로 마쳤다. 주변에서 어찌 이렇게 빨리 개발한 것도 신기한데, 버그도 적다는 칭찬이 정말 있었다. (이때부터 시작이다. 일이 조금씩 몰리기 시작한…(>))

이 한 싸이클을 돌아보니 내 눈에 들어오는건 DB였다. 이 모든게 DB를 기준으로 돌아가고 있었고 모든건 DB의 옵져버들이었다. 그래서 시작되었다. 3세대 인메모리 DB를 내것으로 만들어야겠다!

주변에 또 물어보기 시작하였다. 이거 누가 만들었냐고? 모두가 한 사람을 지목했다 (당연한가?)

“선종복 팀장님” (현재 기술연구소 연구소장님 & 이사님) — 밑으론 선이사님”으로 통일

정말 존경하는 분!!! 아마 선이사님의 성격이 괴팍(?)했다면 나는 4세대 인메모리 DB를 만들지 못했을거다! 확실하다! 하루에 최소한 1번, 많을 땐 선이사님 옆에 붙어 살면서 물어보았다. 여긴 왜 이렇게? 이곳엔 어떤 의도가?

정말 친절하게 단 하나도 남김없이 알려주셨다. ^^ (아마 이때부터 나도 교육을 좋아하기 시작했을지도) 진짜 갓 입사한 사원에게 연구소에서 가장 개발 잘하시는 분의 시간을 그리 뺏을 수 있다는..

너무 감동이고 행복이고 그랬었다. 그렇게 시간이 얼마 흘러 아무것도 보지 않고 3세대 DB구조 코드를 작성할 수 있게 되었다. 그리고 이 순간 고민하기 시작되었다. 이거 좀 더 다르게 바꾸면 훨씬 괜찮겠다”라는

그렇게 시간이 흘러 우리는 판교로 사옥을 옮기게 되었다. (그전에는 성남시 중원구 상대원동…) 이때 내가 담당하던 제품을 맨땅에서 완전 새롭게 탈바꿈하는 기회를 얻게 되었다. 그래서 제안했다~ 지금부터 새롭게 만들어지는 엔진… DB부터 바꾸고 싶다고 ^^

그렇게 시작되었다. 4세대 인메모리 DB개발…with 선이사님, Frovi

방향은 내가 잡았고, Frovi가 프로토타입을 개발하였고, 그걸 내가 우리 프로젝트에 맞게 뜯어 고치고, 선이사님과 합동해서 첫번째 제품을 만들어내었다. (아 물론 다른 개발자들도 함께~)

그렇게 나는 인메모리 DB개발 경험을 가지게 되었다. 그리고 그 뒤로 한번 크게 리팩토링을 하였고, 2010년 이후로 개발된 모든 cae 제품의 기반이 되었다.

선이사님, 항상 감사했습니다.

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

앞으로 제가 10년간 일하면서 함께 했던 분들과의 이야기를 공유하려 합니다. ^^ 그리고 곧, 기존과는 다른 컨셉으로 인메모리 DB를 오픈소스로 시작하려 합니다.

감사합니다.