이승환(ㅍㅍㅅㅅ 대표, 이하 리): 자기 소개를 부탁 드립니다.
차민규(메디블록 개발자) 10년 차 개발자 차민규입니다. 카이스트 전산학부를 졸업했고, 메디블록에서는 CTO를 맡고 있습니다.
리: 어쩌다 메디블록에 합류하게 됐습니까?
차민규: 아, 저요? 고우균 대표님 친구입니다.
리: ……
차민규: 너무 짧게 설명한 것 같은데… 고우균 대표님과 과학고, 카이스트 전산학과 동기였습니다. 저는 네이버에서 일했고 대표님은 치의학전문대학원으로 갔습니다. 그런데 치전 졸업하고 치과의사 한다던 친구가, 어느날 갑자기 저한테 사업을 하자는 거예요. 이 모델이 꽤 그럴듯해 보여서 창업멤버로 함께하게 됐습니다.
리: 그 모델은 무엇입니까?
차민규: 병원 로컬 서버, 즉 의사 선생님 PC에 있던 환자 진료 데이터를 환자에게 돌려주는 거죠. 이를 위해 먼저 의사 PC의 EMR(의사용 ERP)를, 저희가 만든 ‘닥터 팔레트’로 교체합니다. 그러면 클라우드에 진료 데이터가 쌓여요. 그리고 ‘메디패스’라는 앱을 설치하면, 병원에 가지 않아도 본인 인증하고, 진료 데이터를 환자가 소유할 수 있습니다.
리: 여기에 블록체인도 있다고 들었습니다.
차민규: 블록체인은 닥터팔레트, 메디패스를 서포트하는 플랫폼입니다. 닥터팔레트에 기록된 의료데이터의 진위 여부, 그리고 메디패스를 통한 환자 본인확인 여부에 블록체인을 활용합니다. 블록체인은 위변조가 거의 불가능하니, 본인 인증, 실제 진료 기록 여부를 가리는데에는 탁월하지요.
개발자가 60% 이상인 의료 데이터 스타트업
리: 하나만 하기도 빡세 보이는데, 제품이 많군요.
차민규: 네. 메디패스(앱), 닥터팔레트(웹), 블록체인, 3개 팀의 제품이 서로 시너지를 내는 형태입니다. 메디패스를 통해 환자 본인의 의료정보를 관리하고, 이것이 의료용 ERP라 할 수 있는 EMR 닥터팔레트과 연동되지요. 그 기반에 블록체인이 있고요.
리: 그러면 3개 팀 모두 개발자가 필요한 건가요?
차민규: 네, 현재 직원이 35명 정도인데 60명 이상으로 충원할 계획입니다. 그 중 개발자만 최소 20명 정도는 뽑을 거예요.
리: 요즘 개발자는 뽑는 게 아니라 모신다고 하죠.
차민규: 아, 그렇죠. 그런데 이렇게 말이 나오는 게, 저희는 직원 60% 이상이 개발자예요. 그래서 개발자 우대라기보다는, 회사의 주 업무가 개발인 개발 중심 회사입니다.
리: 각 제품의 팀장이나 기획자도 있지 않습니까?
차민규: 메디패스팀, 닥터팔레트팀의 프로젝트 리더, 두 분도 개발자 출신입니다. 블록체인팀은 아예 기획자 없이, 개발자들로만 꾸리고 있고요. 비개발도 개발 경력이 있으니, 알아서 잘 논의하는 구조입니다.
리: 어지간한 SI 회사보다 개발자 비중이 높군요;;;
차민규: 네. 그래서 모든 업무에서 개발자 관점이 우선시됩니다. 자신의 상황에 맞게, B2B 닥터 팔레트, B2C 메디패스, 블록체인 플랫폼, 중 원하는 제품을 개발할 수 있습니다. 또 이 3가지가 유기적으로 엮이는 경험을 할 수 있는 회사는 많지 않을 겁니다.
새로운 언어 도입을 꺼리지 않는 강력한 학습 문화
리: 회사 개발 문화에 특징이 있다면 무엇일까요?
차민규: 음… 새로운 언어 도입에 망설임이 없다? 일단 CTO인 저부터 언어를 추가하거나 바꾸는 것에 호의적이에요. 어차피 요즘 개발이 점점 모듈화되는 추세라, 언어를 추가한다고 서비스가 망가지거나 하지 않아요. 그리고 새로운 언어를 도입하는 것 자체가 팀의 기술적인 역량을 계속 키우는 과정이라 생각하거든요. 팀원들도 자유롭게 이런 의견을 내는 편입니다.
리: 예를 들자면…
차민규: 닥터팔레트는 처음에는 자바스크립트 기반으로, 프론트는 react.js를, 프레임워크로는 express.js를 사용했습니다. 통신기술로는 REST API를 사용하고 있었고요. 지금은 뒤집어 엎어서, 타입스크립트(typescript)를 기본으로 쓰고 있어요. 여기에 백엔드로 nest.js를, 아폴로(Apollo) 프레임워크를 사용해 GraphQL로 둘을 연결하고 있고요. 프론트엔드만 여전히 react.js를 쓰고 다 바꾼 거죠.
리: 뭔가 되게 멋있어 보이는 생소한 이름이 많이 나오네요…
차민규: 닥터 팔레트는 의료 서비스라, 정합성이 굉장히 중요합니다. 그래서 프론트엔드와 백엔드가 꼬이지 않도록, 구조를 가볍게 해줘야 합니다. 초기에 REST API를 사용할 때는, 백엔드와 프론트엔드 사이에 문제가 종종 있었어요. GraphQL을 도입한 이후 프론트엔드 관리가 용이해지며, 그런 문제가 거의 사라졌습니다.
리: 메디패스도 이런 식의 변화를 겪었나요?
차민규: 메디패스는 앱 서비스니 다른 회사와 개발 환경은 크게 다를 바 없습니다. 자바 플랫폼에 스프링(spring) 프레임웍을 사용하고 있고요. 다만, 요즘 새롭게 개발한 모듈은 코틀린(Kotlin)으로 전환하려 하고 있습니다. 동시 작업을 효율적으로 처리하게 한다거나, 함수형 프로그래밍의 기법 같은 것들이 언어 설계에 녹아 있어서 생산성이 좋기 때문입니다. 자바(Java)와 호환이 되어서 자바 기반의 프로젝트에서 전환하기도 좋고요
리: 그런데 새로운 언어 도입은, 기존 개발자들에게 짐이 될 수 있잖아요. 또 새로 공부해야 하고…
차민규: 선을 잘 지키긴 해야죠. 그래서 나온지 얼마 안 된 언어 도입은 안합니다. 현업에 있는 개발자들 입장에서, 개발자로 성장하려면 당연히 익혀야 한다고 생각하는 언어 위주로 도입합니다. 혹시나 못 따라오지 않도록 교육도 하고… 이런 걸 좋아하는 개발자가 많아서 유지되는 것 같아요. 지금 자바가 당연시되는데, 한때는 PHP가 그랬잖아요. 결국 어느 정도 새로운 언어 적응은 필수인 것 같습니다.
구성원의 다양성이 엄청난 회사
리: 이런 신기한 문화가 형성된 이유가 있다면?
차민규: 회사의 시작부터 다양성이 컸던 것 같습니다. 대표님 두 분 다 의사이지만, 고등학교 때부터 코딩을 했어요. 사회 나와서도, 한 분은 치과에서 진단 SW를 개발했고, 한 분은 대형병원 IT 시스템을 개편했죠. 또, 닥터팔레트 팀장님은 기계과 박사 출신으로 대기업 엔지니어 경험이 있습니다. 메디패스 팀장님은 네이버에서 밴드, 스노우 B2C 서비스를 개발했고요. 블록체인 팀장님은 네이버 출신인데, 독일에서 스타트업을 한 경험이 있고요.
리: 참 다들 이력이 다양한데, 어찌 네이버 출신이 많군요.
차민규: 네, 삼성 출신도 많습니다. 대표님이 삼성 출신이고, 제가 네이버 출신이라 틈만 나면 그곳에서 인재 영입을 했습니다. 두 회사가 저희를 참 싫어할 것 같긴 한데… 큰 회사 서비스는 안정성이 최우선이잖아요. 그래서 안정된 언어 위주로 써야 하는데, 거기에 좀 갈증을 느낀 분들이 저희 회사를 좋게 봐주시더라고요.
리: 여기는 틈만 나면 새로운 언어를 도입하니까?
차민규: 본격적으로 도입하지 않고, 실험적으로 모듈 짜는 건 더 많지요. 안정적인 서비스를 위해 자제하고 있어서 그렇지, 저는 정말 생소한 언어로 개발하고 싶다는 생각도 많이 해요. 이런 새로운 것에 대한 욕심이 있는 개발자라면, 이 회사가 정말 잘 맞을 거예요
리: 그러면 말씀하신 다양한 언어를 이미 좀 할 줄 아는 분들을 찾나요?
차민규: 그렇지는 않습니다. 다양한 걸 할 줄 알기보다, 새로운 무언가를 배우는 자체를 즐기는 분을 선호하는 거죠.
새로운 학습을 꺼리지 않는 개발자 문화
리: 경력은 얼마나 따지십니까?
차민규: 경력은 길면 좋습니다. 좀 더 실력 있는 분들과 회사를 빠르게 성장시키고 싶은데, 아무래도 좋은 시니어가 많아야 주니어들이 빠르게 성장할 수 있으니까요. 기본적으로 4년 이상을 찾고 있고, 10년 이상이면 더 좋습니다. 단 블록체인은 경력보다는 유사-유관 프로젝트 경험자를 선호합니다. 애초에 블록체인 생태계가 활성화된 게 그리 길지도 않으니까요.
리: 자, 그러면 나는 이런 개발자를 뽑고 싶다…
차민규: 음… 그보다는 이런 개발자는 우리 회사에 맞지 않다, 정도는 있습니다. 생각이 유연하지 못하고 고집이 있는 개발자입니다. 하던 방식만 고집하는 개발자라고 하면 맞겠네요. 소프트웨어 개발 기술은 계속 변하고 있습니다. 처음에는 어느 정도 개발 관점의 충돌이 있을 수 있겠지만, 끝까지 예전 개발하던 방법이 최선이라고 고집하면 곤란합니다.
리: 유연함이 중요하다…
차민규: 네. 실제로 팀 구조도 팀 상황에 따라 달라요. 메디패스는 백엔드팀장이 프로젝트 리더를 맡고 있고, 닥터 팔레트는 프론트엔드 팀장이 프로젝트 리더입니다. 저는 CTO로서 이들과 의사결정 조율을 하고요. 이외에는 명시된 직함이 없어요. 필요할 경우 의견을 내고, 모두가 동등한 입장으로 개발을 논의하는 구조입니다.
리: 주로 의견은 어떻게 주고받나요?
차민규: 남들 하는 것처럼 슬랙으로도 주고 받고… 데일리 스크럼 미팅에서 이야기를 많이 나눕니다. 이것도 룰이 딱 정해져 있지는 않아요. 별도로 스크럼 코치는 없고, 업무보고 형식보다는, 지금 어떤 부분이 막히는지 주로 이야기합니다. 그러면 그 사람을 누가 어떻게 도와줄지 이야기하지요. 데일리 미팅은 팀 단위로 진행하고, 한달에 한 번 회사 전체가 모여 이야기를 나눕니다.
리: 회사 전체… 면 타운홀 미팅? 주로 어떤 이야기를 하시나요?
차민규: 일하면서 배운 부분을 발표하기도 하고, 신규입사자들 소개도 있지요. 경영진은 회사의 방향에 대해 이야기하고요. 가장 인상적이었던 일은 작년에 퇴사한 개발자였어요. 자기 사업에 뜻이 있어서 나가면서도, 이 회사가 정말 좋았고 많이 배워간다고 발표한 게 감동적이었죠. 더 좋은 소리 들을 수 있도록, 더 발전하는 개발팀을 만들어가고 싶습니다.
리: 감사합니다. 마지막으로 한 말씀 부탁 드립니다.
차민규: 저는 메디블록의 비전을 믿고 성공을 확신하고 있어요. 하면 할수록 이 사람들과는 뭘 해도 성공할 수 있을 것 같다는 확신이 들어요. 메디블록은 좋은 개발자들과 함께 성장하고 발전하고 있으니 앞으로도 관심있게 지켜봐주세요.
※ 이 인터뷰는 「삼성전자 개발자, 치과의사가 됐다가 의료데이터 스타트업을 차린 이유: 메디블록 CEO 고우균 인터뷰」으로 이어집니다.