공학적 아름다움에 빠진 큐브리드 개발자 ‘오이석 아키텍트’

가 +
가 -

7월26일, 서울 마포구 합정동에서 경기도 성남시 분당구 서현역 근처로 인터뷰 하러 가는 날씨는 그 어느 때보다도 험상궂었다. 맑은 하늘이 갑자기 시커멓게 변하더니 폭풍처럼 비가 쏟아지기 시작했다. 우여곡절 끝에 탄 버스는 갑자기 쏟아진 비로 인해 거북이 걸음이었다. 이미 약속한 인터뷰 시간은 훨씬 지난 상황에서 갈등됐다.

‘인터뷰를 미룰까? 말까? 미룰까? 말까?’ 머릿속으로 온갖 상황이 떠다닐 무렵 갑자기 막힌 길이 뚫렸고 버스가 달리기 시작했다. 이후 순식간에 인터뷰 장소에 도착했다. 기자는 그곳에서 공학적 아름다음에 흠뻑 취해 사는 남자, 오이석 NHN 서비스플랫폼개발센터 아키텍트(사진)를 만났다. 그는 오픈소스 DBMS인 큐브리드를 개발하고 있는 핵심 엔지니어 중 한명이다.

2008 4.0 무엇이 변했나?

이달 초 큐브리드 2008 4.0이 출시됐다. 2008년 10월 출시된 2008 버전의 네번째 버전이지만 성능 개선이나 저장소 변경 등 대규모 메이저 업그레이드에 버급갈 정도의 변화가 있었다. 현재 리눅스 버전과 마이크로소프트 윈도우 버전을 지원하며 일부 유닉스 머신에서도 활용할 수 있도록 지원하고 있다.

큐브리드 4.0의 기능 개선 사항들은 삽입(INSERT)과 삭제(DELETE) 성능 향상, 윈도우 버전 성능 향상, 데이터베이스 볼륨 사용량 감소, 다양한 SQL 함수와 구문 추가, 질의 처리 성능 향상을 위한 다양한 인덱스 활용 최적화 추가, 고가용성(HA) 기능 안정성과 편의성 증대, 인터페이스 기능/성능 개선, 기타 오류 수정과 기능 개선, 2008 R4.0 Beta 버전 이후 발견된 오류 수정과 기능 개선 등이다.

큐브리드는 국내 기반을 둔 오픈소스 DBMS지만 세계 시장에서도 널리 사용될 수 있도록 글로벌 프로젝트로 진행하고 있다. 프로젝트 초기인 만큼 우리나라, 루마니아, 중국 등에서 엔지니어들을 뽑아 핵심 엔진과 다양한 도구, 모니터링 툴들을 개발하고 있다.

오이석 아키텍트는 “이번에 출시된 4.0은 기존버전과 비교했을 때 SQL기준으로 삽입(Insert)과 삭제(Delete) 성능이 1.5~2.5배 정도 향상됐으며, 고가용성(HA) 기능의 안정성과 편의성도 증대됐다”고 말했다. 그는 또 “개발자 확산을 위해 윈도우 버전을 포기할 수 없다. 이 부분에 대해서도 기존 대비 2배 정도 향상을 이뤄냈다”고 덧붙였다.

보편적인 기준으로 이전 버전에 비해 2.5배, 혹은 2배의 성능 향상이 있다고 했지만 특화된 질의 처리 분야에서는 몇백배 수준 향상이 있었다는 말도 빼놓지 않았다. 특화된 분야에 대해 묻는 질문에 그는 “예를 들어 SNS 서비스에 제공되는 담벼락들을 모아보기 할 때는 기존 RDBMS 쿼리 성능 개선으로 처리하기에 한계가 많았는데 이런 분야에 특히 강한 성능 개선이 이뤄진 것”이라고 밝혔다. 인터넷 서비스 사업자들의 고민 해결에 더 한층 성능 개선으로 보답하고 있다는 말이다.

이번 버전은 웹 서비스를 위한 성능 개선과 고가용성에 특히 신경을 썼다. 온라인 특화 업무냐는 질문에 그는 고객들과 기자들의 인식 변화도 필요해 보인다는 말도 잊지 않았다.

오이석 아키텍트는 “인터넷 초기 서비스는 상당히 간단했다. 하지만 지금은 전혀 그렇지 않다. 24시간 7일 동안 아무런 장애가 없어야 하고 99.999의 가용성을 보장해야 한다. 크기도 어마어마 하다. 수십테라바이트 수준이고 트래픽도 엄청나다. 이를 모두 처리하기 위해 DBMS 성능들이 많이 개선됐다. 기업 내부 시스템만 고가용성에 안정성을 원하는 게 아니다”라고 밝혔다.

그는 특히 생산성 향상 부분에 대해서도 강조했다. 최근 출시되는인터넷 서비스들은 빠른 기획과 빠른 구현이 필수적이라는 것. 당현히 타임투 마켓을 염두에 두고 개발 생산성을 높일 수 있도록 DB도 빠르게 진화하고 있는데 이런 부분이 제대로 인식되고 있지 않다는 설명이다.

머쓱해진 순간이었다.

오이석 아키텍트는  “4륜구동 자동차를 오프로드 할 때만 타지 않는다. 평일에는 출퇴근용으로, 주말에는 오프로드로 얼마든지 즐길 수 있다”고 말했다. 큐브리드는 두 마리 토끼를 다 잡는 제품이라고 은근슬쩍 자랑한 것.

성능 개선이 이뤄지긴 했지만 고객들은 한가지 주의를 해야 한다. 큐브리드 2008 4.0이 출시되면서 NHN은 ‘2008 R4.0 Beta 버전, 2008 R3.1 버전 및 이전 버전의 데이터베이스 볼륨과는 호환되지 않으므로 업그레이드 시 마이그레이션을 수행해야 한다’고 고객들에게 주의 사항을 전했다.

자동으로 업드레이드 되는 것이 아니라 관련 툴을 활용해 조심스럽게 업그레이드를 진행해야 한다는 말이다.

하위 호환성은 소프트웨어 개발자들에게 반드시 지켜야 할 사항 중 하나다. 또 업그레이드 되면서 이전 기능들이나 성능에 비해 저하되거나 떨어지면 안된다. ‘퇴행 방지’ 분야다. 이번에는 그런 원칙 혹은 보편적인 업계의 룰을 지키지 않은 것이다. 이 부분이 조금은 의아했다.

그는 그 부분은 개인적으로 무척 아쉬웠다고 하면서 조심스럽게 입장을 전했다.

그는 “그 부분을 두고 내부에서 상당한 논쟁을 벌였다”며 “제품 성능 향상에 많은 개선이 이뤄지다보니 부득이하게 하부 저장 구조를 확장할 수밖에 없었고, 이 과정에서 고객 영향을 최소화 하기 위해 자동으로 할 수 있는 방식을 내놓고 싶었지만 오랜 시간이 걸리는 현실적인 문제에 봉착했다. 어쩔 수 없이 하위호환을 포기하게 됐다”고 말했다.

고객들에게 이 부분에 대해서 적극적으로 알리고 있고, 전문가들과 전문 툴로 업그레이드를 진행하면서 문제가 없도록 조치하고 있다는 설명도 곁들였다.

이번 버전에서는 관리도구인 큐브리드 매니저도 별도로 제공된다. 이에 대해 오이석 아키텍트는 “엔진 성능 개선은 더디게 진행되는 반면 도구들은 무척 빠르게 개선되고 있다. 굳이 한번에 모두 릴리즈하기보다는 엔진과 도구들을 별도로 개선하는 것이 훨씬 유리하다고 판단해 그렇게 됐다”고 설명했다.

정말 개발자다!

오이석 아키텍트와 이야기를 나누면서 자연스럽게 개발에 관련된 이야기도 나누게 됐다. 그는 10년 넘게 DBMS를 개발하고 있는 국내 몇 안되는 DBMS 개발자다. 이 분야에 어떻게 입문하게 됐느냐는 질문에 그는 학교 다닐 때부터 뭔가 막연하게 큰 소프트웨어를 만들고 싶었다. 큰 소프트웨어는운영체제와 DB분야였다. DB 분야에 뛰어들었고 운이 좋게 지금가지 개발하게 됐다고 담담히 밝혔다.

그는 “당시 데이터베이스 시스템은 전산학과에서 필수였다. 데이터베이스 이론이 수학적 배경에서 시작해 탄탄한 것도 마음에 들었고, 이 정도면 해보겠다는 겁 없는 생각이 들어 이 길을 선택하게 됐다”고 말했다.

이어 오이석 개발자는 황홀한 눈빛으로 “이 분야에는 공학적인 아름다움이 있다”고 아무렇지도 않게 말했다. 아름다움 하면 보통 예술 분야에서 나오는 말인데 공학적 아름다움이라니?

놀라는 기자를 바라보면  오이석 아키텍트는 “말로는 설명할 수 없는 데이터베이스 이론에는 정말 공학적 아름다움이 있다”고 거듭 밝혔다. 그 분야의 전문가들이 느끼는 그 아름다움을 초보 IT기자는 아직까지 느끼지 못하고 있다. 언젠가 저런 아름다움에 고개가 끄덕여질지 모를 일이다.

그는 아키텍트다. 아키텍트의 역할에 대해 물었다.

그는 “NHN 개발자들은 주니어, 시니어, 리더 등으로 3단계가 있고, 그 안은 관리자, 전문가로 또 나뉜다. 제품을 지속적으로 개발하는 개발자로 성장할 수 있는 선택지와 개발자들을 관리하거나 프로젝트들을 관리하는 관리자의 선택지가 있는데 저는 개발자로 진로를 선택한 경우로 전 큐브리드 개발 총괄을 맡고 있다”고 밝혔다.

개발자가 되고 싶어하는 대학생들의 메일을 가끔받는데 그들은 무엇을 공부하면 되느냐고 묻는다. 그래서 그에게 조언을 구했다.

공학적인 아름다움을 이야기할 때 미리 눈치를 챘어야 했는데 또 철학적인 대답이 돌아왔다.

“코드를 짜 놓고 조금 물러나서 바라보면 먼 산 보이는 것 같다.”

이건 또 무슨 말인가?

산은 산이다. 멀리서 바라보는 산은 정말 아름답다. 하지만 산 속으로 들어가보면 수많은 구성 요소들이 어울려서 ‘산’을 이루고 있다. 프로그래밍도 바로 이런 것이라는 설명이다. 산은 가보지 않으면 산을 구성하고 있는 요소들을 전혀 알길이 없다는 것. 그는 산을 알기 위해 산으로 가듯이 프로그래머의 길에 접어들기  위해서는 코딩을 직접 많이 하면서 체험을 해봐야 한다는 것이다. 그는 “프로그래머에게 왕도는 없는 것 같다. 직접 체험해야 한다. 물론 목적 의식과 문제 의식을 가져야 한다”고 말했다. 큐브리드의 엔진코드만 100만 라인이 넘는다. 그는 이 라인들이 어울러진 멋진 산을 만들고 있다.

구체적인 조언도 아끼지 않았다.

그는 “DBMS 개발자는 일단은 데이터베이스 이론을 우선 이해해야 한다. TCP/IP, 리눅스, 윈도우, 멀티쓰레팅 프로그래밍 등 시스템 프로그램에 대한 기본적인 것도 알고 있어야 한다. DBMS를 주제로 한 주옥같은 논문들이 70년대부터 쭈욱 나와 있으니, 이런것들도 이해햐야 하고 시중에 나와 있는 좋은 교과서들도 많다”고 말했다.

천상 DBMS 개발자다.

한편, 올해는 2011년인데 이번 제품은 2008 4.0이다. 왜 그러냐는 질문에 대해 “내부에서도 그것 가지고 이야기가 있었는데 엔진의 메이저 업그레이드가 빠르면 오히려 고객들이 받아들이기 쉽지 않아한다. 이번 제품이 메이저 업그레이드에 버급가지만 그런 이유로 인해 이렇게 됐다”면서 “다음 버전은 아마도 그 해에 맞는 이름이 될 것 같다”고 말했다. 이미 차기 버전 개발이 지난 5월 시작돼 1차가 마무리됐고, 7월 초 두번째 작업이 시작됐다고 밝혔다. 큐브리드 2012 1.0을 기다려도 좋을 것 같다.

오이석 아키텍트는 “고객들의 요구를 수용해서 빠르게 개선하는 것이 저희들의 역할이다. 많은 고객들의 피드백이 제품을 지속적으로 업그레이드 시키는 동력”이라고 말했다.