프레젤글로벌커넥션그룹 CTO 김태완님
'비전공자인데, 개발자가 될 수 있을까요?' 라고 묻는 당신에게
IT 플랫폼 산업이 최근 몇 년 간 빠르게 성장하고 있습니다. 그런 만큼 IT 회사, 특히 개발자에 대한 관심이 커지고 있는 것 같네요. 요즘에는 특히 전공자가 아니더라도 개발자가 되고 싶어하거나, 개발을 공부하고 싶어하는 대학생들이 늘어나고 있는 것 같습니다. 그렇지만 무턱대고 시작 하려면 막막하기만 하죠, 사실 단순히 프로그래밍을 배우는 것과 개발을 하는 것, 개발자가 되는 것은 전혀 별개의 문제이기도 합니다.
그래서 오늘은 개발자가 되고 싶은, 혹은 개발을 공부해야 할까 고민 중인 대학생 여러분들에게 조언을 주실 분을 모셨습니다. 지난번 인터뷰에서 뵈었던 프레젤글로벌커넥션그룹의 CTO 로 일하고 계신 김태완님을 모셨습니다.
안녕하세요, 간단하게 본인을 소개해주실 수 있나요?
안녕하세요, 저는 PGCG에서 CTO 로 일하고있는 김태완이라고 합니다. 개발을 한지는 4년정도가 되었구요, 실직적인 업무 경력만 치면 2~3년 정도가 되는 것 같아요. 지금은 어쩌다보니 풀스택 개발자가 되었고 회사의 여러 제품들을 개발 및 총괄하고 있습니다.
그렇군요, 반갑습니다. 어떻게보면 비전공자로서 개발을 공부하고, 한 스타트업에서 제품의 개발, 출시, 운영까지의 모든 프로세스를 총괄할 정도의 실력까지 갖추게 되신 그 배경이 궁금합니다. 개발 공부를 시작한 후 실직적으로 개발을 하게 되신 과정이 어떻게 되시나요?
우선 처음 대학생 때 개발 공부를 하고 나서 서비스를 개발하는 창업 형식의 프로젝트를 세 번 정도 경험했어요. 세 번 모두 개발을 전담했고, 이 때 실력이 많이 늘었던 것 같아요. 이후에 스타트업에서 프론트엔드 앱 개발자 인턴을 했는데 아무래도 비전공자이다보니 현업 상황에서 지식이 부족한 부분을 많이 느꼈던 것 같아요.
그래서 CS에 관한 지식을 쌓기 위해 여러권의 책을 읽고 그 부족한 부분을 더 보완하기 위해 여러 사이드 프로젝트들을 만들었습니다. 그 과정과 더불어 프로덕션 레벨의 제품까지 개발을 하다보니 짧은 기간 내에 빨리 성장했던 것 같습니다.
필요성에서 출발하기
뒤에서 더 자세한 이야기를 들어보긴 하겠지만... 대학생때는 많이들 소규모 프로젝트를 하면서 개발 경험을 쌓곤 하잖아요? 그런데 비전공자로서 도전하다보면 막히거나 부족한 부분도 많을텐데 어떻게 실무를 할 수 있을정도로 실력을 기를 수 있을까요?
필요성에서 출발해서 스스로 깊게 공부하는 것이 가장 중요한 것 같아요. 요즘엔 필요성보다 결과나 방법론에서 출발하는 경우가 많은 것 같아요. 예를 들어서 '아, 앱 개발을 배워야겠다. 그럼 무슨 책을 봐야 하지? 무슨 언어 강의를 들어야 하지?' 그러고 나서 실제로 무언가를 클론 (clone)하거나 만들어내면 끝이라고 생각하기 쉬운 것 같아요.
대학생 때 앱 런칭하는 프로젝트 진행했었습니다. 그리고 나서 제 실력을 확인하
고 싶어 인턴을 했는데 사수분께 한 소리 들었어요. 저를 뽑으신 분이 제가 전공자라고 오해를 하셨던거에요. '왜 이것도 모르냐?'는 이야기를 듣게 되었어요. 당시에 비전공자로서 개발을 배우고 만들어내는데에만 집중하다보니, 데브옵스나 CS에 대한 지식이 부족했어요. 아 내가 이 부분을 이해하지 못하면 이런 환경에서의 개발이 원활하지 않겠구나 라는 생각이 들어서 서버, 데브옵스, CS개념까지 심도있게 공부하는 계기가 되었죠. 개발자로서 협업을 할 때 소통에 문제가 없으려면, 완전히 이해해서 대답할 수 있어야 한다는 생각이 있었던 것 같아요.
비전공자에서 개발자가 되기까지
그럼 우선 태완 님께서 비전공자 대학생에서 개발자가 되기까지의 스토리를 한번 들어보고 싶은데요?
네, 저는 사실 중문과 전공으로 대학에 들어갔어요. 처음 코딩을 알게 된 것은 대학교 1학년때, 한창 정부에서도 정규 교육과정에 코딩을 넣겠다고 하던 시기가 있었는데, 서점에서 우연히 아이들이 코딩 서적 앞에 서 있는 것을 보고 '아, 나도 늙어서 어린친구들에게 밀리지 않으려면 코딩 공부를 좀 해야겠다...'하는 인지 정도만 있었던 것 같아요.
그리고 창업보육센터에서 스태프로 아르바이트를 하다보니 여러 대표님들을 만나고 아이디어 세션을 보며 창업과 기획에 관심을 가지게 되었는데, 한번은 스타트업 대표님들이 진행하는 세션에 참가했다가 '개발자가 없어서 너무 힘들다' 하는 대표님들의 공통된 의견을 듣고 또 개발 공부에 대한 생각을 하게 되었어요.
굉장히 1학년때부터 심도깊은 고민들을 하셨군요?ㅎㅎ
ㅎㅎ 사실 이때까지만 해도 그냥 '개발 공부를 해야겠다...' 정도였지 개발자가 돼야겠다는 생각은 없었죠. 2학년이 되어서 미래에 대한 고민을 하던 때에, 창업이나 기술에 관심을 많이 가지고 있다보니 기술에 대한 지식들은 자연스럽게 좀 쌓였어요. 그래서 그 해에는 처음으로 '코딩' 이라는 것에 빠져서 처음 공부해봤어요. 무턱대고 타 전공 프로그래밍 수업도 듣고, 비전공자들이 모여서 프로그래밍을 배우는 단체에도 들어가서 활동하고 하면서요.
그런데 공부를 좀 하다 보니 이제 코딩은 좀 할 줄 아는데, 개발과 코딩은 다르구나 하는 생각이 들었어요. 사실 그때도 이미 유튜브나 인터넷 리소스들이 많아서 실제 서비스 클론 코딩을 해 볼 수가 있었고, 이런 것들을 제 나름대로 커스텀 해보면서 '아 개발이 이런거구나' 하는 느낌을 받았죠. 아, 진짜 제대로 된 개발을 배워야겠다 라는 생각이 들었는데 여기서 넘어가는 단계가 조금 어려웠던 것 같아요.
'코딩' 에서 '개발' 로 넘어가는 순간
그렇죠, 요즘 사실 코딩을 배우거나, 서비스를 클론해서 만들어볼 수 있는 리소스는 정말 많은데, 대학생때는 '아, 정말 이걸 할 줄 안다고 개발자가 될 수 있을까?' 하는 생각이 들 수 있잖아요?
네, 맞아요. 처음에는 그래서 앱 개발 스터디도 해보고, 강의도 들어봤는데 저와 잘 맞지 않았어요. 개발자가 된 지금도, 클론코딩이나 부트캠프, 강의식 프로그램에만 의지하면 안된다고 생각해요. 요즘에 개발자 버블이 있다, 뭐 이런 이야기도 나오잖아요? 앱이나 뭔가를 만들어 내는 실력도 중요하지만, 그만큼 문제 해결을 하기 위한 생각과, 물고 늘어지는 태도가 중요한데 그 부분을 놓치기 쉽거든요. 강의나 수업에서는 무작정 오래 걸리는 것을 할 수 없으니까요. 항상 예외 상황을 생각하고, 고민하면서 문제 해결력을 기르는 것은 절대 단기간에 될 수가 없다고 생각해요. 만약 나이가 어린 사람이 개발을 잘 한다면, 그분은 훨씬 어릴 때부터 이런 과정을 거쳤을 거에요.
개발을 제대로 배워야겠다고 생각하고 6개월정도 틈틈히유튜브와 구글을 돌아다니며 독학을 하던 시점에서 '맨땅에 헤딩하면서 앱개발 같이 할 사람 구합니다' 라는 공고를 봤어요. 이때 저와 비슷한 생각을 가지고 있던 비전공자들이 모여서 '로코코디쉬' 라는 팀을 결성했어요. 저도 공부하는 중이었는데 그나마 많이 공부를 했던 상태라 개발 팀장을 맡았죠. 물론 잘 해서라기보다는, 더 많이 배우면서 실력을 늘리고 싶어서요. (웃음)
사실 '제대로 된 개발' 은 경험이 전무한 상태에서 처음 도전하는것이잖아요? 어떤 식으로 일하고, 어떻게 실력이 늘게 되었나요?
당시에 UI만 짜보고, 프론트엔드 코드만 짜봐서 서버, 클라이언트, 네트워크 이런 개발에 필요한 근본적인 지식이 너무 없었어요. 어느 정도였냐면 클라이언트에서 입력한 데이터가 DB로 어떻게 전송되고, 이게 어떻게 내 UI에 입력이 되는지 이런 것들이 전혀 이해가 안 갔어요. 개발자에게는 굉장히 기본적인 지식이거든요.
그래서 이런 부분이 하나 나타나면 2주이건 4주이건 이해가 될 때까지 고민하면서 테스트해보고, 찾아봤어요. 누가 '이건 이렇게 되는거고, 이럴 땐 이렇게 하면 돼' 하고 가르쳐주면 빠르게 당장 눈앞의 문제는 해결할 수 있겠지만 실력이 늘지 않아요. 팀원들도 모두 이렇게 물고 늘어지는 성향이었기 때문에 같이 성장할 수 있었어요. 실제로 개발 하는 친구들이 많이 하는 이야기가 '맨땅에 헤딩하는게 중요하다' 고 해요. 하나하나 풀어가면서 '유레카!' 하고, 또 막히면 물고 늘어지고... 이걸 즐거워해야 하는 것 같아요.
그렇군요, 문제 해결을 위해서 스스로 물고 늘어지는 것이 중요하다... 그런데 이것도 아무것도 모르는 상태에서는 어디에서부터 출발할지 막막할 수도 있을 것 같아요
네, 그래서 목표를 세우는 게 중요한 것 같아요. 많은 대학생분들이 그렇겠지만 당장에 파이썬이나 자바같은 '언어'를 배운 후 막막한 경우가 있을 거에요. 저도 그랬구요. '파이썬은 배웠는데 이걸로 뭘 어떻게 해야하지? 아 리액트도 배워야하나?' 근데 리액트를 배우고나면 또 똑같은 생각이 들 거에요. 뭐 리액트를 배워야겠다, 파이어베이스를 배워야겠다 이런게 중요한게 아니라 내가 지금 가지고있는 목표 / 해결하려는 문제가 뭔지를 생각하고 맨땅에 헤딩하라는거죠.
예를들어서 내가 어떤 앱이 만들고 싶어요. 아, 이런 기능의 앱은 어떻게 만들지? 하고 필요한 요소들을 하나씩 뒤져봐요. 그러다보니까 예를 들어 'Make chat app with Firebase' 이런 리소스가 나와요. '어? 챗 앱을 만들려면 이게 있어야 하나보네? 이게 뭔데?' 하고 찾다보면 또 다른 게 나와요. 이런 식으로 퍼즐 맞추듯 맨땅에 헤딩으로 하나씩 배워나갔어요.
물론 수업이나 강의가 무조건 나쁘다는 것은 아니에요. 아무것도 모르면서 무작정 배우다보면, 이게 뭔지, 왜 사용하는지도 모르면서 따라하고 외우는 경우가 생겨서 문제 해결력 측면에서의 고민을 안 하게 되는 경향이 있는 것 같아요.
목표에서 출발해서, 필요한 것들을 찾아 나가면서 이해하고 배워라 이거군요.
네, 그리고 한 가지 또 첨언을 하자면, 현업에서는 전공지식이 꼭 필요한 경우가 있기 때문에 비전공자라면 스스로라도 꼭 전공지식을 쌓는 것이 중요하다고 말하고 싶어요. 저도 인턴을 하면서 한번 벽을 느낀적이 있었구요. 정말 개발자가 되고싶다면 심도깊게 전공지식을 쌓는 것도 간과하지 않았으면 좋겠어요.
전환점
결국 개발자가 되시기까지, 직접 맨땅에 헤딩하며 프로젝트를 진행한 경험이 큰 전환점이 되었다고 볼 수 있겠네요?
네 맞습니다. 많은 분들이 요즘엔 '무조건적으로 비전공자이더라도 개발을 배우고, 코딩을 해야 할 것 같다'고 막연히 생각하시는것같아요. '비전공자이더라도 이정도 할 줄 알아야하지 않을까?' 가 아니라, 전공자 / 비전공자를 떠나서 개발자로서 뛰어난 문제해결력을 갖춘 사람이 되는 것이 제 목표였습니다.
로코코디쉬 프로젝트를 할 당시 2019년 1월, 로코코디쉬 프로젝트 아이템으로 창업경진대회를 하게 되었어요. 개인적으로 사정이 있어서 제가 참석은 못했지만 팀 관계자 몇 명은 가서 발표를 하게 됐는데, 경진대회를 마치고 돌아와서 피드백으로 큰 충격을 받게 됐고, 그 피드백으로 인해 성장에 대한 다짐을 했거든요. 이 아이템을 제작하는 개발자에 대한 소개 세션이 있었는데, 기계공학과, 전기전자컴퓨터학과, 그리고 마지막으로 중국어문화학과 (저) 이렇게 3명을 소개하는데 당시 심사위원분은 "그 중국문화학과 분은 언급에서 빼셔도 될 것 같아요." 라고 약간의 없는 사람 취급하는 피드백을 주었어요. 이 일을 계기로 정말 이악물고 공부했던게 생각이 나네요
그 이후에는 어떻게 되셨나요?
창업 프로젝트를 하면서 실제 앱 런칭까지 해보고 나서는 제대로 현업에서 일해보고 싶다는 생각이 들었어요. 그래서 프론트엔드 개발자 인턴으로 스타트업에서 일을 해보게 되었습니다. 위에서 말씀드렸던 것처럼 비전공자였기 때문에 아직 현업에서 배워야 할 것들이 많았고, 경력보다는 실력의 향상을 위해 인턴을 했어요. 사수분께서 지치실 정도로 진짜 질문과 소통을 많이하곤 했어요.
그런데 이때, 정작 능력은 많이 길러졌는데 회사에서 진행한 프로젝트들이 개인적으로는 큰 메리트가 있지 않다고 느꼈어요. 처음의 기획과 나중의 기획이 많이 달라지는, 현실적이지만 이상적이지는 않은 상황도 많이 경험을 했구요. 그래서 개발자로 일하더라도, '(회사에서) 남이 기획하는 일을 하는 것' 과 '내가 기획하는 일을 하는 것' 이 많이 다르다는 것을 느꼈어요.
개발자로 커리어를 생각하는 후배분들도 이 점을 고민하는 순간이 올 것 같아요. 개인적으로 저는 이때 허무함을 많이 느껴서 PGCG 팀에 조인하면서 창업을 택했죠.
지금은 보시는대로 함께 사업 기획단계부터 시작해서, 스타트업 CTO 역할을 하고 있습니다. 물론 제가 연차나 경력이 아주 높은것은 아니기에, CTO이지만 직원들에게 동기부여가 되면서 함께 성장하려고 노력하고 있어요. 다만 팀을 리드하다보니 개인적으로도 한번 더 성장하는 변곡점이 된 것 같아요. 이전까지는 내가 보기쉽고, 내가 편한 방식으로만 개발을 하면 됐는데 직원들의 본보기가 되어야한다는 생각에 더 잘해야한다는 책임감이 생겼죠. 그래서 평소에 당연하게 여겼던 것들도 원리까지 파고들고, 코드 하나를 짜더라도 더 완벽하게 하려고 노력하고 있어요. 처음엔 학생창업이었지만 지금은 엄연한 스타트업으로 성장했고, 사람도 많이 뽑기 시작했으니까요.
현실적인 조언들
네, 앞으로도 개발자이자 CTO로서 팀원분들과 함께 많은 성장을 이루시길 바랍니다. 그럼 마지막으로, 현실적인 조언들을 조금 해주실 수 있을까요?
우선 개발자가 되는 것 자체에 대해 깊게 생각해보았으면 좋겠어요. 아까 이야기한 것처럼, 단순히 '요즘엔 비전공자여도 다들 개발을 배워야 한다고 하던데...' 이렇게 막연히 무조건적으로 해야할 것 같은 생각을 하기보다는요.
우선 개인적으로 비전공자가 개발자가 되는 것 자체에 대해선, 요즘엔 워낙 개발자가 아니더라도 커리어에 있어서 '전공'의 경계가 흐려지고있다고 생각해서 충분히 가능하다고 생각해요. 에어비앤비 창업자도 호텔경영과 관련이 없었고... '비전공자의 개발자 커리어' 자체에 대한 장벽은 확실히 줄어든 것 같아요.
다만, 취업하려고 개발자가 되는 것, 혹은 '개발을 배워야 취업이 잘 될 것 같아서' 와 같은 접근은 정말 반대에요. 사실 어떤 일을 하건 어떤 회사를 다니건 거기에서 어떤 일을 하고, 버티느냐가 중요하다고 생각해요. 그래서 '개발을 배워서 취업하는 것' 자체가 목적이 되면 안된다고 생각합니다. 결국은 '개발자라는 직업이 나에게 맞는 직업인가?' 에서 출발하면 좋을 것 같아요.
그럼 어떤 사람이 개발자와 잘 맞을까요?
공통적으로 제가 많이 느낀것은 '뭐 만드는 것 좋아하는 사람들' 그 이상 뭔가 엄청 대단한 뭔가가 있다고 생각하지는 않아요.
근데 문제는 뭐가 만들어지려면, 그만큼 문제를 찾고, 물고 늘어지고. 맨땅에 헤딩하는것을 좋아해야 해요. 그래서 스스로 배우고 공부하는 것을 즐겨야 한다고 생각합니다. 예를들어서 어떤 앱을 만들고싶은데 '어떤 책 사야해요? 어느 수업 들어야 해요?' 라는 질문을 하는 것은 지양합니다. 커리큘럼이 짜여져야만 뭔가를 배우는 것은 진짜 문제해결이 아니라고 생각해요.
네, 좋은 조언 감사합니다. 마지막으로 개발자를 꿈꾸는 후배들에게 한마디, 마무리 조언을 해주신다면?
마지막 한마디
이미 개발을 하고계신 분이라면: 저 스스로도 요즘, 내가 개발자로서의 지향점이 뭐지? 라는 고민을 많이 해요. '대체불가능한 개발자가 되자' 가 요즘 저의 지향점이에요. 이처럼, '너가 개발자로서 지향하는점이 뭐니?' 라는 것을 고민해보고, 가지고 가면 좋겠어요.
이제 개발을 배우려는 사람이라면?: '개발자가 되려는 이유가, 너가 맞아서 그러는건지, 취업을 하기 위한 것인지를 생각해봐라.' 고 말하고 싶어요. 후자라면 정말 다른 길이 너무 많아요! 모두가 개발을 해야하는 것은 아닙니다.
GAP year라고도 하는데 저는 곰곰이 이 점에 대해 생각해보는 시간을 많이 가졌고, 정말 큰 도움이 되었어요.