간단한 자기소개 부탁드려요.
아마 개발자 분들한테는 제로초라는 이름으로 더 익숙하실 거예요. 저는 지금 스타트업에서 CTO로 일하고 있고 공개소프트웨어센터라는 정부기관에서 글로벌 오픈소스 전담 개발자로 일을 하고 있습니다. 그리고 <Node.js 교과서>를 썼습니다.
사람들이 자바스크립트를 선택하는 이유는 뭐라고 생각하시나요?
자바스크립트가 사실 좋은 언어는 아니에요. 그런데 운이 좋은 케이스에요. 프로그래밍 언어라는 게 한 분야에서 독점을 한다는 게 엄청 힘들어요. 지금 서버 쪽만 봐도 파이썬, 루비, C# 이런 언어들이 각축을 벌이고 있지만, 웹 브라우저 단에서는 자바스크립트가 독점이거든요.
웹이 흐름을 타다 보니 웹쪽으로 자바스크립트 개발자들이 많이 유입이 되었는데, 그러다 보니 생태계가 구축되면서 거기에 다시 사람들이 모이고 회사들이 그 언어를 쓰고, 이런 선순환들이 반복되면서 자바스크립트가 인기가 많아졌죠. 거기다 자바스크립트 개발자들이 많다 보니까 사람들이 프로그래밍 언어를 바꾸고 싶어하지 않거든요.
만약에 내가 웹 브라우저 개발자인데, 서버 쪽 개발을 하려고 자바를 배우느니 자바스크립트로 서버를 만들면 어떨까? 자바스크립트로 앱을 만들면 어떨까? 데스크탑 프로그램을 만들면 어떨까? 해서 실제로 Node.js도 나오고 리액트 네이티브, 일렉트론 이런 것들이 나왔잖아요.
계속 이렇게 퍼져나가다 보니까 점점 프로그래밍 시장을 지배하고 있는 거 같아요. 근데 자바스크립트 자체가 그렇게 좋은 언어는 아니에요. 독점과 그 시대의 흐름에 맞춰서 운이 좋았던 언어라고 생각해요.
냉혹한 자바스크립트의 세계 (출처: freecodecamp.org)
현영님은 JS가 미래라고 생각하시나요?
저는 제가 스타트업을 하는 입장에서 앞으로도 웹서비스가 앱보다 더 잘 될 것이다, 라고 생각하고 있고 그러면 당연히 웹서비스에서 독점 언어인 자바스크립트도 지속적인 인기와 지금까지 갖춰온 생태계가 더 견고해지지 않을까 생각해요.
언어적인 관점보다는 사업, 비즈니스적인 관점에서요. 자바스크립트는 비즈니스하기 제일 좋은 언어라고 생각해요. 창업하거나 사업할 때 자바스크립트를 선택하면 가장 비용 대비 효율적이다. 그래서 자바스크립트가 미래에도 인기있을 거라고 생각해요. 언어 자체의 성능이나 속도는 자바스크립트보다 나은게 훨씬 더 많죠. 하지만 생산성 측면에서는 자바스크립트가 상당히 괜찮은 언어입니다.
성실하실 거 같아요. 하루 일과가 궁금해요.
저는 성격상 일을 벌이는 스타일이거든요. 기회만 있으면 기존에 일이 막 세네 개씩 있는데도 하나 더 하려고 하고, 근데 요즘은 너무 힘들어서 줄여나가고 있어요.
제가 엄청 늦게 일어나요. 10시에서 11시 사이에 일어나서 회사도 그때 출근해서 돌아오면 저녁 7-8시 사이인데요. 밥 먹거나 운동을 하고, 다음에 제가 모자란 부분을 공부해요. 아예 방송을 켜서 공부를 해요. 프로그래밍 공부하는 거 자체를 방송으로 송출하고 있기 때문에 부족한 공부량을 밤에 이제 방송으로 해결하는 그런 일과를 보내고 있습니다.
라방중인 현영님
공부를 라이브 방송으로 하시나요?
제 방송은 다 라이브에요. 저는 강의 준비도 켜놓고 하고 제 블로그에 버그가 발생하면 수정이나 오픈소스 관리도 다 방송을 키고 하면서 그때 들어오시는 분들이랑 대화도 나누고 소통도 하면서 라이브 방송을 하고 있어요.
방송을 켜놓고 하면 좋은 게, 한두 명이라도 누군가가 나를 보고 있다는 생각에 더 열심히 하게 돼요. 저도 핸드폰 진동 한번 울리면 핸드폰 봤다가 웹툰으로 새거나 웹 서핑하거나 그러는데, 카메라가 켜져 있으면 진동 울렸다가도 잠깐 보고 다시 돌아와요. 찍고 있으니까 공부해야 되잖아요. 그래서 방송을 켜놓고 하면 짧은 시간이더라도 더 집중해서 할 수 있는 거 같아요.
진짜 그렇겠네요.
네. 누군가가 감시자 역할을 해주니까요.
블로그에 커피쏘기 기능이 있어요. 커피는 얼마나 드셨나요?
아, 그게 커피 딱 한 잔 받았습니다. ㅎㅎ 그리고 그 옆에 방송 후원하기도 있거든요. 후원하기는 결제가 편해서인지 몇 십만원 정도를 후원 받았어요. 라이브하면서 가끔 후원을 받기도 하는데요. 후원해주신 분들께 항상 감사드립니다. (꾸벅)
한 잔이었군요. ㅎㅎ
그게 페이팔 이런 거 가입도 해야 해서 아마 저라도 안 했을 거 같아요. 차라리 [방송 후원하기]는 과정이 더 편하거든요.
개발 블로그로 수익도 얻으시나요?
한 달에 한 10만 명 정도 방문을 하거든요. 그러면 블로그는 조회수 하나당 1.5원, 그러니까 15만 원 정도 들어오고요. 이게 유튜브 애드센스랑 연결되어 있어서 유튜브 수익이랑 같이 들어와요.
유튜브는 [교육] 카테고리에서 조회수가 1회당 2원, 그래서 유튜브 조회수가 10만 정도 나오니까 계산하면 총 35만 원? 블로그랑 유튜브랑 수입이 같이 들어와서 구분이 조금 힘들긴 하지만 한 달에 한 35만 원 들어와서 치킨과 피자를 열심히 먹고 있습니다.
만드신 강의는 경제사정에 얼마나 도움이 되셨나요?
제가 하는 스타트업은 아직 매출이 없어요. 제가 스타트업하면서 버틸 수 있었던 이유가 인프런에서 강의를 하면서 부수입을 얻고 그 금액으로 이제 스타트업에 투자하는, 저에게 어떻게 보면 뭔가 든든한 버팀목이 된 거 같아요. 지금 제가 하는 스타트업은 노력을 하는데 잘 안 돼서 고민이 좀 많거든요. 그런 저를 좀 더 인내하고 버틸 수 있게 해주는 게 인프런의 강의들이죠.
솔직히 인프런 강의 찍은 이후로 제가 카카오나 네이버 공채 보는 거, 또는 중견기업에 취직하는 걸 별로 좋아하지 않았는데 인프런 강의를 찍고 나서 수입이 생기니까 더 회사에 취직하기가 싫어졌어요. (웃음) 강의 찍고 싶어요. 계속. ㅎㅎ 여러분들이랑 유튜브로 소통하면서.
강의 하시는 거 보면 즐기신다, 이런 느낌도 들어요.
솔직히 저는 라이브 방송하기 한 20분 전부터 오늘 켤까 말까 엄청 고민을 하고요. 제가 방송을 못 하면 유튜브 커뮤니티에다 오늘 무슨 사정 때문에 못 합니다, 미리 공지를 올려놓거든요.
항상 20분 전에 컴퓨터를 켜놓고 입력을 할까 말까 하다가 결국에는 에이 그냥 하자! 하는데요. ㅎㅎ 상당히 괴로워요. 좀 힘든데, 강의를 많은 분들이 봐주시고 [좋아요] 해주시면 다시 힘이 나서 또 언제 힘들었냐는 듯 다시 새로운 강의를 찍고, 또 고통받고. 무한 반복하는 거죠. 고통받고 강의 찍고 행복하고. 이 사이클을 무한으로.(웃음)
2020년에 주목할 웹기술, 세 개만 꼽아 주세요.
솔직히 저도 이 질문을 받고 조사를 좀 해왔는데요. 뭔가 올해는 안정기? 급변하는 와중에서도 가끔 막 고요한 시기가 한 번 정도 있잖아요. 그런 시기 같아요. 거의 리액트가 대세를 점유하고 있고, 타입스크립트로 전환할 사람은 전환하고, 여기서 주목할 만한 신기술들, Svelte.js 이런 것들이 나오는데 솔직히 아직 실무에서 쓰기엔 좀 이르지 않나 싶어요.
올해는 신기술을 배우기보다는 기존 기술 실력을 좀 더 공고히 하기 위해 잠깐 쉬어가는 보너스 타임이라고 생각하시고 기존 기술을 더 깊게 익히는 시간을 가지는 게 좋을 것 같아요.
그래서 2020년 주목할 만한 웹 기술은 딱히 없는 거 같고요. 웹 바깥에서는 아직도 노드의 타입스크립트 버전인 디노, 앱쪽에서는 리액트 네이티브와 플러터가 열심히 싸우고 있죠. 그런 동향을 한번씩 체크해보시면 좋을 것 같아요. 근데 뭐가 새롭게 엄청 떠오르고 있다? 그런 건 잘 안 보이는 거 같아요. 작년의 연장선이라고 생각됩니다.
전 기술을 도입할 때 사업을 하는 입장이기 때문에 그 기술이 좋다, 핫하다 이게 아니라 수요와 공급을 생각해요. 개발자를 잘 구할 수 있느냐, 유지보수가 잘 되느냐, 이런 미래까지 생각을 해야 되는데요. 그래서 결국 안정적이고, 개발자 공급이 제일 많은 걸 택해요. 저는 솔직히 리액트보다 Vue.js를 더 좋아하는데요. 그런데 회사에서는 다 리액트를 써요.
왜냐면 개발자 구하기가 Vue.js 개발자 구하기보다 한 열 배는 쉬워요. Vue.js 개발자 구했다가 개발자가 떠나버리면 진짜 너무 힘들어지거든요. 리액트 개발자는 계속 신입들도 많이 공급되고 그런 점에서 저는 신기술을 좋아하기보다 안정적인 기술, 확실한 기술을 더 좋아하는 편이라 올해는 신기술보다 안정적인 기술들이 자리를 찾아가는 방향인 것 같아요.
Vue.js와 리액트를 명쾌하게 비교하자면?
리액트가 커뮤니티가 더 커서 리액트를 하는 사람, 회사도 많고 들어오는 신입들도 많아서 제가 리액트를 쓴다고 말씀드렸는데요. 저는 개인적으로는 뷰를 좋아하거든요. 리액트는 일단 함수, 자바스크립트에 좀 더 가까워요. HTML, CSS조차도 자바스크립트로 다 해버리자. 그런 거에 더 가깝고 Vue.js는 ‘HTML, CSS, JS 얘네 셋의 특성을 각각 다 살려서 편하게 만들자!’에 가까워요.
공식 홈페이지 소개를 보면 리액트는 라이브러리라 하고 Vue.js는 프레임워크라고 소개해 놨거든요. 라이브러리가 조금 더 기능이 간단해요. 그러니까 더 복잡한 걸 구현하려면 자기가 직접 해야 되는 거예요. 반대로 뷰는 다 갖춰져 있는 거고요.
초보 분이 프로젝트 하기에는 HTML, CSS, JS의 역할이 명확하고, 더 많이 갖춰져 있는 Vue.js가 좋다고 생각하고요. 숙련된 개발자도 Vue.js를 쓰는 게 생산성이 더 좋다고 느끼지만 이미 리액트가 한번 공고하게 자리를 잡으니까 예전의 제이쿼리가 떠오르더라고요.
제이쿼리가 지배했던 시절, 수도 없이 더 좋은 것들이 도전했지만 번번이 다 시장에서 실패했던 것처럼. 리액트의 아성에 뷰가 못 미치고 있는 거 같아요.
제 추천은 둘 다 배우세요. ㅎㅎ 왜냐면 리액트를 배우면 Vue.js가 공짜거든요. 진짜로. 둘이 거의 비슷해요. 둘 다 배우면 나중에 프리랜서를 할 때도 리액트 일자리, Vue.js 일자리 둘 다 가질 수 있고요. 시간도 하나를 배우는 시간이 1이라면 둘 다 배운다고 2,3 걸리는 게 아니라 1.5 정도 걸려요. 50% 정도만 더 투자하면 되기 때문에 저는 두 개 다 배우시는 걸 추천해드립니다.
개발을 선택한 계기?
처음에는 컴퓨터 쪽에 아무런 관심이 없었어요. 대학교 입학할 때까지도 관심이 없었고 사업을 하고 싶다, 스타트업 하고 싶다 이런 생각이 강해서 경영학과를 갔거든요. 그런데 경영학과를 갔더니 창업 수업도 있긴 하지만 비중이 한 10%로 작고, 나머지는 다 대기업의 좋은 회사원이 되는 방법, 이런 걸 가르치는 수업인 거예요. ㅎㅎ 아니면 회계사나 세무사가 되던지. 이런 게 창업이랑은 동떨어져 있어서 방황을 많이 했었어요.
학점도 학사경고 맞을 때까지 한번 떨어져 보고, 학교 다니는 것도 너무 재미없고 그래서 교양수업으로 이것저것 해보자 했는데 그때 HTML 수업이랑 PHP 수업을 들었어요. 그 수업 두 개를 듣고 아, 이거 너무 잘 맞는다. 그리고 스타트업 할 때 실제로 내가 꿈꾸는 제품을 만들 수 있으면 더 도움이 많이 되지 않을까, 이렇게 생각했어요.
그때 그 수업 두 개를 듣고 군대에 갔거든요. 저는 PC 운용병이라 해서 업무 자체가 인터넷까지 자유자재로 쓸 수 있었는데 거기서 프로그래밍을 많이 했죠.
다만 제약은 있어서 C나 자바 이런 걸 돌리면 군 보안 부대에서 ‘너 해킹하는 거지?’하고 잡아가는데요. 유일하게 안 잡는 언어가 자바스크립트였어요. 왜냐면 자바스크립트는 브라우저에 내장되어 있기 때문에 브라우저에서 코딩하는 건 문제가 없었거든요. 그래서 군생활 하는 2년 동안 자바스크립트만 할 수 있었던 거예요.
자바스크립트만 계속 파다가 그때 노드 나오고, 리액트 나오고 리액트 네이티브, 일렉트론이 나오고 JS만으로 모든 걸 다 할 수 있게 돼서 계속 자바스크립트만 하고 있는거죠. ㅎㅎ 제가 만드는 서비스도 JS로 만들고 있습니다. 스타트업하고 싶으신 분들은 프로그래밍 언어 하나 정도 배워보시면 진짜 도움이 많이 돼요. 특히 자바스크립트를 배우면 여러모로 앱도 만들고 웹도 만들고 서버도 만들고, 좋은 거 같아요.
개발자로 일을 하는데 대학교 졸업을 해야 할까요?
솔직히 정답은 모르겠어요. 한국에 한정해서는 적어도 학사학위는 있으면 좋은 거 같아요.
많이들 알고, 가고 싶어하시는 기업에서 면접 제안을 받았는데, 거기 체크리스트에 그게 있었어요. 학사 있으니까 연봉 얼마부터 시작하겠다. 근데 없으면 조금 깎인다. IT 기업이라 그런 게 없을 것 같은 회사도 체크하는 곳들이 있더라고요.
블라인드 테스트를 하더라도 학력을 내부적으로 체크하고는 있어요. 그런 점에서 알게 모르게 좀 작용을 하는 거 같고요. 일단 학사학위가 있으면 사실 거기서는 크게 상관이 없는 거 같아요.
그런데 제가 스타트업을 하다 보니까 투자 받을 때도 학력을 보더라고요. 투자 받을 때 아이디어도 중요한데 학력을 봐서 여기서도 이게 알게 모르게 뭔가 좀 불합리하죠. 차별적인 시선 그런 게 있을 수 있구나. 이런 점을 좀 느꼈어요.
웹개발 공부하는 분들에게 드리는 조언이 있다면?
제가 강의를 해본 입장에서, 개발자 로드맵(링크)이라고 혹시 보셨을지 모르겠는데 그걸 보시면 진짜 숨이 턱 막히거든요? 근데 실제로 그걸 다 해야 됩니다. ^^
다른 직업보다 쉽지 않고, 어떻게 보면 공부량 대비 보상이 적을 수도 있어요. 그래서 저는 항상 적성이 중요하다고 말씀을 드리고 싶고, 적성만 맞는다면 시간은 조금 걸리더라도 누구나 다 좋은 개발자가 될 수 있어요.
프로그래밍 특성상 머리를 써야 되기 때문에 노력한다고 해서 진짜 뛰어난 개발자, 특출난 개발자가 될 수는 없거든요. 하지만 모든 사람이 뛰어난 개발자가 아니라 좋은 개발자만 돼도 네이버, 카카오 이런 데 다 갈 수 있어요.
지금 당장 공부할 양이 너무 많고, 공부 길도 잘 모르겠고 이렇다고 막 조급해하지 마시고 천천히 한 단계씩 HTML 먼저 배우고, CSS 배우고, 자바스크립트 배우고 이렇게 하나하나 단계를 밟아나가다 보면 언젠간 좋은 개발자가 되실 수 있을 거예요.
그 단계가 6개월에서 1년 걸리니까 그 정도의 시간을 투자를 하셔야 돼요. 반대로 생각을 해 보면 6개월에서 1년도 안 되는데 개발자가 될 수 있다, 이러면 모든 사람들이 엄청나게 쏟아져 들어온다는 거거든요. 경쟁이 치열해지는 거죠.
좀 길고 고통스러운 기간은 반대로 생각하면 진입장벽이에요. 그것만 넘으시면 개발자 커리어를 쭉 쌓아나가실 수 있기 때문에 6개월에서 1년 정도는 마음 편히 가지시고 차분히 커리큘럼 따라가시면 됩니다.
제가 6개월에서 1년이라고 말씀드렸으니까 반대로 조심하셔야 되는 게, 어떤 학원이나 그런 곳에서 “6개월 만에 개발자 만들어주겠다” 이러면 의심을 해보셔야 돼요. 6개월 만에 절대 좋은 개발자 못 됩니다. 좀 길게 보시고 하는 것을 추천드려요.
현실 조언이네요. 기억에 남는 수강생은요?
솔직히 기억에 남는 분은 몇 분 계시긴 한데요. 일단은 질문왕이 있는데 제 생각에는 학생이신 거 같아요. 말투가 “안녕하세여-” 이렇게 끝나고 질문을 엄청나게 많이 하시거든요. 그분이 많이 생각나요. 질문 내용을 이해해서 다시 자기만의 웹사이트를 만들고 계시더라고요. 나중에 뛰어난 개발자가 되실 것 같아요.
안 좋은 쪽으로 기억 남는 사람은 욕을 신나게 달아주신 분. 그때 좀 멘탈이 많이 흔들리더라고요. 그때 제가 책도 처음 출간해보고 강의도 처음 내봐서 긍정적인 것만 있겠지 했는데 악플이 달려가지고 마음고생을 좀 많이 했었거든요.
확실히 그런 걸 받고 나니까 연예인들은 진짜 눈 뜨고 나면 아침에 수백 개의 악플이 달려 있고 그러면 진짜 얼마나 괴로울까. 저는 악플을 안 달지만 그런 거 보면서 절대 남한테 악플은 달지 말아야지 생각했어요.
리뷰를 쓰실 때 그냥 안 좋았다 라고만 달아주시면 그 다음에 아무런 도움이 안 되거든요. 그러면 뭘 고쳐야 될 지 모르니까, 어차피 리뷰 쓴다고 별점 1점 주시고 시간 쓰실 때 ‘ ~~ 이렇게 고쳐라’ 하면 제가 그 다음에 그걸 반영해서 고치니까 건설적인 피드백을 남겨 주셨으면 좋겠어요. 그래야 서로에게 좋은 거 같아요.
지금 일하시는 회사에서는 어떤 기술을 사용하세요?
저는 개발자들이 많이 쓰는 걸로, 프론트는 리액트로 하고 있고 서버는 Node.js, Express.js, 데이터베이스는 mysql 이렇게 정석적인 그 구조로 하고 있어요. Node.js 쪽에서는 그게 거의 가장 대중적인 구조거든요.
저희는 그리고 인공지능이 있어서 뒤에 파이썬 대신에 R을 쓰는데 R과 Node.js를 통신을 해 줘야 해서 서버가 Node.js 서버, R서버 이렇게 두 개로 구성이 되어 있습니다. 그리고 얘네들을 클라우드에다 서비스를 하거든요. 저희는 구글 클라우드 플랫폼을 쓰고 있어요.
구글 클라우드 플랫폼에서 300만원 공짜 크레딧을 줘서 그걸로 하는데, 그게 다 떨어지면 아마존으로 옮겨야 될 수도 있어요. 아마존에서도 한 400만 원어치 공짜 크레딧을 많이 줬거든요. 이거 떨어지면 아마존 옮겨가고 아마존 떨어지면 다시 구글로 가고, 이렇게 유목민 생활을 하고 있어요. 매출이 없으니까 수익이 나올 때까지. ㅎㅎ 이렇게 버텨야 될 것 같습니다.
지금 가장 꽂혀있는 일은 무엇인가요?
저는 지금 사실 휴식을 취하고 있어요. 너무 많이 달려와가지고 번아웃을 작년에 엄청 심하게 겪었거든요. 그런데 이게 한 번 겪고 나니까 마음이 잘 잡히지가 않아요. 쉽게 마음이 피로해지고 싫증이 나서 지금 조금 천천히 여유를 두고 쉬고 있어요.
예전에 프로그래밍 처음 공부할 때는 자바스크립트에 꽂히고, 프로그래밍 알고리즘 이런 데 진짜 꽂혀서 하루에 밥 먹고 잠깐 쉬고 이런 시간 빼고 하루에 12시간 이상 프로그래밍을 했었거든요.
단순히 공부만 하는데 그렇게 12시간씩 2018년까지 한 3~4년 공부를 쭉 해보다가 19년부터 너무 몸에 무리가 가고 프로그래밍이 싫어지고 그러는 거예요. 그래서 지금은 살짝 손을 놓고 회복을 하고. 2021년부터 다시 달려볼까 생각 중입니다.
제로초 강의의 차별점은 뭔가요?
제 강의의 가장 큰 차별점은 일단 라이브라는 거죠. 아마 대부분의 강의가 녹화 강의인 걸로 알고 있는데요.
녹화된 강의의 특징이 소스코드를 다 만들어 놓고 ‘복사 - 붙여넣기’ 방식으로 하기 때문에 에러가 발생하지 않고 그냥 다 물 흐르듯 매끄럽게 진행되잖아요. 수강생분들이 가장 힘들어하는 부분이 강의는 물 흐르게 가는데 자기가 직접 코딩할 때는 에러가 난단 말이죠? 그때 에러 해결법을 잘 모르시는 분들이 많더라구요.
저는 직접 에러를 내서 직접 해결하는 것까지 보여드려요. 그래서 남이 코딩하는 걸 옆에서 보면서 그 사람이 에러를 어떻게 해결하는지 그걸 지켜본다고 생각하시면 좋을 거 같고요. 또 질문을 남겨주시면 저는 48시간 이내로 답변을 드립니다. 하루에 세 개씩 올라와서 정말 힘들지만 자기 전에 시간 내서 계속 답변을 해드리고 있어요.
인프런이 핸드폰으로도 질의응답하기 좋더라고요. 그래서 이번 휴가 때도 핸드폰으로 열심히 답변을 드렸습니다. 아마 저 휴가 갔다 왔는지도 모를 거예요. 저 휴가 때도 답변 달 수 있습니다. ㅎㅎ ㅠㅠ 걱정하지 마시고 질문 많이 남겨주세요.
영상 업로드 후에도 자주 나오는 질문을 영상 수정으로 그 내용을 보충해가고 있으니까 애프터서비스를 해드린다는 점도 기억해 주시면 좋겠습니다.
다음 강의 계획은요?
확정된 강의는 Node.js 교과서 리뉴얼 강의, 웹소켓으로 채팅방/끝말잇기 만들기, 리액트 네이티브 노드버드, 이렇게 세 강의에요. 많이 기대해 주시면 좋겠습니다. 감사합니다.
댓글 14
댓글을 작성해보세요.
제로초님 항상 도움 많이 받고 있습니다.