어느 날 DevOps에서 메인넷 개발자가 되어 있었다 (feat. JooHyung)
큰 키와 차분한 발랄함으로 해치랩스 사무실에 산뜻한 바람을 불어넣어 주고 있는 분이 계신데요. 바로 메인넷 팀 소속 개발자, JooHyung입니다.
메인넷 프로덕트 개발과 운영을 책임지고 있는 메인넷 팀은 최근 해치랩스에서 야심차게 준비하고 있는 신규 사업의 주축이라 할 수 있어요. Web3 개발자라는 타이틀을 걸게 된다면, 한 번쯤은 메인넷을 내 손으로 개발해보고 싶은 개발자 분들이 많으실 텐데요. 힘겨울 수도 있는 개척의 길을 신나게 달려가고 계신 JooHyung을 모시고 한번 말씀 나눠보도록 해요.
Joy: 안녕하세요, 주형! 흔쾌히 인터뷰 요청을 수락해주셔서 너무 감사드려요! 주형은 해치랩스에서 가장 오랫동안 손발을 맞춰 온 구성원 중 한명으로 해치의 보물(!)이라 할 수 있는데요. 그만큼 여러 제품과 여러 파트의 일들을 다방면으로 소화해오신 것으로 알고 있어요.
Q1. 최근에 메인넷 개발을 맡으셨는데, 기존 업무와 어떻게 다른지 또 현재 어떤 업무들을 소화하고 계신지 궁금해요.
JooHyung: 요즘은 메인넷 팀에 새로 합류해서 우선은 이쪽 도메인에 대해서 이해하려고 노력하고 있어요. 크게 저희 메인넷 기반이 되는 Cosmos 부분이랑 메인넷 팀에서 커스텀하게 개발중인 영역 두 가지를 공부하고 있어요. 사람들을 붙잡고 물어본다든지, 공식 문서를 보면서 리서치와 PoC(개념 증명)를 진행하고 있습니다
이전에는 DevOps 업무를 하면서 서비스 배포 관련 업무나 인프라 관련 업무를 주로 담당했고요. 그리고 이 경험들을 바탕으로 초기 메인넷 프로젝트에서도 필요한 인프라, 모니터링 그리고 배포 파이프라인을 셋업하는 것도 같이 도와서 하고 있습니다.
또한 곧 있을 테스트넷 런칭이랑 노드 모니터링, 블록체인 운영을 어떻게 하면 좋을지 Jun이랑 같이 이야기하면서 고민하고 있어요. 과거 헤네시스 경험이랑 여러 블록체인 노드들 운영해보면서 얻은 경험을 바탕으로 메인넷 팀원들이랑 함께 더 나은 메인넷을 만들고 운영해보고 싶어요
현재는 메인넷 개발을 위한 구조를 짜는 데 주력하고 있고 필수적인 기능들을 팀원들과 하나씩 기획해 나아가고 있어요.
저희는 현재 Cosmos 기반의 블록체인을 만들고 있습니다. 리서치 팀과 협력하여 토큰이코노믹스와 같은 큰 컨셉에 대한 아이디어를 얻고 그것을 바탕으로 개발팀에서는 기술적인 스펙을 잡고 구현을 합니다.
Q2. DevOps와 메인넷이 무엇인지 조금 더 풀어서 설명해주실 수 있을까요?
JooHyung: 데브옵스(DevOps)는 애플리케이션과 서비스를 빠른 속도로 제공할 수 있도록 조직의 역량을 향상시키는 문화 철학, 방식 및 도구의 조합입니다. 기존의 소프트웨어 개발 및 인프라 관리 프로세스를 사용하는 조직보다 제품을 더 빠르게 혁신하고 개선할 수 있다는 장점이 있어요. 이러한 빠른 속도를 통해 조직은 고객을 더 잘 지원하고 시장에서 좀 더 효과적으로 경쟁할 수 있게 되는 거죠.
메인넷(mainnet)은 블록체인 프로젝트를 실제 출시하여 운영하는 네트워크예요. 메인넷은 하나의 독립적인 플랫폼으로서 암호화폐 거래소, 개인 지갑 거래간 트랜잭션(처리)을 비롯해 생태계를 구성하고 암호화폐 지갑을 생성하는 것을 모두 포함한 상위 개념이라고 볼 수 있어요.
Q3. 궁금한 것이 생길 때마다, 팀에서 어떤 역할을 하시는 분들이 주로 의문을 해소시켜 주시나요? 메인넷 팀의 팀웍과 개발문화가 궁금해요!
JooHyung: 메인넷 안에서도 여러 파트가 나눠져있고 그래서 궁금한 것이 생기면 해당 파트를 주로 했었던 사람에게 관련된 도메인을 물어봅니다. 그렇다고 해당 파트를 그 사람만 아는 것은 아니에요.
기본적으로 메인넷팀에서는 자신이 했던 작업에 대해서 미팅을 잡아서 공유하는 문화가 있는데요. 해당 파트의 지식을 그 사람만 아는 것이 아니라 최대한 모든 사람들이 알 수 있게 하도록 노력하고 있어요. 왜냐하면 A 파트를 개발하는 사람은 A 파트에 대해서만 알아야하는 것이 아니라 다른 B, C, D 파트에 대해서도 알고 있어야 더욱 제품을 잘 만들 수 있기 때문이에요. 이렇게 하면 커뮤니케이션 코스트를 줄일 수 있을 뿐만 아니라, 모두가 전체에 대해서 어느정도 알고 있기 때문에 장기적으로 특정한 개인이 업무상 병목이 되는 문제를 사전에 방지하기도 해요. 각 구성원들이 함께 우리가 그려야 할 큰 그림을 인지한 상태에서 제품을 만들어가기 때문이죠!
Q4. 팀에서 합의를 도출하는 과정을 최근 가장 인상 깊었던 사례를 들어 설명해주실 수 있을까요?
JooHyung: 최근에 기대 효과가 궁금해지는 일을 한 적이 있는데 바로 메인넷 리서치팀과 메인넷 개발팀 그리고 메인넷 비즈니스 전략을 고민하는 세 팀 간의 용어를 통일하고 정의를 내렸던 적이 있어요. 이 일은 처음부터 팀 간 ‘용어를 통일합시다!’라고 시작한 것은 아니에요. 발단은 개발팀 내에서도 특정 용어에 대해서 정의가 제대로 안 되어있어서 논의를 할 때 같은 개념을 다른 단어로 부르는 일이 있다 보니 상대방이 이야기한 것을 제대로 이해하는 것이 서로 너무 어렵게 느껴졌던 적이 있었어요. 그래서 커뮤니케이션 코스트를 줄이고자 개발팀 내에서 용어를 통일하면 좋겠다고 생각했는데, 문득 개발팀뿐만 아니라 다른 팀과도 이런 불편함이 있을 것 같더라고요. 그래서 제가 전체 팀에 공유를 해서 특정 단어에 대한 정의를 맞추게 되었어요.
또한 이렇게 합의된 용어를 바탕으로 개발을 할 때 변수명이나 클래스, 함수명에 반영하기로 했어요. 코드 리뷰를 할 때에도 해당 용어를 바탕으로 코드가 작성되었는지도 살펴보고요.
도메인 주도 설계(Domain Driven Design)의 유비쿼터스 랭귀지(Ubiquitous Language)가 생각나시는 분들도 있을 거 같아요. 처음에는 커뮤니케이션 문제에서 시작을 했는데 한 걸음 더 나아가서 합의된 용어를 바탕으로 코드를 작성하는 단계까지 오게된 거죠. 앞으로는 합의된 용어들을 잘 관리하며 발전시키는 단계가 남아 있는데, 성공적으로 정착되면 좋겠습니다.
Q5. 개발자 분들은 항상 사내에서 스터디를 진행하시고, 개인 공부도 게을리하지 않으시더라구요. JooHyung이 최근 관심을 가지고 공부하고 있는 주제는 무엇인가요?
JooHyung: 회사 업무 외적으로는 회사에서 사용하고 있는 기술 디테일에 관심이 많아서 회사 사람들이랑 혹은 혼자서 관련 기술을 제가 다시 간단하게 만들어보면서 스터디를 해보고 있어요.
요즘 진행 중인 것은 작년부터 Borre, Larry와 함께 했던 Netty (비동기적으로 네트워크 요청을 처리하는 어플리케이션 프레임워크) 스터디가 있어요. 목요일 오후에 2시간씩 모여서 각자 컴포넌트를 맡아서 개발하고 왜 이런 구조로 되었는지, 왜 이렇게 코드를 작성했는지 의도에 대해서 고민합니다. 스터디를 시작한지는 꽤 오래 되었는데 같이 하시는 분들 덕분에 지금까지 포기하지 않고 꾸준히 진행할 수 있었던 거 같아요(스터디 프로젝트 링크).
개인적으로는 올해는 Container와 Kubernetes에 대해서 깊이 파보고 싶어서 요즘은 Container에 대해서 다시 만들어보면서 이해하려고 노력하고 있어요. 최근에는 저희가 Cosmos를 쓰다보니 Tendermint에도 관심이 생겨서 좀 자세히 살펴볼까 생각하고 있어요. 그 밖에도 간단하게 만들어보고 싶은게 많은데 시간이 제한적이다보니 욕심을 버리고 진행 중인 것을 잘 끝내려고 노력하고 있습니다.
Q6. 그외에도 Web3 종사자로서 개인적으로 흥미를 느끼는 분야가 있으실 것 같아요!
JooHyung: DAO나 요즘 블록체인 트렌드에 대해서도 알아가보려고 노력하고 있는데 훈련소를 갔다오면서 뭔가 흐름이 끊겨버렸네요!(흑흑) 더 잘해보고 싶은 영역입니다. 특히 DAO와 관련해서는 해볼 수 있는 것들이 무궁무진하다고 생각해요. 그래서 상상으로 여러가지를 그려보는데 사실 이 부분은 기술적인 영역보다는 커뮤니티를 운영하거나 마케팅이 중요하다고 생각해서 마음이 맞는 사람이 있다면 같이 만들어보고 싶기도 하고 혹시 DAO와 관련해서 기여할 수 있는 기회가 있다면 컨트리뷰션 해보고 싶어요.
그리고 개인적으로 게임을 만들어보는 것에 대한 로망이 있어요(ㅋㅋ). 그리고 맥북으로 돌릴 수 있는 2D 기반의 로그라이크류 게임을 좋아해요. 실제로 스팀에서 여러 게임들을 구매해서 플레이해보는 게 취미이기도 합니다. 요즘 주위에서 P2E 게임에 대한 이야기들을 많이 하는데 다들 그 게임들에 대한 평이 좋지 않더라고요. 게임을 시작하기 위해서 많은 비용을 지불해야된다거나 플레이 방식이 너무 단순하다거나 혹은 사용성이 좋지 않다거나요. 그래서 이런 문제점들을 해결하는 간단한 로그라이크 게임에 블록체인을 접목한 게임을 만들어 보고 싶다는 생각이 있어요.
Q7. 평소에 성장을 위한 ‘정기적인 회고’를 자발적으로 하고 계신 것으로 알고 있어요. 함께 회고를 진행하는 팀원들과 회고 이후 어떻게 성장하고 있는지, 조금 자랑해주실 수 있을까요?
JooHyung: 올해부터 사람들과 매달 회고를 같이 하고 있어요. 처음 시작은 새해가 되면서 생긴 좋은 마음 가짐, 습관들을 오랫동안 가져가고 싶은 마음에서 시작하게 되었어요. 처음에 회고를 제안했을 때 같이 할 사람이 아무도 없으면 어떡하나 걱정했는데 생각보다 반응이 좋았어요.
저 뿐만이 아니라 많은 사람들이 시간이 너무 빨리 흘러간다고 생각할 거예요. 다들 바쁘게 살아가고 있어서 더 그런 것 같아요. 월마다 하는 회고를 통해서 빠르게 흘러가는 시간을 잠깐 붙잡고 제가 가고 있는 방향에 대해서 생각해보게 되어요. 지나간 달에 했던 일들을 생각해보기도, 올해 하고 싶은 것들이 있었는데 잘 하고 있나, 생각해보기도 해요. 공유하고 싶은 사람에 한하여 회고 내용을 공유하는 시간도 있는데, 그럴 땐 ‘다른 사람들은 이런 생각들을 하며 지내는구나’, ‘요즘 이런 고민들이 있구나’ 하고 다른 사람에 대해서 좀 더 알아가는 계기가 되기도 해요.
최근에는 같이 회고를 한 사람들로부터 이런 이벤트를 만들어줘서 고맙다는 얘기를 들었는데 그 때 기분이 너무 좋았어요. 저도 자발적으로 함께 동참해주는 동료들 덕분에 지금까지 꾸준히 회고를 할 수 있지 않았나 싶습니다.
Q8. 해치랩스 메인넷 팀에도 최근 여러 포지션이 열리고 활발한 채용이 이뤄지고 있는데요. ‘우리 팀은 이런 팀이다!’ 혹은 ‘이런 분들이 오셨으면 좋겠다!’ 생각하셨던 것들이 있나요?
JooHyung: 블록체인 기술에 관심이 있고 새로운 블록체인 생태계를 만들어나가는 것에 관심이 있는 분이면 좋겠습니다. 저희 팀은 서로 자신의 의견을 자유롭게 이야기하는 데 불편함이 느껴지지 않는 팀입니다. 팀원들과의 합의를 통해 어떤 사람이 A라는 것을 하기로 했다면 그 사람이 그 일에 대해서는 자유와 책임을 가지고 진행합니다.
현재 저희 팀에서는 메인넷과 관련된 스펙을 잡고, 스펙을 잡기 위해 PoC를 하고 최종적으로는 구현을 하기 때문에 때문에 업무 범위가 굉장히 넓은 편이에요. 방향성을 어떻게 잡느냐에 따라 다양한 업무를 할 수 있기 때문에, 팀원들과 활발하게 커뮤니케이션을 하며 자신의 일과 관련된 사람들과 주도적으로 미팅을 잡고 논의를 해야합니다. 그렇기 때문에 커뮤니케이션을 잘하는 분이 오시면 하고 싶은 업무를 펼쳐가면서 재미있게 일할 수 있을 거예요! 붓질을 어떻게 해나가느냐에 따라서 같은 그림도 더 다채롭게 그려낼 수 있으니까요.
Joy: 개발도 잘 하지만 커뮤니케이션까지 잘 하는 주형이 이렇게 자세히 설명해주시니까 정말 귀에 쏙쏙 들어오는 것 같아요!
한번 들어가면 부서나 담당 업무를 바뀌기 쉽지 않은 경우가 더 많은데, 해치랩스에서는 회사의 목표에 부합하는 업무들에 대하여 자유롭게 소통하고 의견을 개진하면서 각자 더 기여하고 싶은 분야에 완전히 몰입할 수 있는 환경이 갖춰져 있다고 생각해요.
주형처럼 담백하게 커뮤니케이션을 하면서 서로의 성장을 함께 기뻐하고 독려해 줄 수 있는 팀원들이 앞으로도 많아지면 좋겠어요. ☺️ 긴 시간 고민하고 함께해주셔서 감사합니다 주형!
👇 해치랩스 채용에 관한 자세한 소식이 궁금하시다면, 아래 채용 페이지에서 지금 확인해보세요.
👀 웹3 업계로 이직을 꿈꾸고 계시다면, ‘웹삼뽀’ 구독으로 트렌드를 놓치지 않는 것도 중요하겠죠?