Mediumer Story - 기술본부 코어팀 CENA(전성민 님)
Possibility Comes True! 안녕하세요, 미디움입니다.
오늘은 블록체인 코어 개발을 담당하고 있는 코어팀 인터뷰 중 두 번째, CENA(전성민 님)와의 인터뷰입니다. 미디움은 전 세계 최초로 개발된 블록체인 전용 하드웨어 정보처리장치인 MBPU 개발에 성공한 바 있는데요. MBPU는 미디움이 블록체인 시장에서 독보적인 기술력을 확보하는 데 도약 지점이 됐던 기술의 결정체입니다.
블록체인 전용 가속 하드웨어 MBPU(Medium Blockchain Processing Unit) |
개발 및 상용화 과정의 중심에 있던 CENA는 미디움의 성장 과정을 누구보다도 잘 알고 있는데요.
CENA에게 직접, 그 과정을 들어보겠습니다.
Q: 간단한 자기소개 부탁드려요 :)
A: 안녕하세요. 미디움 기술본부 코어팀 CENA입니다. 미디움이 자체적으로 개발한 블록체인 전용 하드웨어 정보 처리장치인 MBPU(Medium Blockchain Processing Unit)를 HLF에 적용시켜 성능을 높이는 일을 하고 있어요. 그밖에 HLF 개발 및 테스트에 필요한 자동화 환경 구축을 담당하고 있습니다. 2019년 3월에 입사해 코어팀에서 쭉 일하고 있어요.
Q.: 전 세계 최초라면, MBPU를 개발할 당시 어려움도 많았을 거 같아요. 가장 힘들었던 건 어떤 거였나요?
A: 아무도 시도하지 않았다는 점이 제일 어려웠어요. 당시 블록체인 전용 하드웨어 정보처리장치에 대해 누구도 경험이 없었던 상황이었거든요. 처음에는 해외 외부 업체를 통해 설계 및 생산된 FPGA*보드의 C++ 라이브러리를 분석하면서 개발을 진행했습니다.
당시 미디움은 HLF를 커스터마이징하는데 구글에서 개발한 'Go'라는 언어를 사용하고 있었어요. 개발과 동시에 호환성까지 생각해야 했습니다.
호환성을 해결할 방법을 찾던 찰나에
HLF에서 crypto 관련 로직을 Go에서 지원하는 plugin 방식으로
쉽게 교체할 수 있도록 구현돼 있는 걸 발견했죠.
덕분에 기존 코드의 변경 없이 Go 기반의 MBPU plugin을 개발해 HLF에 적용할 수 있었습니다.
*FPGA: Field Programmable Gate Array, 설계 가능 논리 소자와 프로그래밍이 가능한 내부 회로가 포함된 반도체 소자
Q: MBPU 개발 후 미디움은 여러 공공기관과 계약을 맺으면서 실력을 검증받았는데요, 그중 가장 기억에 남는 프로젝트가 있나요?
A: 아무래도 첫 프로젝트였던 한국도로공사 블록체인 기반 상호정산 플랫폼 구축 프로젝트가 가장 기억에 남습니다. MBPU의 첫 상용화다 보니 해결해야 할 문제가 있었거든요.
한국도로공사 측에서 vSphere* 기반의 VMware* 환경에서 MBPU를 구동하기를 원했는데, MBPU 개발 당시 가상머신 환경에서 사용하는 시나리오는 생각하지 않았습니다. vSphere에서 제공하는 Passthrough* 기능을 이용하여 문제없이 사용할 수 있는 방법을 찾아 결국 해결했지만,
당시 첩첩산중이란 생각에 잠 못 이루던 때가 생각이 나네요. (웃음)
*vSphere: 외부 클라우드와 내부 클라우드를 연결 및 통합하는 클라우드 OS
*VMware: 컴퓨터에 설치된 OS 안에 가상의 컴퓨터를 만들고, 그 가상 컴퓨터 안에 또 다른 OS를 설치/운영할 수 있게 하는 소프트웨어
*Passthrough: VMware에서 가상화 레이어를 거치지 않고 직접 Device에 접근할 수 있도록 하는 기능
한국도로공사 블록체인 기반 상호정산 플랫폼 구축 프로젝트 |
Q: 쉽지 않았겠네요. 그러면 한국도로공사 블록체인 기반 상호정산 플랫폼 구축 프로젝트가 끝나고 CENA가 느낀 점은 무엇이었나요?
MBPU를 직접 개발하고 상용화되는 과정까지 모두 겪어본 건데, 감회가 남달랐을 것 같아요.
A: 솔루션 제공에는 사용자의 환경을 고려해야 하는 게 중요하다는 것이었습니다. 개발 환경과 실제 사용 환경은 늘 차이가 나니까요. 당시 MBPU 디바이스 드라이버 로드 중 vSphere가 통째로 다운됐던 게 기억납니다.
당시 문제 해결을 위해 다양한 방법을 도입했지만, 알고 보니 테스트 해오던 환경에 비해 실제 사용 환경의 컴퓨터 사양이 낮은 게 이유였어요. MBPU를 사용하려면 먼저 바이너리를 MBPU에 업로드한 뒤 커널 디바이스 드라이버를 로드해야 하는데, 낮은 사양의 컴퓨팅 환경에서는 바이너리를 업로드한 후 딜레이가 생기고 그 타이밍에 드라이버를 로드하면 해당 증상이 발생하는 거였습니다.
그 뒤로는 솔루션 제공 시 사용자의 작업환경도 염두에 두는 버릇이 생겼어요. 좋은 솔루션은 애프터 서비스가 필요 없는 솔루션이니까요.
좌: 당시 vSphere 다운 화면 / 우: MDL Dashboard 화면 |
Q: 마지막으로 CENA는 어떤 개발자가 되고 싶나요?
A: 음, 저를 무언가로 정의하기보단 제가 좋아하는 표현이 있는데요. 이 말이에요.
"일과 삶의 경계를 희미하게 만들어서,
내가 일을 하는지 모르게 하라"
말 그대로예요. 일이 곧 삶인 거죠. 저는 아직 주니어라 이것저것 찾아보면서 하는 중이라 늘 시행착오를 겪지만, 저 말처럼 살다 보면 일에 따라가기보다 일이 나를 따라오게 하는 삶을 살 수 있을 거라고 생각해요.