학교에선 못 배우는 것들

컴공과에서는 엔지니어로서의 커리어에 기본이 될 수 있는 원칙과 지식을 가르쳐 줍니다. 그런데 몇몇 정말 성공적인 파운더들은 대학교 자퇴생이라는 이 불편한 사실?! 즉 학교 과정과 스타트업에 필요한 경험은 별개일까요? 네. 많이 별개입니다.

하나의 예이긴 하나, 우리 팀의 경우에도 꽤 이 현상이 도드라집니다. 많은 지원서와 인터뷰를 거쳐 현재 Lab80에서 개발 분야에 채용된 사람 중에 일반적인 4년제 대학에서 컴공과를 전공한 사람은 없는 상황. 연세대에서 경영을 전공한 준희님과, NHN NEXT 에서 현대적이고 실무적인 교육을 받은 우진님 두 분이 현재 우리 개발팀을 이루고 있어요.

michael2
하다하다 보니 이렇게 되었다. 왜지?

매주 누군가에게 유용한 소프트웨어를 만들고 고안하고 수정하고 고치고 배포하는 스타트업 엔지니어가 알아야 할 것을 컴공과 학생들은 많이 모르고 있다는 얘기를 자주 하던 차…

연세대학교 컴공과의 황승원 교수님께서 가르치는 데이터 구조 수업에서 특강을 할 기회를 마련해 주셨네요. 감사합니다! 마침 Lab80은 데이터와 앱을 아우르는 엔지니어링을 특기로 하고 있을 뿐 아니라 이 수업과 마찬가지로 비전공자를 환영하는 팀인지라, 좋은 기회가 될 것 같았습니다.

Startup Engineering

그럼 강의를 맡았던 마이클, 준희님, 우진님에게 물어봅니다.

강의를 통해 학생들에게 강조하자 했던 주제가 있다면?

전반적인 주제는 기획, 회의, 스펙, 테스팅, 배포 등의, 우리가 매일 하는 일이지만 컴퓨터 과학 학부에서는 거의 다루지 않는 것들에 관해서 이야기하는 것이었다. 학부 수업을 통해 탄탄한 기초를 닦을 수 있지만, 동시에 실무에 필요하지만 배우지 못하는 부분이 많으므로 아 이런 차이가 있구나, 라는 감을 얻기를 원했다.

그 외에, 특히 학부생들이 관련 분야에서 일을 시작한 지 얼마 되지 않아 시스템의 큰 부분(데이터, 앱)을 담당하고 있는 준희와 우진을 통해서 동기부여가 되길 바랐다. 학부 수업을 듣는 학생의 대부분이 비전공자였기 때문에, 경영학을 전공하고 독학을 통해 개발자로 성장한 준희의 이야기가 특별히 더 와 닿을 것이라 기대했다.

반면에, 대학원생들은 더 심화한 전공지식을 가지고 있기 때문에 다른 메세지가 필요했다. 대학원에서 배우는 복잡하고 생소한 기술들이, 가치 있는 시스템을 만드는 경우에 있어서는 그 활용성이 떨어질 수 있음을 알려주고, 우리가 유저에게 금융 정보를 제공하는 과정 대부분이 생각보다 아주 간단한 기술들로 만들어져있다는 것을 말해주고 싶었다.

michael1
What do the dropout founder know?

N-1차원에 사는 생물은 N차원에 대해서 죽었다 깨어나도 상상하지 못한다. 1차원에 사는 학생들에게 2차원에 관해 설명하겠다는 기분으로 준비했다.

커리큘럼 밖의 세상에 눈을 떠라

나는 학부 때 남들 다 하는 경영대 학회가 아니라 제품 디자인 학회, EYES를 했다. 일반적인 경영대 학회가 마켓 상황이 이러저러하니 요런 프로덕트를 만들어 팔면 부자가 됩니다! 식의 비즈니스 내러티브를 짜는 곳이라면, EYES는 “그래서 요런 프로덕트를 어떻게 만들건대?”에 대해서 고민하는 곳이었다.

80/20 룰에 대해서 아는가? 내가 마케팅 수업에서 전부라고 생각했던 “기획” 단계는 “개발”도 아니고 심지어 “프로토타이핑” 단계에 비교해도 상당히 작은 부분이었다. 상상도 못하고 있던 missing 20%에 대해 눈을 뜬 경험은 내 전공을 잊고 학회 활동에 매진하게 하였고, 정신을 차려보니 Rhino로 만든 모델링을 3d printer로 출력하고 있었다(…)

junhee1
3D printing at EYES

EYES에서의 경험은 자연스럽게 나를 Lab80로 이끌었고, 난 다시 새로운 missing 20%에 눈을 뜰 수 있었다. 실제 프로덕트를 만드는 것은 역시 완전히 다른 이야기였다.

요약하면, (경영학부, 기획 - 디자인학회, 프로토타이핑 - Lab80, 실제 서비스 개발)로 이어지는 내 경험에서 내가 느낀 것 (“N+1차원에 눈을 떠라”)을 전달하는 게 목표였다.

상상도 못 할 단위의 갭

데이터도 마찬가지다. 프레젠테이션에 들어가는 데이터, 프로토타이핑에 들어가는 데이터, 프로덕션에 들어가는 데이터 사이에는 상상도 못 할 단위의 갭이 있다. 그걸 학생들이 좀 미리 알고, 수업을 듣는 것에 추가로 그 이상을 경험하고 배우려고 노력해보길 바라는 마음으로 발표를 준비했다.

두유노 자바스크립트?

Front-end를 개발하면서 내가 학부에서 공부하는 친구들과 이야기하면서 가장 많이 느낀 것은 javascript라는 언어가 얼마나 강력한지 잘 알지 못한다는 것이었다. 단 몇 줄이면 서버를 돌리고, 대규모 접속도 잘 처리하고, 브라우저에서 일어나는 여러 가지 일들도 잘 처리하고, 데이터 분석과 Visualization을 동시에 할 수 있으며, 심지어는 앱도 만들고, Command line에서 shell script도 실행할 수 있을 정도로 강력하고 모두 알아(-ㅆ으면 좋겠어-)야 한다! 라는 것을 알려주고 싶었다.

woojin3
Java isn't cool. You know what's cool?

개발은 커뮤니케이션이다

그리고 (혹시나 있을) Front-end engineering에 관심이 있는 학생을 위해 처음에 간과하기 쉬운 몇 가지를 이야기하고 싶었다. 먼저 Front-end engineer에게 중요한 건 Programming Skill에 앞서 Communication Skill이라는 것이다. Front-end engineer가 일을 제대로 하려면, Product Manager와 소통을 해 여러 가지 명세를 명확히 해야 하고, 최대한 Communication을 통해 Product Manager와 같은 생각을 공유하는 것이 좋다.

또 Back-end engineer와도 데이터 처리와 데이터 형식에 관한 끊임없는 소통이 필요하다. 이 부분은 내가 처음에 개발자로 와서는 생각하지 못하고, 하루종일 말만 하고 코드는 한 줄도 짜지 못한 숱한 날들을 지나며 알게 된 부분이다. 그래서 미리 핫식스를 구비해둬라!라는 차원에서 이야기하고 싶었다.

woojin4
There are whole other sides to engineering

UX의 디테일은 개발자의 손끝에서도 나온다

또 UX Designer가 있을 수 없는 소규모 스타트업 환경에서, 내가 내린 자잘한 결정이 유저의 경험에 큰 영향을 미친다는 사실을 알려주고 싶었다. 그 UX 세계는 복잡하고 미묘하며 심지어는 정해진 답도 없다. 어떻게 만드는 것이 유저가 사용하기 편할지, 어떤 Behavior를 유저는 당연하다고 느낄지, 여러 잘 만들어진 사이트를 보면서 배우고 느끼는 것이 중요하다.

요즘 들어 본 예로 아마존의 호버 드랍다운 메뉴가 있다. 아마존에 들어가서 메뉴위에서 마우스를 내려놓고 있으면 드랍다운 메뉴가 열리지만, 위에서 빠르게 지나다니면 열리지 않는다. 아마존은 물론 큰 기업이니 이거 하나 만드는데도 많은 리서치와 투자가 있었겠지만, 이런 사소한 부분을 발견하기 쉬운 것도 결국 구현하는 것도 Front-end engineer라는 거다. 스타트업 환경에선 더더욱 그렇다. 이런 뭔가 당연하지만 학교에서는 미처 생각해 보지 못했을 것들을 이야기하고 싶었다.

woojin1
Amazon's Hover Dropdown Menu

실제 특강을 하고 나니 드는 생각은?

아주 즐거운 강의였다. 좋은 발표를 해 준 우진과 준희가 자랑스러웠고, 강의에 고무된 학생들이 좋은 질문들을 해온 것도 좋았다. 어떤 학생들은 같이 사진을 찍자고도 말했다! 약간은 어색했지만, 기꺼이 응했다.

또한, 강의를 통해 지난 2015년 동안의 팀의 성취를 돌아볼 수 있어서 자랑스러웠다. 2015년이 시작할 때는 세 명에 불과했었던 팀이, 훌륭한 인재를 발굴하고 키워내는 과정을 잘 견디는 와중에 효율적이고 지속 가능한 소프트웨어 개발 방법론까지 정립했다는 것이 믿기지 않을 정도다. 많은 업적을 빠르게 성취한 한 해였고, 강의를 통해 그 성과를 다시 돌아볼 수 있어서 더 좋았다.

일단 졸업한 지 얼마 되지 않은 모교 교단에 섰다는 것이 영광이었다.

서울 시립대 이후로 두 번째 강의였는데, 스스로 강의를 준비할 때마다 내가 오히려 많이 배우는 것을 느낀다. 일어난 사실들을 그룹핑해서 스토리를 만들어내는 것은 지난 시간을 돌아보고 정리하게 해주는 것뿐만이 아니라, 앞으로의 커리어를 계획하고 고민하는 데에도 큰 도움이 된다. 강의하도록 도와주신 황승원 교수님과 마이클에게 감사합니다.

두 명의 학생들이 나에게 질문을 해왔는데, 그 중 한 명은 통계학을 공부하다 컴퓨터 과학으로 관심이 생기게 된 상황에서, 관련 수업을 듣는 것 이외에 다른 무언가를 시작할지 말지를 고민하는 상황이었다. 아마 비슷한 고민을 하고 있으면서 질문을 하지 않은 학생들이 더 많을 것 같은데, 더 많은 학생이 off-the-track을 두려워하지 않았으면 좋겠다.

정량적으로 이력서에 남는 정규 제도 (학교 수업) 이외의 것에 시간과 노력을 투자하는 것을 두려워 하지 않고 자신이 진심 좋아하는 것을 좇아 시간을 쏟아보는 경험을 해보길 바란다.

junhee2
The 80/20 rule, the bigger picture

오랜만에 학생처럼 교정을 거닐고, 많은 사람 앞에서 발표한 모든 순간이 좋은 경험이었고 영광이었다.

강연을 준비하면서 여러 복잡한 이야기들을 몇 장의 슬라이드에 구겨 넣게 되었는데, 정말 좋은 경험이었다. Front-end 개발자에게 필요한 여러 가지 역량들이 정리되면서, 내가 어떤 면에서 잘하고 있는지, 어떤 면에서 아직 부족한지 느낄 수 있던 시간이었다.

학생들이 꽤 긴 강연을 관심을 가지고 들어주어서 감사했다. 다만 아쉬운 점이라면, 내가 이야기하는 분야가 학생들 전공과 관련도 없고 잘 모르는 주제였을 텐데, 처음에 너무 관심을 끌 만한 요소가 부족하지 않았나 하는 점이다. 뭔가 연봉(데이터 개발자가 Front-end를 하면 연봉이 천장을 뚫는다! 파운더들: 응?! 응 뭐 좋다)같은 자극적인 주제로 서두를 시작했다면 더 효과적으로 내 생각을 청중에게 전달할 수 있었을 것 같았다.

woojin2
Now go study Javascript ;)