코드박스 인턴 생활기
제가 코드박스에 인턴으로 입사하여 근무한지도 벌써 5개월이 지났습니다. 근무하며 배운 것들이 많아 좋았는데, 벌써 1월을 마지막으로 학교로 돌아가게 되어 아쉬움이 남습니다.
작년에 휴학 도중 인턴 생활을 결정했을 때가 떠오릅니다. 그때 당시만 해도 한창 사람들의 블록체인에 대한 관심이 정점을 찍을 때이었습니다. 새로운 기술에 대해서 공부하고 회사 생활을 미리 경험해보고 싶기도 하던 차에 코드박스에서 인턴을 구한다는 소식을 듣고 지원하게 되었습니다.
인턴을 마치며 ‘회사에서 무엇을 배웠나’ 에 대해 생각해보았는데, 실제로 공부한 것과 공부 외에 경험해본 것 둘로 나눠서 얘기해볼 수 있을 것 같습니다.
우선, 코드박스에서는 새로운 컴퓨터 프로그래밍 언어와 툴을 공부할 수 있었습니다.
회사에 들어가 처음 공부한 것은 Rust였습니다. 학교 수업에서 OCaml을 배운 적이 있어 타입 추론에 당황하지는 않았고, C++와 비슷한 문법을 가지고 있어서 빠르게 적응할 수 있었습니다. 개인적으로 Rust라면 학교에서 가르쳐도 되지 않나 싶은 생각도 들었습니다. Concurrent programming은 항상 많은 어려움이 따르는데, Rust에서는 상대적으로 안전하게 코딩할 수 있기에 Production level에서 사용하기에도 적절하지 않나 하는 인상도 받았습니다.
두 번째로 공부한 것은 TypeScript였습니다. 저는 JavaScript를 몹시 싫어하는데, TypeScript와 함께라면 어느 정도 사용할 수 있을 것 같다는 생각은 듭니다. 물론 JavaScript가 좋아질 리는 없지만요.
세 번째로 공부한 것은 git이었습니다. 어느 대학교든 git을 한 번 쯤 쓰게 시킬 겁니다. 하지만 저는 대학교에서 git을 써보면서 rebase조차 사용해본 적이 없고 commit message를 열심히 적어본 적도 없어 제대로 뭔가를 알고 쓴다는 기분은 들지 않았는데 코드박스에서는 git 사용법을 체계적으로 배울 수 있었습니다.
이렇게 Rust, TypeScript, git를 공부하며 저는 코드박스의 개발자가 되었습니다. 이 셋만 알고 있으면 여러분도 기여할 수 있습니다. 코드박스에서는 코드체인이라는 블록체인을 오픈 소스로 개발 중이니, 관심 있으신 분들은 한 번 살펴보세요. 글 아래에 링크가 있습니다.
이제 경험해본 것을 이야기해보겠습니다. 코드박스에서 단순히 학생으로서는 체험해보기 쉽지 않은 프로젝트에 기여할 수 있었습니다.
흔히들 학부생은 두 부류가 있다고들 얘기합니다. 수업을 성실히 듣고 잘 따라가는 학생이 있고, 힙한 문화에 관심이 있어 여러 가지로 찾아보고 오픈 소스 프로젝트에도 기여하는 학생이 있다고들 하더군요. 물론 둘 다 해당하는 능력자 친구들도 있지만, 저의 경우에는 전자 90%, 후자 10% 정도의 학생이어서 지금까지 오픈 소스 프로젝트들에 관심만 두고 입문 장벽이 높다고 생각해 직접 도전해본 적이 없었습니다.
그런데 이번 경험은 그런 생각을 버리는 데 많은 도움이 된 것 같습니다. 큰 프로젝트를 한 번 경험해보고 나면 보는 눈이 바뀝니다. 앞으로는 한 70%, 30% 정도의 학부생이 될 수 있지 않을까 생각하게 되네요. 물론 코드를 잘 읽고 잘 짜는 것은 아직도 어렵기는 하지만 말입니다.
또한 일련의 경험으로부터, 블록체인 프로젝트는 비단 백서만으로 모든 것이 결정되지 않는다는 것을 알았습니다. 블록체인을 현실에서 사용하기 위해서는 메인 넷만 런칭한다고 되는 것이 아니라, SDK를 비롯해 다양한 툴이 필요하다는 것도 알았습니다. 비트코인과 같은 메이저한 블록체인은 다양한 구현체와 툴들이 존재하지만, 새로운 블록체인 프로젝트는 그렇지 않기에 타겟에 따라 방향성을 조정한 툴이 필요할 수도 있다는 것도 알게 되었습니다.
인턴을 신청할 때만 해도 블록체인은 비트코인처럼 잘 런칭해서 거래소에서 사고 팔면 되는 것이 아닌가 싶었지만, 지금은 그렇지 않다고 얘기할 수 있을 것 같습니다.
이제 회사에 대해서 이야기해볼까요.
회사 분위기는 매우 자유롭습니다. 솔직히 이렇게 자유로워도 되나 싶기도 한데, 이건 제가 너무 자유롭게 행동해서 그런 것 같습니다. 적어도 회사 분위기 때문에 스트레스를 받는 경험은 없었습니다. 출근 시간도 8시에서 11시로 자유롭기 때문에, 아침에 더 자고 싶을 때는 늦게 출근하고 약속이 있거나 일찍 깨어났을 때는 일찍 출근할 수 있어서 좋습니다.
그리고 팀원 분들도 친절하십니다. 처음 회사에 왔을 때는 Rust도 git도 잘 못 다뤘었지만, 하나 하나 친절하게 알려주셔서 지금에 이를 수 있었습니다.
제가 있었던 엔진 팀의 경우, 블록체인 세미나를 적어도 2주에 한 번 가집니다. 돌아가면서 한 주제에 대해서 공부해서 발표하는데요, 저는 Schnorr signature scheme에 대해서 세미나를 했던 기억이 나네요. 세미나를 듣다 보면 블록체인 분야에서 어떤 연구가 이뤄지고 있는지 인사이트를 기를 수 있고, 여러 분야가 다양하게 사용된다는 것을 느낄 수 있습니다.
마지막으로 지원에 대해서. 새로 오시는 분들에게는 새 회사 노트북이 지급됩니다. XPS 신형을 쓸 것인지 맥북 신형을 쓸 것인지 고를 수 있습니다. 인턴을 하고 싶은데 멀리 계신 분들에게는 숙소도 제공됩니다. 만약 멀리 있어서 인턴을 고민하고 있다면 주저하지 마세요!
그렇게 약 5개월 남짓 코드박스에서 일하면서 코드체인의 Transaction Type 추가와 Asset Exchange Protocol (Transaction with Order), MemPool Refactoring 등에서 기여했습니다.
관심 있으신 분들은 꼭 한 번 아래의 링크들을 살펴봐 주세요. 코드박스는 언제나 열려있습니다. 인턴, 해보시지 않을래요?
Kodebox HP: https://kodebox.io/
CodeChain HP: https://codechain.io/
CodeChain Repositories: https://github.com/codechain-io