트렌드

이민석 NEXT 학장 “훌륭한 개발자의 뇌 구조는?”

2014.09.29

당신이 개발자라면 아래 뇌 구조를 보면서 두 개발자 앞에 어떤 수식어를 붙일지 생각해보자. 하나는 ‘훌륭한’ 개발자, 다른 하나는 ‘안 훌륭한’ 개발자다.

DEVEIW2014_Lee_Minseok_02_question_re

▲출처 : ‘데뷰 2014’ 발표자료 (슬라이드셰어 링크)

왼쪽은 훌륭한 개발자, 오른쪽은 안 훌륭한 개발자다. 얼핏 보면 비슷한 뇌 구조다. 두 개발자 모두 비슷한 주제를 머릿속에 담고 있지만 각 주제에 따라 동그라미 크기가 다르다. 즉 중요시하는 가치가 조금 다르다. 이렇듯 훌륭한 개발자와 안 훌륭한 개발자의 차이는 생각보다 미미하다. 그런데 그 미미한 차이점이 두 사람을 전혀 다른 개발자로 이끈다. 그 작은 차이점이 무엇인지 9월29일 ‘데뷰2014’ 행사에서 이민석 NHN NEXT 학장에게 들을 수 있었다.

페북(커뮤니티)

나는 혼자 있는 것을 좋아한다? 스스로 지식을 갈고 닦겠다? 당신이 훌륭한 개발자가 되고 싶다면 고독한 개발자가 돼선 안 된다. 이민석 학장은 훌륭한 개발자가 되는 가장 좋은 방법에 “커뮤니티로 가라”라고 강조했다. 컨퍼런스, 작은 동아리, 세미나 뭐든 좋다. 아무리 멋진 롤모델이라 할지라도 우리는 그런 롤모델에게 당장 질문할 수 없다. 페이스북 CEO 마크 주커버그에게 바로 질문할 수 없는 것처럼. 대신 사람이 있는 커뮤니티에 가면 궁금한 것을 물어 볼 수 있고 내가 가진 지식도 나눌 수  있다. 이민석 학장은 “커뮤니티에 가면 멋진 개발자, 즉 선수를 보는 눈이 생긴다”라고 강조했다.

“커뮤니티에 가면 선수를 보는 눈이 생깁니다. 그러면서 내가 부족한 게 무엇인지 깨달을 수 있죠. 그러면서 선수가 되고, 선수가 된 다음에는 선수가 될 자질이 있는 사람을 찾을 수 있습니다. 그런 자질이 있는 사람을 찾으면서 훌륭한 사람이랑 일할 확률도 높아지죠.”

DEVEIW2014_Lee_Minseok_03_LetsgoComunity

호기심

훌륭한 개발자는 배우는 과정을 즐긴다. 그 과정을 즐기려면 궁금한 것이 있어야 한다. 그렇지 않으면 훌륭한 개발자로 넘어갈 수 없다. 특히 최근엔 비전문가도 개발자가 되기 좋아졌다. ‘생활코딩’이나 ‘코드카데미’처럼 따라하면서 배울 수 있는 프로그래밍 수업이 많아졌기 때문이다. 초보 개발자로 넘어가는 장벽이 없어진 셈이다. 이런 상황에서 기존 프로그래머들은 어떻게 살아남을 수 있을까. 이민석 학장은 “초보 개발자에서 다음 단계로 넘어가려면, 어려운 문제를 스스로 만들어야 한다”라고 설명했다. 회사에 다닌다면 아마 업무상 계속 새로운 문제를 접할 수 있다. 그것도 좋다. 하지만 그보다 더 좋은 것은 스스로 자신만의 문제를 만드는 것이다.

“호기심으로 자신이 풀고 싶은 문제를 찾으면 됩니다. 그 다음 과정, 즉 정답은 쉽게 찾을 수 있습니다. 구글 검색을 하든지, 스택오버플로우를 찾든지, 커뮤니티에 가서 물을 수 있겠지요. 사실 많은 문제가 이미 다른 사람들도 한번쯤 궁금해 했던 것이거든요. 그래서 문제만 우선 찾으면 답을 쉽게 찾을 수 있고요. 작든 크든 상관 없습니다. 작은 호기심으로 문제를 설정하면 되고, 그런 호기심으로 세상을 편리하거나 놀랍게 만드는 것을 기대하며 개발을 즐길 수 있습니다.”

수학 vs 꼼수

수학은 무엇일까. 이민석 학장은 이를 위해 수학의 노벨상이라고 불리는 ‘필즈상’ 수상자 세드릭 빌라니의 말을 인용했다. 세드릭 빌라니는 “수학의 대중화는 상대방의 존재 이유를 설명하면서 다른 분야 사람들과 상호 작용을 해 나가는 과정”이라고 설명한 바 있다. 즉, 수학을 소통의 수단이라고 본 것이다. 수학은 수많은 데이터를 수집해 변화를 설명할 수 있는 도구이기 때문이다. 이민석 학장은 “개발자는 수학에 대한 관심을 가져야 한다”라며 “수학의 원리를 통해 세상의 변화를 읽고 설명할 수 있다”라고 밝혔다.

개발자에게 소통은 늘 중요하다. 혼자 개발하는 것은 흔치 않기 때문이다. 큰 회사일수록 개발자 외에 기획자, 디자이너, 품질관리자, CTO 등 다양한 사람과 마주보고 일한다. 이민석 학장은 “바로 옆 개발자와도 목표가 다르고 개발 방식 다를 수 있다”라며 “하지만 상대방에게 계속 배워가면서 무엇이 필요한지, 필요한 게 그것이 맞는지 확인하면서 소통하는 연습이 필요하다”라고 강조했다.

DEVEIW2014_Lee_Minseok_06_math_is

先 데이터, 後 알고리즘

개발자라면 데이터를 알아야 한다. 만약 어떤 데이터를 정렬하려 한다고 치자. 이때 책에는 ‘A류의 데이터는 B정렬로 하라’는 식의 모범답안이 있다. 이 방법을 그대로 따른다면 생각보다 원하는 성능이 안 나올 수 있다. 데이터를 먼저 생각하고, 분석하고, 스스로 최적의 알고리즘이 무엇인지 생각해봐야 한다. 이민석 학장은 “데이터 집중해서 보고 그 데이터가 가진 잠재력이 무엇인지 먼저 생각하는 연습을 해야 한다”라고 조언했다. 세상에는 너무나도 많은 데이터가 존재하고, 책에 나온 방법 외에도 다양한 해결책과 알고리즘이 있기 때문이다.

DEVEIW2014_Lee_Minseok_05

▲ 이민석 NHN NEXT 학장

다음은 이민석 학장과 청중들 간 오고간 문답이다.

질문 : 최근 새로 배운 프로그래밍 언어가 있나?

나는 임베디드 개발자다. 보통 C언어와 어셈블리 언어를 많이 사용했다. 최근 책 2권을 구매했다. 하나는 자바스크립트, 또 하나는 유니티 책이다. 아직 제대로 시작하지는 못 했다. 하지만 자바스트립트, 스위프트 언어에 계속 관심을 가지려 한다. 또, 데이터가 중요해지고 있기 때문에 R언어에도 관심을 갖고 공부하려 한다.

질문 : 소프트웨어를 전공하고 취업을 준비하고 있다. 그런데 소프트웨어 개발자를 모집하는 자리에 ‘전공불문’이라고 명시해 놓은 곳이 꽤 있다. 조금 억울하기도 하다. 이런 기업 채용정책에 대해 어떻게 생각하시는가?

그런 곳은 진정한 소프트웨어 회사가 아니라고 생각한다. 지원자가 입사하면 무엇을 개발할지, 그 개발을 위해 어떤 스킬이 필요한지 명시돼 있어야 소프트웨어 회사이다. 그런 기업은 “당신은 그동안 무엇을 했는가”라고 질문한다. 그런 기준이 없는 회사는 과거에 무엇을 했는지 안 물어보고 “당신은 무엇을 할 수 있는가”만 물어본다. 소프트웨어 개발자는 꼭 소프트웨어 회사에 갔으면 좋겠다.

질문 : 요즘 융합이란 가치가 중요해지고 있다. 융합에 대처하기 위해 개발자가 생각해야 하는 자세는 무엇일까?

새로운 가치관을 가지는게 좋을 것 같다. 과거에는 하드웨어를 먼저 생각하고 그 하드웨어를 위한 소프트웨어를 생각했다. 이제는 바꿔야 한다. 사람을 먼저 생각하고 그 사람이 필요한 소프트웨어를 생각해야 한다. 그 다음 그런 소프트웨어와 가치를 구현하기 위해 어떤 하드웨어가 필요한지 생각해봤으면 좋겠다.

DEVEIW2014_Lee_Minseok_02_answer

▲출처 : 데뷰2014 발표자료 (슬라이드셰어 링크)

j.lee.reporter@gmail.com

오픈소스 기술, 프로그래머의 삶 그리고 에듀테크 분야에 관심이 많습니다. 작은 변화라도 실행하고 노력하려는 사람들을 응원하고, 그러한 분들의 이야기를 더 많이 나누고 싶습니다 :)