오픈소스SW를 왜 돈 주고 쓰냐고요?

카카오뱅크 DB엔지니어 성동찬 씨

컴퓨팅입력 :2016/08/29 17:43    수정: 2016/08/30 15:08

영업을 앞둔 인터넷전문은행 카카오뱅크가 은행업무 인프라에 오픈소스 소프트웨어(SW)를 적극 활용하고 있다는 얘긴 비밀이 아니다. 이 회사는 앞서 서버 운영체제(OS)와 데이터베이스(DB)를 각각 리눅스와 마리아DB로 쓰기로 해 업계 눈길을 끌었다. 최근엔 전사 표준 DB관리툴까지 오픈소스 프로젝트인 '올챙이(영문표기 Tadpole Db Hub)'로 결정해 세간의 관심을 환기시켰다. 무료로 쓸 수 있는 버전이 아니라 유료 라이선스인 '엔터프라이즈' 버전을 구매하기로 한 점 때문에 특히 주목받았다.

[☞관련기사: "오픈소스가 '공짜라 좋다'는 말씀 그만 하셨으면…"]

무료로 쓸 수 있는 오픈소스SW를 왜 굳이 돈 주고 사서 쓰지? 올챙이 엔터프라이즈 버전을 사서 쓴다는 카카오뱅크를 향한 관심의 상당 비중을 차지한 의문이다. 그간 오픈소스SW는 공짜로 쓸 수 있기에 공짜로 쓰면 된다는 인식이, 한국 IT업계 주류의 시각이었기 때문이다. 지디넷코리아는 이 물음에 답해줄 수 있는 '당사자'를 찾아갔다. 최근 카카오뱅크에서 인프라 실무자 가운데 한 명인 DB엔지니어 성동찬 씨와 인터뷰를 진행했다. 그는 카카오뱅크가 엔터프라이즈 버전 올챙이를 도입키로 한 배경과, 오픈소스SW에 건 개인적 기대를 들려줬다.

설명을 보태면, 성 씨는 카카오뱅크 출범 전부터 여기서 오픈소스SW를 적극 활용할 것이란 얘기에 끌려 카카오에서 자원해 자리를 옮겼다. 오픈소스SW를 활용하면서도 문제를 최소화해야하는 은행업무용 인프라에 걸맞은 '견고한 시스템'을 만들려 했다. 자신은 그런 'DB엔지니어로서의 본업'에 집중하고, 이를 보조할 DB관리툴은 가장 잘 만들 수 있는 전문가에게 맡긴다는 구상이었다. 그 과정에서 SW사용자인 자신과, 툴을 만드는 개발자가 함께 발전하길 바랐다. 오픈소스SW 프로젝트 올챙이의 엔터프라이즈 버전은 이런 바람에 알맞은 툴이었다.

카카오뱅크가 돈 주고 오픈소스SW를 사서 쓰는 이유를 한 마디로 요약하면, 성 씨같은 실무자의 의견을 존중하고 수용한 결과다. 성 씨는 카카오뱅크로 자리를 옮기기 전 카카오에서도 DB엔지니어로 일하고 있었다. 그는 재직 당시 마이SQL(MySQL)을 접해 본 국내 DB엔지니어들을 위해 그 대안으로 대두된 오픈소스DB '마리아DB' 활용 실무 경험을 녹여 쓴 전자책을 출간하기도 한 DB 전문가다. 그는 올챙이 프로젝트 창시자인 전업 오픈소스SW 개발자 조현종 씨와 함께 카카오뱅크의 DB관리 환경 구현에 분주한 나날을 보내고 있다.

카카오뱅크 DB엔지니어 성동찬 씨.

[☞관련기사: "마리아DB, 마이SQL과 동반 성장"]

카카오뱅크 성동찬 씨와 진행한 인터뷰 질의응답을 다음 1문 1답으로 재구성했다.

■"오라클 대신 오픈소스DB 쓴다기에 자원했다"

- 명함에 조직명, 직책명 표기가 없는데 … 카카오뱅크에서 어떤 소속과 직책으로 어떤 역할을 맡고 있는지

"인프라 담당 조직 소속인데, 회사 특성상 (조직명, 직책명으로) 표기할만한 건 없다. DB엔지니어로서, DB와 관련된 업무를 전부 다 한다고 보면 된다. DB 설계와 모델링을 검토하고, 튜닝이나 인덱스 구조 리뷰도 하며, 장애가 났을 때 대응을 맡고 있고, (카카오뱅크 영업 시작 이후에도) 하게 될거다. 정책상 각 업무를 완전하게 구분짓지 않기 때문에 '데이터아키텍처'나 'DBA'같은 직함으로 표현하기도 좀 애매하다. 일반 은행은 내부에 모델링 담당 DBA, 물리 계층 담당 엔지니어, 있고 장애 대응하는 사람, 이렇게 두는데(여긴 아니다)."

- DB인프라 관련해 모든 실무를 다 맡고 있다는 얘기로 들리는데, 엄청 바쁠 거 같다

"아직 사업 준비 단계라 중첩된 역할을 많이 맡다보니 바쁜 측면이 있다. 조직이 자리잡아 안정화하면 좀 나아질거라 생각한다…. 그랬으면 좋겠다."

- 카카오에 있었다던데, 원해서 카카오뱅크로 옮긴 건가

"맞다. 심심해서 그랬다…. 그냥 심심할 걸 그랬다. (웃음) 3년 넘게 카카오에 다녀 보니 반복적인 업무만 하게 되는 측면이 있었다. 변화가 필요할 것 같다는 생각에 옮기기로 결정했다. 사실 카카오뱅크가 오픈소스SW 쓸거란 생각을 전혀 못했다. 모든 시스템에 상용라이선스를 쓸 거다 짐작했다. 오라클DB만 쓴다고 했으면 관심 없었을텐데, 지금의 부서장께 우연찮게 여쭤보고 들은 얘기가 옮긴 계기였다. '카카오뱅크는 오라클만 쓰죠' 여쭸더니 '아니'라고, '마이SQL 많이 들어간다'고 했다.

그것 때문에 들어갔다. 절대 깨지면 안 될 환경에 견고한 데이터 시스템을 만들어보고 싶은 마음이 있었다. 금융권에서 불문율이었던 상용DB 대신 오픈소스 인프라를 시도해 보고 싶다는 욕심도 있었다. 마이SQL은 오라클DB보다 기능이 부족하다. 자료구조나, 디스크 볼륨 구성 등을 어떻게 효율적으로 쓸까, 이런 걸 고민하고 발전하는 재미를 줬다."

- 업계 경력을 처음부터 오픈소스 DB엔지니어로 시작했나

"아니다. 2008년 1월에 KT하이텔이라는 KT자회사에서 SW개발 업무를 했다. 담당한 서비스가 인프라 쪽, 특히 DB쪽 이슈를 많이 안고 있었다. 내가 살아야겠기에, DB에 관심을 갖게 됐다. 책으로 공부하며 DB튜닝을 시작했다. 당시 개발팀장님도 오픈소스SW를 좋아하는 DB엔지니어 출신이었다. 그 분 영향을 받기도 했고, 사내 마이SQL 전담할만한 DB관리자가 없기도 해서, 자연스럽게 하게 됐다. 2010년인가 2011년인가부터 전사 DB 표준화하고, 튜닝하고. 처음엔 오라클 시스템을 봤는데 그 과정에서 마이SQL로 넘어왔다. 중간에 소셜커머스 회사에서 잠깐 일하다 카카오로 오면서 마리아DB를 쭉 만지게 됐다. 실무 경험 바탕으로 마이SQL 성능최적화 관련 전자책도 두 권인가 썼는데…. 회사 다니면서 책 쓰는 건 인간이 할 짓이 아닌 것 같다. 아무튼 그게 여기(카카오뱅크)까지 이어졌다."

■"맥도 지원되는 DB접근제어 클라이언트 찾다가"

- 카카오뱅크는 올챙이를 어떻게, 얼마나 쓰고 있는지

"내부 인력들이 서비스 개발에 필요한 DB접근을 위해 올챙이를 쓴다. 지금은 개발이 진행 중이라 정확한 규모를 딱 말할 수 없는데, 향후 전체 개발인력 규모에 상응하는 수준이 될 거다. 개발자들이 주로 쓰는 기능은 DB에 담긴 데이터를 조회하거나, 오브젝트는 얼마나 들어 있는지, 테이블 용량이 얼마나 되는지 보는 정도가 대부분이다. 오라클DB로 업무를 보는 데선 비싼 상용툴을 쓰는데, 거기엔 개발자들이 다 쓸 필요 있을까 싶은 무거운 기능들이 포함돼 있다. 그런 툴은 DB 자체를 관리해야 하는 소수 실무자 입장에서만 필요하다."

- 개발자용 전사 DB관리툴로 올챙이를 선택한 이유가 '가벼워서'인가

"꼭 그것만은 아니고. 개발자들에게 업무간 DB에 접근할 수 있는 '클라이언트'용 툴이 필요했다. 개발PC에 윈도와 맥이 섞여 있는데, 기성 DB클라이언트 툴은 윈도 위주다. 마땅한 맥용 솔루션이 없다. 멀티 브라우저와 운영체제(OS)를 지원하는 테드폴허브(올챙이)를 고려하기 시작한 계기였다. 처음에는 필요한 개발자가 자기 PC로 테드폴허브 통해 DB에 접근케 할까 생각했다. 그러지 말고 데이터 조회같은 소소한 기능을 공통으로 쓸 수 있게, 테드폴허브를 서버 기반으로 쓸 수 있게 만들어 전사적으로 지원하잔 요구사항이 나왔다. 그걸 수용했다."

- 언급한 '접근제어'라는 게 어떤 개념인지

"누군가 DB에 질의를 넣었을 때, 그걸 처리하기에 앞서 질의한 사람이 적절한 '권한'을 갖고 있는지 파악한다는 개념이다. 기술적으로는 DB에 쿼리를 던진 경우 시스템에 그 흔적이라든지, 처리 과정의 이력이나 기록을 관리할 수 있는 기능을 의미한다. 이걸 포함한 DB관리툴을 'DB접근제어솔루션'이라고 부를 수 있겠다. 기존 상용 DB관리툴에서 지원하긴 하는데 클라이언트 제품중엔 윈도용 버전으로만 제공되고, 맥 환경을 고려한 툴이 없었다. 테드폴허브가 이런 니즈에 대응하는 솔루션이었다."

- 올챙이를 개발자 PC에서 직접 돌리지 않기로 한 이유는

"몇 가지 이슈가 있었다. 우선 맥용 DB접근제어 솔루션을 직접 구현해야 한다는 부담을 피할 수 없다는 점이 있었고, 개발업무용 PC에서 DB에 직접 접근한다는 게, 사견이지만 리스크일 수도 있었고. 그보단 별도 테드폴허브 서버를 돌리고, 유저(개발자)들은 거기 접속해서 서버간 통신으로 접근제어를 수행케 하는 게 더 낫겠다 싶었다. 그렇애 해야 클라이언트 OS와 브라우저를 가리지 않고 쓸 수 있기도 했고."

- 올챙이가 모바일에서도 접근할 수 있다는 점도 고려됐나

"그런 기능이 있다는 알지만 우리는 정책상 못 쓴다. 금융 쪽이라서… 법의 권고사항때문에 특정 기기에서만 쓸수있게 돼 있다. PC를 통한 클라이언트 액세스도 특정한 PC를 통해서만 접근할 수 있고, 모바일 클라이언트로는 못하게 돼 있다…. 인트라넷이 접근가능한 환경중 특정PC. 정책이 바뀌어 유무선 구별 없이 접근할 수 있게 된다면, (모바일도 지원하는) 올챙이가 설치형 상용솔루션 대비 이점이 많다."

카카오뱅크 DB엔지니어 성동찬 씨.

■"오픈소스SW라고 공짜가 아니다"

- 왜 무료로 쓸 수 있는 오픈소스 코드를 안 쓰고, 엔터프라이즈 버전을 쓰나

"조직차원에선, 카카오뱅크가 작게 시작하긴 하지만, 은행은 어쨌든 은행이다. 그에 걸맞는 인프라를 갖춰야 한다고 봤다. 다만 공개된 오픈소스SW 코드를 그대로 쓰려면, 그만큼 충분한 내부 인력, 리소스를 확보해야 하고. 또 DB엔지니어인 내가 DB관리툴 개발까지 맡는 게 맞을까, 우리 여건에 맞게 커스터마이즈까지 하면서. 그건 아니라고 봤다. 나는 잘 할 수 있는 쪽에 집중하고, 우리가 쓸 있는 DB관리툴은 가장 잘 만들어 줄 분을 찾고 싶었다. 올챙이를 가장 잘 만들어 줄 분이라면 당연히 프로젝트를 창시한 사람(조현종 씨)이었다.

그리고 오픈소스SW는 공짜가 아니다. 그저 공짜로 가져가 쓰라고 만들었다기보다, 사용하는 사람들과의 교류를 통해 함께 성장하길 원하는 게 만드는 사람의 바람일 거라 생각한다. 이미 국내에서 오픈소스DB관리툴 가운데 테드폴허브만한 완성도를 갖춘 프로젝트는 없었다고 생각한다. 다만 카카오뱅크에서 DB엔지니어로 일하면서 그 기능과 성능면에서 더 높이 도달할 수 있는 있는 요소가 보였다. 이왕 오픈소스SW를 도입키로 했으니, 해당 프로젝트와 협력하면서 함께 성장하고 싶었다."

- 카카오뱅크 요구사항에 맞게 개발되는 기능이 어떤 것들인지

"우선 테드폴허브에 자체 캐시를 두게 해 달라 요청했다. 그래야 사용자 응답 빨라지고, 쿼리 트래픽도 줄일 수 있다고. (조현종 씨에게) 구현 안 해주면 '우리 DB 죽고, 접근제어 솔루션 죽고, 테드폴허브도 죽는다'고 강하게 말씀드렸다. (웃음) 또 DB의 정보를 특정 장비에서 로그인해 조회할 때 결과를 인프라 구조 그대로 보여주는 대신, 연관된 전체 인프라 정보를 직관적으로 볼 수 있게 해주는, 그런 기능도 구현해 달라고 요청했다. 이런 식으로 계속 요구사항을 전달하고 있다."

- 상용 솔루션도 고객사 요구사항을 들어 주긴 할텐데

"처음에 상용툴을 쓰기로 정해져 있었다면 다르게 생각했을지 모르지만, (오픈소스SW를 적절한 솔루션으로 판단 중인 상황이었기 때문에) 우리가 해당 툴에 원하는 기능을 요청하면, 그게 구현된 결과물이 우리에게 제공되고, 다시 해당 오픈소스SW에도 적용되는 식으로 프로젝트의 발전에 기여할 수도 있을 것 같다고 봤다. 우리가 요청한 기능이, 다른 사용자들의 아이디어를 통해 더 개선될 가능성도 있고, 그게 최종적으로 오픈소스로 다시 공개돼 더 많은 사람들이 활용하고 개발에 참여하는 방향으로 갈 수도 있고."

- 올챙이 도입을 계기로, 달리 기대하는 부분이 있다면

관련기사

"한국에선 오픈소스가 공짜란 인식이 강하다보니, 테드폴허브같은 프로젝트가 성공하긴 쉽지 않을 것 같다. 선택권이 주어진다면 이 솔루션을 통해 다양한 사람들과 교류하면서, 서로 발전할 수 있는 관계를 만들고 싶다. 다만 결정권은 부서장께 있다. 물론 부서장도 그간 오픈소스를 활용하며 긍정적인 경험을 쌓아 왔기에 지금과 같은 인프라 환경을 갖추기로 했다 생각한다.

개인적으론 카카오 들어온 뒤 공유 문화와 협력을 통한 발전이라는 아이디어를 자연스레 받아들이게 됐다. 직접 컨트리뷰터로 뛸 역량이 있다고 자부하진 못하지만. 길지 않은 경력이지만 습득한 지식을 그걸로 끝내는 건 좀 아닌 것 같아, 같은 이슈나 요구사항을 접했던 다른 사람에게 공유하고 발전시킬 수 있으면 좋겠다."