서재원 푸른중 개발자 “나는 자바스크립트 컨트리뷰터다”
[개기자의 개터뷰 #4]
개발하는 기자, 개기자. 오세용 기자가 개발자 인터뷰 시리즈를 연재합니다. 비즈니스를 이해하고, 실제 프로덕트를 만드는 필드의 개발자를 소개합니다.
네 번째 인터뷰이로 서재원 푸른중 개발자를 만났습니다. 서재원 개발자는 자바스크립트(Javascript)를 만드는 ECMA의 TC39 위원회에 총 4건의 컨트리뷰션(contribution, 기여)을 했습니다. 이 중 2건은 현재 반영됐고, 나머지 2건은 진행 중입니다. 중학교 2학년 학생이자 4년 차 개발자인 서재원 개발자를 소개합니다.
▲어색한 표정의 서재원 개발자. / 오세용 기자
– 자기소개를 해달라.
푸른중학교 2학년 자바스크립트 에반젤리스트 서재원이다.
– 몇 반인가?
2학년 7반이다.
– 몇 번인가?
25번이다.
– 오, 그럼 비밀번호가 2725인가?
아재요… 난 보안 문제로 20자리 이상의 비밀번호를 쓴다.
– 20자리 비밀번호를 쓰면 안 털리나?
확률적으로 좀 더 안전하다.
– 자바스크립트 에반젤리스트가 뭔가?
에반젤리스트는 해당 기술을 알리는 사람이다. 기술에 대한 이해도가 높아야 한다. 나는 자바스크립트 개발자고, 자바스크립트를 더 많은 사람에게 알리고 있다. 에반젤리스트 역할을 하고 있다고 생각한다.
– 명예직인가? 그냥 별명이라고 보면 되나?
그렇다.
– 개발은 언제부터 했나?
초등학교 5학년 때부터 했다. 4년 됐다.
– 자바스크립트만 했나?
아니다. PHP도 해봤고, 어셈블리(assembly), GO, 러스트(Rust), 리스프(Lisp) 등 틈틈이 다른 언어도 해봤다.
– 개발은 어떻게 접했나?
마인크래프트라는 게임이 있다. 내가 마인크래프트 서버를 만들면 이 세상에서 신이 될 수 있다. 방학 때 마인크래프트 서버를 만들다가 개발을 접하게 됐다. 당시 자바스크립트로 모바일 버전의 많은 것을 만들 수 있었고, 이 게임을 더 즐기기 위해 개발을 배우게 됐다.
자바스크립트인 이유는 사실 자바 책을 사려고 서점에 갔는데, 자바랑 자바스크립트가 같은 것인 줄 알고 자바스크립트 책을 샀다. 그렇게 자바스크립트 개발자가 됐다.
– 그때로 돌아가면 자바 책을 살 건가?
이젠 미운 정 고운 정 다 들어서, 자바스크립트 없으면 안 된다. 그때로 돌아가도 자바스크립트 책을 사겠다.
– 마인크래프트 재밌나?
그땐 재밌었다. 이제는 질렸다.
– 개기자는 중학교 2학년 때 게임 많이 했다. 또래들은 게임을 더 즐기지 않나? 왜 여가시간에 개발 공부를 하나?
맞다. 친구들 게임 많이 한다. 그런데 난 개발이 더 재밌다. 남들이 잘 안 하는걸 하는 것도 마음에 든다. 난 좀 괴짜인 듯하다.
– 혹시 친구 있나?
‘학기 친구’라는 말 알고 있나? 학기 중 학교에서 만나면 친하게 지내고, 학교를 벗어나거나 방학 중에는 연락하지 않는 친구다.
요즘은 이렇게 지낸다. 학원도 많고, 다들 시간이 없어서 학교에서만 친하게 지낸다.
– 아… 요즘은 그런가?
보통 그렇다.
– 믿는다.
…
– 요즘은 뭘 공부하나?
타입 이론과 카테고리 이론을 공부한다.
Integer, String, float, double 같은 타입(Type). 이런 타입들은 수학을 기반으로 하고 있는데, 이를 좀 더 깊이 공부하고 있다. 공변성, 반공변성 등이다.
카테고리 이론은… 함수형 프로그래밍에서 가장 중요한 것은 부수효과를 줄이는 것이다. 함수가 퓨어(pure, 순수)해야 어떤 컨텍스트에서도 실행할 수 있으니까. 하지만 입출력은 부수효과가 생기게 마련이다. 이를 개선하는 게 Functors, Monads 등이다. 이들이 카테고리 이론에서 나왔다. 카테고리 이론을 공부하면 좀 더 예술적인 코드를 짤 수 있을 것 같아 공부하고 있다.
– 학교 공부는 안 하나?
… 해야 된다. 수학 점수로 C도 받았다.
– C? 요즘은 가, 나, 다 점수가 아니고 A, B, C로 하나?
가나다? 그건 언제 시대인가?
– 아??? 가나다가 아니고… 수우미양가…
아재요… 요즘은 ABC로 한다.
– 어쨌든… 우리나라 교과과정으로 보면 공부를 안 하는 학생인가?
나도 공부한다. 중간, 기말고사 말고 수행평가 같은 건 점수 잘 나온다. 하지만 나는 반복적인 계산 등의 작업은 너무 싫더라. 선생님이 나는 계산 속도가 느리다고 하셨다.
나는 문제지를 풀지 않는다. 공식이 왜 이렇게 정의되는지 등 이론에 대해 깊이 분석하고 공부하는 편이다. 그래서 계산은 느릴 수 있고, 점수가 잘 안 나올 수 있는 것이다.
– 공부한 게 시험에 안 나왔다는 말인가?
… 개발 얘기하자.
▲마소393호 자바스크립트호 서재원 필자의 글. / 마이크로소프트웨어 393호
– 마소에 기고했는데?
무척 긴장하고 썼다. 다른 필진의 커리어를 보며, 내가 이런 사람들과 같이 써도 되는 건가 싶었다. 내 글이 실릴 수 있어 그저 감사하다.
– 무슨 주제로 썼나?
자바스크립트의 미래. ESNext에 대해서 썼다. 오픈채팅방에서 몇몇 개발자가 자바스크립트에 앞으로 이런 기능이 추가되면 좋겠다는 등의 대화를 하는 것을 봤다. 그들에게 이런 절차로 자바스크립트가 만들어진다는 것을 소개하고 싶었다.
– 굉장히 길게 썼는데?
그렇지만… 내가 쓴 원고의 절반이 날아갔다.
– 원고의 절반이 날아간 기분이 어땠나?
좀… 슬펐다. 그래도 절반이나 받아줬으니 감사하게 생각한다.
– 기고에 어려운 건 없었나?
많이 어려웠다. 거의 한 달간 글을 썼다. ESNext라는 주제의 글이 온라인상에 많지 않았다. 또, 프로포절 자체가 글 쓰는 중간에도 바뀌곤 했다. 글 쓰는 도중 내용이 변경돼 다시 쓰기도 했다.
또, 프로포절 글 자체가 간단히 아이디어만 적어뒀기에 작성자에게 자세한 내용을 물어보며 쓴 부분도 있다.
– ESNext가 뭔가?
미래의 자바스크립트다. 자바스크립트의 원래 이름은 ECMAScript인데, ECMA 재단에서 만든 범용 목적의 프로그래밍 언어다. ECMAScript를 개선하기 위해 전 세계 개발자들이 프로포절을 보낸다. ECMAScript와 프로포절을 합친 것을 ESNext라고 부른다.
– ECMAScript 커미터(Committer)인가?
나는 ECMAScript의 테크니컬 컨트리뷰터(Contributor)다. 자바스크립트 미래에 대해 이야기를 하는 회의가 매달 열린다. 이 회의에는 이해관계자가 많다. 애플, 구글 등의 개발자가 최종 승인을 하는 커미터다. 컨트리뷰터는 이들의 밑에서 제안을 하는 역할을 맡는다.
– 그럼 ECMAScript에 제안을 한 것인가?
그렇다. 자바스크립트에서 클래스 필드를 꾸미는 함수를 데코레이터(decorator)라고 한다. 이 데코레이터에 대해 몇몇 이슈를 올렸다. 지금은 커미터들이 요청한 몇몇 알고리즘을 수정하고 있다.
– 컨트리뷰터는 몇 명이나 있나?
이건 누구나 할 수 있다.
– 컨트리뷰션을 몇 개나 했나?
버그 3개, 디자인 구조 1개를 찾아 제안했다. 그중 2개가 반영됐고, 2개는 반영 중이다.
▲서재원 개발자의 반영 된 자바스크립트 프로포절 114. / https://github.com/tc39/proposal-decorators/pull/114
▲서재원 개발자의 반영 된 자바스크립트 프로포절 126. / https://github.com/tc39/proposal-decorators/pull/126
▲서재원 개발자의 진행 중인 자바스크립트 프로포절 이슈 107. / https://github.com/tc39/proposal-decorators/issues/107
▲서재원 개발자의 진행 중인 자바스크립트 프로포절 이슈 128. / https://github.com/tc39/proposal-decorators/issues/128
– 정말 흔치 않은 경험이다. 주위에서 축하를 많이 받았나?
친구들에겐 자세히 말하지 않는다. 그냥 프로그래밍을 한다고만 말한다. 어쩌다 보니 컴퓨터를 잘한다고 알려졌는데, 마우스 안 된다고 부르고, 블루스크린 뜬다고 부르고 그런다.
게임을 하다가 키보드 방향키가 안 된다며 새벽에 전화한 친구도 있다. 그 뒤로는 주위에 프로그래머라고도 잘 이야기하지 않는다.
– 컨트리뷰션한 경험을 나눌 사람이 없는 건가?
비슷한 처지의 개발자들을 온라인에서 만날 수 있다. 종종 그들과 이야기하며 아쉬움을 달랜다.
– 온라인에서 영어로 대화를 할텐데, 영어에 어려움은 없나?
통역학원에 다녔었다. 문법이 틀리긴 하지만, 사전이 있으면 대화에 큰 어려움은 없다. 메일 등 텍스트로 하는 대화는 크게 어렵지 않다.
– 고등학교는 개발을 배울 수 있는 곳으로 갈 생각인가?
캐나다 등 해외 유학을 고민 중이다. 풀어야 할 문제들이 있지만, 되도록 해외에서 공부하고 싶다. 부모님 없이 혼자 갈 생각도 있다.
– 홀로 떠나는 게 쉽지 않을 텐데?
어렸을 때 축구부에 들어가고 싶었는데, 기회를 놓치고 나니 다시는 기회가 주어지지 않더라. 이렇게 기회를 놓쳐서 후회한 적이 몇 차례 있었다. 다시는 그런 일을 겪고 싶지 않다.
▲치킨 인터뷰 중인 오세용 기자와 서재원 개발자. / 오세용 기자
– 앞으로 하고 싶은 게 뭔가?
지금처럼 프로그래밍하고 싶다. 이게 제일 재밌다.
– 마지막으로 하고 싶은 말 있나?
자바스크립트가 세상에서 제일 좋은 언어입니다. 초보자들도 쉽게 배울 수 있는 쉽고 강력한 언어 자바스크립트를 배우세요!
– 좋은 약팔이 개발자가 될 것 같다. 난 간다.
잘 가라.