16 Aug 2016

박진서 - “인생의 절반을 개발하며 보냈어요”

평소와 다름없던 어느 날, 페이스북 타임라인을 보다 눈이 번쩍 뜨이는 프로젝트를 발견했습니다. 알고리즘이 구동되는 모습을 인터랙티브하게 보여주는 개인 프로젝트였죠. 1학년 때 알고리즘을 공부하면서 이 사이트와 함께했다면 알고리즘에 대해서 좀 더 쉽게 이해할 수 있지 않았을까 하는 생각도 들었습니다(물론 지금도 잘 모르지만요).

방학을 맞아 한국에 온 진서님을 급히 붙잡아 인터뷰했습니다. 알고리즘 비주얼라이저는 어떤 이유로 만들게 된 것일까요? 구글 오퍼의 진실은? 진서님에게 궁금했던 점을 오늘 모두 파헤쳐보겠습니다.

http://i.imgur.com/VZ14Y9R.png

Jason Park 님을 처음 알게 된 프로젝트. Jason이란 영어 이름은 ‘json’에서 왔다고 합니다.

Imgur

간단한 본인 소개 부탁드립니다.

4년 반 동안 고등학교를 세 군데 다녀야 하는 평범한 학생입니다. 몇 년 안 살았다 보니 인생의 반 동안 코딩을 했지만 할 줄 아는 것이 없어 후회 중입니다(네?). 일 벌이기를 좋아하고 터트리는 것도 잘합니다.

인생의 반이라뇨… 언제부터 개발을 시작하신 건가요?

초등학교 3학년 때 개인 홈페이지를 만들고 싶다는 생각이 발단이었어요. 그때는 그거 하나 만들자고 정말 열정적으로 공부했던 것 같아요. 전부터 그림 그리기나 직접 손으로 만드는 걸 좋아했거든요. 성취감을 많이 느끼는 편인데 오래 못 가요. 그래서 계속 새로운 것을 배우고, 만들었어요. 요즘엔 게을러서 그렇게 하지 못하지만요.

개발공부도 초등학교 3학년 때부터 쭉 해오신 건가요?

네. 근데 하나를 깊게 파기보단 여러 가지를 넓게 공부하는 타입이었어요. HTML, Visual Basic, 그다음엔 PHP, C, Java, Javascript…. 호기심이 많아서 이것저것 해보긴 했는데, 깊게 파진 않았어요. 알고리즘은 대회 하면서 좀 깊게 했네요. 경쟁심이 강하고 후회가 많은 편이라 저 스스로 실망하기 싫어서 알고리즘은 깊게 팠던 것 같네요.

무언가를 만들어서 성취감을 느끼는 것이라면 프로그래밍이 아닌 다른 쪽으로 갈 수도 있겠네요. 만든다는 개념은 굉장히 넓은 개념이잖아요?

아 네. 그래서 저는 화학, 특히 생화학 쪽을 공부해보고 싶어요.

그렇군요. 진서 님은 알고리즘 비주얼라이저를 만들어서 큰 호응을 얻으셨죠? 그 얘기 좀 해주세요.

Imgur

알고리즘 비주얼라이저. http://parkjs814.github.io/AlgorithmVisualizer

네. 이번에 알고리즘 비주얼라이저를 개발할 때, 만들고 보니까 사실 조금 조잡하게 느껴지더라요. “이걸 보면서 누가 배울 수 있을까?” 란 생각이 들어 포기하려 했어요. 그래도 “거의 완성했으니까 어떻게든 되겠지.”라며 출시한 건데 생각보다 호응이 좋더라고요. 놀랐습니다.

왜 만들었나?

순전히 제가 알고리즘 배우기 어려워서 만든 거에요. 다른 개발자분들이 컨트리뷰트 해주시면 좋을 것 같다는 생각에 지금 구현되어있는 알고리즘의 대부분은 알지도 못한 상태로 개발했거든요. 알고리즘의 진행 과정을 단계별로 볼 수 있으면 이해하기도 쉽고 기억에도 오래 남겠다 싶어서 만들었어요.

전엔 이런 프로그램이 없었나요?

정적인 데이터로 미리 만들어놓은 애니메이션을 보여주는 프로그램은 몇 개 있었어요. 이건 알고리즘을 구현해놓은 코드를 직접 시각화해주는 동적인 프로그램 이라는 것이 다른 점이죠. 근데 평이 안 좋았던 부분은, 알고리즘은 보통 Javascript로 구현하지 않고 C나 JAVA로 하잖아요. 근데 Javascript로 돌아가는 것이 사람들 입장에서는 좀 아쉬웠나 봐요.

따로 홍보를 하신 건가요?

페이스북으로 ‘생활코딩’ 그룹과 ‘Hackathon Hackers’ 그룹에 알고리즘 시각화 프로그램에 대한 소개 글을 올렸었어요. 순식간에 따봉 수천 개를 받은 덕분에 Github Trending 일간 2위까지 올라갔었어요. 다시 이런 영광이 올까 싶기도 하고 기분이 좋더라고요.

Pull Request는 많이 왔어요?

정말 많이 왔어요! 저는 유지 보수를 잘 하지 않는 타입인데, 컨트리뷰터 분들이 함께 해주셔서 어쩔 수 없이(?) 하게 되더라고요. 처음엔 열 개도 안 되는 알고리즘만 넣어두고 출시했는데, 지금은 다른 분들이 많이 추가해주셔서 수십 개가 되었어요. 한국 분보다는 외국 분들이 더 많네요. 컨트리뷰터 분들이 이 프로그램의 3분의 1 정도를 개발해주신 것 같아요. 특히 세르비아와 인도 개발자분들이 정말 많이 기여해주셨더라구요.

만드는 데에는 얼마 정도 걸린거죠?

처음 내놓기까지는 밤낮으로 개발해서 2주 정도 걸렸어요. 생각보다 별건 없었어요. 기본 기능만 넣어서 출시한 거라…

간단히 원리를 설명해주세요.

Imgur

Javascript가 브라우저에서도 돌아간다는 점을 이용해서 서버 사이드 따로 없이 웹 디버거 느낌으로 알고리즘을 시각화하고 싶었어요. 오른쪽 부분이 코드를 작성하는 부분이고 왼쪽이 그래프와 표 등으로 시각화를 해주는 부분이에요. 사이드 메뉴에는 저와 컨트리뷰터분들이 구현해놓은 알고리즘들과 Scratch Paper라고 말 그대로 끄적끄적 알고리즘을 직접 구현해볼 수 있는 공간이 있어요. 알고리즘을 자동으로 인지해서 시각화를 해주는 것은 제 실력으로는 불가능에 가까우므로, 미리 정의해놓은 Tracer 클래스들(GraphTracer, Array2DTracer, LogTracer 등)에 있는 메소드를 알고리즘을 구현한 코드 사이사이에서 호출함으로써 알고리즘에 사용된 주요 변수의 값이 변했다는 것을 알려줘야 해요.

UI 디자인은 직접 하신 건가요?

제가 디자인 감각이 없는 것도 있고 JetBrains사 광팬이라서 색감이랑 UI를 베껴왔어요.

이름은 그냥 알고리즘 비주얼라이저인가요?

네, 제가 네이밍 센스가 없어서…

몹 원론적인 무언가를 만든 것 같네요.

하하. 겉으로 보면 되게 있어 보이지만 코드 뜯어보면 실제론 별거 없어요. 크게 보면 Tracer 클래스들과 코드 eval하는 부분, 그리고 UI 다루는 부분이 다에요.

컨트리뷰터분들과 협업을 하면서 프로젝트에 생긴 변화는?

이슈와 풀리퀘를 받으면서 저 스스로는 생각하지 못했던 창의적인 기능들이 여러 개 추가되었어요. UI도 여러 부분 개선 되었구요. 그리고 원래 Javascript ES5로 작성했는데, 한 컨트리뷰터 분께서 ES6로 갈아타면 훨씬 깔끔하게 정리될 거라고 하시더라고요. 그래서 그분과 1~2주간 프로젝트 전체를 재작성하느라 죽는 줄 알았네요. 그리고 제가 맛깔나는 영작을 잘 못 하다보니 역시 컨트리뷰터분들이 README와 WIKI도 절반 정도 써주셨어요. 그러고 보니 제가 Github을 제대로 써본 게 이번이 처음이네요.

하기 싫어서? 아니면 그럴 기회가 없어서?

자잘한 프로젝트들을 몇 개 올렸었는데 Pull Request가 올만큼 흥미로운 프로젝트가 없었던 거 같아요. 하하… 그래서 이번에 첫 풀리퀘를 받았을 때 되게 감동적이었어요.

랭크드인(한국 개발자 오픈소스 랭킹) 순위가 꽤 높겠는데요?

가입 안 되어 있는데… 잠시만요… (가입 완료)… 헛!

Imgur

가입 하자마자 2등을 먹어버린 진서님

하하… 알고리즘 비주얼라이저 얘기는 이쯤 하고 다음 질문으로 넘어갈게요. 진서 님을 극적으로 성장시켜준 사건을 꼽는다면 무엇이 있을까요?

처음으로 큰돈을 벌었을 때? 불법이라고 말할 수도 있는데… 하하. 일단 보여드릴게요. 잠시만요. 이것도 참 마음 아픈 스토리가 있는데…아! Remove 되었네요. 정책 위반으로…

Imgur

그를 극적으로 성장시켜준 작품은 리무브 되었습니다.

‘Taskbar 7’이라는 앱인데, 윈도우 7의 상태바를 안드로이드에 옮겨둔 거예요. 윈도우7을 그대로 빼다 박아서 내려간 것 같아요. 1달러로 올렸어요.

1달러? 얼마 정도 팔렸어요?

여기 나와 있네요. 1,900만원?

오늘 커피 진서님이 사세요.

Imgur

하하. 근데 제가 이런 스타일의 앱을 처음으로 냈었던 건데, 어떤 미국인이 이걸 똑같이 카피해서 내놓았더라고요. 그쪽은 Window8 스타일의 무료 앱이었어요. 전체 무료 앱 중 1위도 했더라고요. 별점 1개 줬습니다.(ㅋㅋㅋ) 이 앱이 나오고 나서부터 수익이 확 줄었거든요.

언제 만든 건가요?

중2 때요. 돈은 유학비용으로 썼어요.

돈맛을 느꼈나요.

돈맛이 아니라 쓴맛을 느꼈죠. 인생의 쓴맛.

9x년생 개발자에게 “이것만은 확실히 추천해줄 수 있다!” 라고 말할 수 있는 것은?

음. 개인 프로젝트를 진행할 때 스스로 불확실해져서 그만둘까 고민되어도, 일단은 끝까지 해보시라고 말씀드리고 싶어요. 저의 경우에는 그게 도움이 되었었거든요. 그리고 경제적으로 괜찮다면 유학을 떠나라…? 꼭 외국이 한국보다 나은 환경이라서가 아니더라도 두 개 이상의 문화를 경험하면서 훨씬 더 폭넓은 사고를 할 수 있는 것 같아요.

미국 얘기하면 이 얘기 안 할 수 없죠. Google Offer의 진실은 뭔가요?

Imgur

아… 그것도 최근에 멘탈이 나간 이유 중 하나예요. 인력 풀에 노출되지 않은 인재들을 발굴하는 구글의 부서가 따로 있더라고요. 그곳에서 연락이 와서 이력서도 넣고 스카이프로 이야기도 나누었는데, 최종적으로는 고등학생이라는 이유로 무산되었어요. 제가 대학생인 줄 알고 연락했대요. 고등학교 졸업하고 다시 이야기하자고 하더라고요.

그렇군요. 개발을 처음 배울 때로 돌아간다면 어떻게 공부할 것 같아요?

나름 인생의 반 정도를 개발하며 보냈는데, 얕고 넓게 공부했거든요. 이게 좀 아쉬워요. 완벽하게 이해하고 넘어갔어야 했는데 호기심에 이것저것 조금씩만 만져봤거든요. 개발을 처음 배울 때로 돌아간다면 뭐를 배우던 ‘나, 이 언어 만질 줄 안다!’ 라고 자신 있게 말할 수 있을 때 까지 깊게 공부할 것 같아요.

성장하기 위해선 무엇이 가장 중요하다고 생각하나?

Imgur

진서님의 숨겨진 거만함

유형적인 것이든 무형적인 것이든 어떠한 보상을 얻을 수 있어야 꾸준히 성장할 수 있다고 생각해요. 그리고 저의 경우엔 그것이 오랜 기간이 지나야 얻을 수 있는 것이 아니라 단기간 내에 얻을 수 있는 것이어야만 하구요. 저는 큰 비전만 보고 오랫동안 보상 없이 따라가는 건 잘 못해요. 단기적인 보상이 있어야 꾸준히 노력하는 것 같아요.

창업 생각도 있을 것 같은데.

아이디어만 있다면 기꺼이 하겠죠. 사실 제가 지금 어느 작은 스타트업에 있기는 한데, 아직 내놓은 서비스는 없어요.

이제 거의 막바지네요. 진서님은 평생 개발자로 살고 싶은가요?

아뇨. 누가 시켜서 하는 개발은 재미있게 할 수가 없어서 평생 개발자로 살다가는 단명할 것 같아요. 개발자로 5년 정도 지내다가 창업을 해서 제가 원하는 프로젝트를 거창하게 해보고 싶어요.

하하. 마지막으로 9X년생 개발자들에게 한마디 부탁드립니다.

머릿속에 가끔 스쳐 지나가는, 하찮아 보이는 아이디어도 조금 더 다듬어보면 생각보다 괜찮은 결과물이 나오는 경우가 많은 것 같아요. 자신이 원하는 프로젝트를 하는 과정에서 새로운 언어나 기술을 배우는 게 가장 즐겁게 배우는 방법이기도 하구요. 저도 버리려던 아이디어를 구현해보니 과분하게도 여러 곳에서 인턴 제의도 받고 인터뷰까지 하고 있네요. 나중에 9XD 모임에서 뵐 수 있으면 좋겠습니다!


Imgur interviewer

모기에 뜯겨가며 인터뷰 한 3인방. 이 인터뷰가 글을 읽으시는 분들께 조금이라도 도움이 될 수 있기를 바랍니다!

Interviewee

박진서 / parkjs814@gmail.com

Interviewer

진유림 / jayjinjay@gmail.com 배상현 / shiftingyou@gmail.com


Tags:

Comments: