[메인터뷰] 산업용 통신 프로토콜 라이브러리를 만드는 사람, 김준형

[메인터뷰] 는 메인테이너가 메인이 되는 인터뷰로 클라우드브로 커뮤니티가 오픈소스 빌더들의 이야기를 기록하는 시리즈의 첫 번째 편입니다.


6월 1일에 김준형 님은 입사 20주년과 동시에 회사를 그만둡니다. 같은 날에 시작과 끝이 겹치는 셈인데도 본인은 별일 아니라는 듯 "자유인이 되는 날"이라고만 했습니다.

그만두고 무엇을 할 거냐고 묻자 오래 혼자 만들어온 오픈소스 라이브러리 이야기를 꺼냈고, 앞으로 만들고 싶은 도구 이야기로 자연스럽게 넘어갔습니다. 인터뷰 내내 "대단한 건 아니에요"라는 말을 여러 번 했지만, 무엇을 어떻게 만들어 왔는지 듣다 보면 그 말을 곧이곧대로 믿기는 어려워집니다.

방랑자라는 이름

라이브러리 이름은 Vagabond K.Protocols 입니다. Vagabond, 방랑자라는 뜻으로, 좋아하는 만화 제목에서 따왔다고 합니다. 한 가지 기술에만 머물지 않고 이런저런 기술을 두루 접하고 싶다는 마음도 담겨 있습니다.

실제로 그의 20년도 한곳에 머물지 않았습니다. 입사 초기 5, 6년은 공장 자동화를 했고, 중간에 ERP 같은 프로젝트를 거쳐, 최근 10년 동안은 태양광이나 풍력 발전 설비와 통신하는 일을 해왔습니다. 그렇게 옮겨 다니며 현장에서 부딪힌 산업용 통신 프로토콜들을 하나씩 코드로 정리해 한 곳에 모은 것이 지금의 라이브러리입니다.

Vagabond K.Protocols가 하는 일

공장이나 발전소의 설비는 저마다 약속된 언어로 신호를 주고받는데, 그 언어를 통신 프로토콜이라고 부릅니다. 이 라이브러리는 .NET 환경에서 그 프로토콜들을 쉽게 다루도록 도와주는 도구입니다.

여기에는 성격이 꽤 다른 두 종류가 함께 들어 있습니다. 하나는 Modbus 입니다. 모디콘이라는 회사가 처음 만들었지만 구현이 워낙 단순해서 전 세계 산업 현장으로 퍼졌고, 표준 기관이 정한 적도 없는데 사실상의 표준이 되어버린 프로토콜입니다. 다른 하나는 LS ELECTRIC, 옛 LS산전의 C-NET과 FEnet 입니다. 이쪽은 국산 PLC 전용이라 해외 사용자는 거의 없습니다.

세계 표준과 국산 전용을 굳이 한 리포지토리에 함께 둔 데에는 이유가 있습니다.

“산업용 SCADA라면 결국 다양한 설비를 다 다뤄야 하거든요. 모드버스 말고 다른 프로토콜을 쓰는 설비도 만나게 되니까, 처음부터 한 곳에 모아 두려고 했어요.”

라이브러리 자체가 아주 큰 규모는 아니어서 굳이 쪼개지 않았다고 합니다. 앞으로는 발전 설비에서 많이 쓰는 DNP3나 IEC 61850 같은 프로토콜도 시간이 날 때마다 더할 계획입니다. 국제적으로 알려진 Modbus 라이브러리는 더러 있지만, LS산전 PLC까지 함께 다루는 .NET 라이브러리는 사실상 그의 것이 거의 유일합니다. 본인은 이 점을 자랑처럼 말하지 않았습니다. 오히려 국산 PLC용 오픈소스 라이브러리가 있다는 사실조차 모르는 현업 개발자가 많을 것 같다고, 찾아보지 않으면 없는 줄 안다고 했습니다.

노트북을 메고 공장으로

처음 이걸 만들기 시작한 건 신입 시절의 기억 때문입니다. 공정 자동화 프로젝트를 하던 때는 노트북을 등에 메고 공장 현장으로 직접 가서 작업하는 일이 많았다고 합니다.

“그때 좀 어려웠던 경험이 있어서요. 이런 걸 만들어 놓으면 적어도 저처럼 현장에서 고생했던 분들이 좀 덜 고생하지 않을까. 그런 생각으로 시작했어요.”

사용자와는 주로 블로그에 열어둔 카카오톡 오픈 채팅으로 소통합니다. 거기서 "이런 점이 좀 이상하다"고 알려주는 사람들이 가장 고마운 분들이라고 했는데, 그들이 무슨 일을 하는지 들여다보면 대개 공장이었습니다. 이름난 식품 공장에서는 현장에 앉아 직접 코딩을 하며 그의 라이브러리를 쓰고 있더랍니다.

지방에서 오픈소스를 한다는 것

김준형 님은 경남 창원에서 일합니다. 인터뷰에서 가장 길게 머문 대목은 기술이 아니라 거리에 관한 이야기였습니다.

“지방에는 그런 커뮤니티가 거의 없어요. 오프라인으로 만나서 커피 한잔하면서 대화할 사람, 그런 사람이 지방에는 거의 없다시피 하니까.”

회사 안에서 조용히 일만 하던 사람이 작년부터 닷넷데브 같은 온라인 커뮤니티에 나오기 시작한 것도 그 이유 때문이었습니다. 한국에서 오픈소스를 하는 게 뭐가 어렵냐고 물었을 때 라이선스나 수익 이야기가 먼저 나올 줄 알았는데, 그가 먼저 꺼낸 것은 마음을 나눌 사람이 부족하다는 이야기였습니다.

커피 쿠폰 한 장, 그리고 독일

혼자 5년 가까이 유지해온 프로젝트입니다. 보람이 어디서 오느냐고 물었더니 다운로드 숫자 이야기는 하지 않았습니다.

“어떤 분들은 고맙다면서 커피 쿠폰 같은 걸 보내주신 적도 있어요. 되게 뿌듯하더라고요.”

영어에 얽힌 일화도 흥미로웠습니다. 그는 예전에 모드버스를 테스트하는 도구가 필요했는데, 해외에 있는 비슷한 제품이 백 달러쯤 하는 유료 소프트웨어였다고 합니다. 돈 내고 쓰기 아까워서 직접 만든 것이 Vega Modbus Analyzer 이고, 마이크로소프트 스토어에 무료로 올렸습니다. 그걸 영문으로도 배포했더니 한국보다 독일에서 더 많이 쓰더라는 것입니다. 제조업이 강한 나라라 그럴 만하다고 했습니다.

6월 1일 이후

독립하면 .NET 기반의 오픈소스 SCADA 프레임워크를 본격적으로 만들 생각입니다. SCADA는 사람이 설비 상태를 보기 좋게 모니터링하고 제어하도록 돕는 시스템인데, 앞으로 그가 고객에게 만들어줄 일이 바로 이런 것입니다. 같은 작업을 빠르고 깔끔하게 하려면 본인만의 기반 도구가 있어야 한다고 보고, 그 토대로 지금의 Protocols 라이브러리를 두고 있습니다.

수익은 어떻게 낼 생각이냐고 묻자 계획을 들려주셨습니다. 프레임워크 자체는 오픈소스로 열어두되, 그것을 가장 잘 다루는 사람으로서 시스템 구축을 맡거나, 미리 보기 좋게 디자인해 둔 화면 요소들을 저렴하게 패키징해 파는 방식입니다. 라이선스는 지금 LGPL로 두었지만 Apache 2.0으로 바꾸는 것도 검토 중이라고 했습니다.

목표가 얼마나 크냐고 물었을 때 그는 이렇게 이야기했습니다.

“거창한 사업이라기보다는, 그냥 집안 식구가 먹고 살 만큼만 벌면 된다는 생각이에요.”

회사 밖에서 1인분을 한다는 게 어떤 일인지 아는 사람은 이 말을 가볍게 듣지 않습니다. 20년 동안 정부 과제 연구소에서 한국전기연구원 같은 기관들과 일하며 쌓은 관계와 현장 지식이 그 말 뒤를 받치고 있습니다.

그리고 커뮤니티

김준형 님 같은 분을 한국 오픈소스에서 자주 봅니다. 완성도가 높은 프로젝트이지만 "홍보할 레벨은 아니라서"라며 한발 물러서고, 곁에 같은 고민을 나눌 사람이 없어 혼자 오래 버팁니다.

클라우드브로가 글로벌 오픈소스 빌더들의 커뮤니티가 되기로 한 것은 이 지점 때문입니다. 메인테이너가 혼자 다 짊어지지 않아도 되는 자리, 커피 한잔하면서 코드 이야기를 나눌 자리를 만드는 일. 다양한 프로젝트를 알리고 메인테이너에게 정당한 보상이 주어지는 길을 만들어가려고 합니다.

메인테이너를 메인에 두는 [메인터뷰] 의 첫 이야기를, 20년을 방랑자라는 이름으로 걸어온 김준형님의 이야기로로 시작합니다.


[메인터뷰] 는 클라우드브로 커뮤니티가 오픈소스 빌더들의 이야기를 기록하는 시리즈입니다. 다음 편에서 또 다른 빌더를 소개할게요!

1개의 좋아요