아무도 가르쳐 주지 않았던 ‘성장하는 법’
그러나 현실은 쉽지 않습니다. 각종 강의와 교육자료들이 많이 있지만, 개발자로서 생존하고 더 나아가기 위한 진정한 노하우와 기술을 얻기란 쉽지 않습니다.
20년 넘게 오랜기간 개발자로 살아남았고, 더 나아가 좋은 개발자를 양성하고 있는 현직 개발자 ‘박조은’님께 개발자로서 살아남기 위해 필요한 생존 기술과 개발의 핵심에 다가가는 노하우를 확인해보세요.
취업만을 위한 교육에 대한 고민
안녕하세요 저는 게임과 광고 회사 등 다양한 회사에서 백엔드 개발자로 일했었고, 프리랜서로 지내다가 현재는 창업을 하여 데이터 관련한 프로젝트에 참여하거나 콘텐츠 개발, 기업 교육, 신입 개발자를 양성하는 부트캠프의 커리큘럼을 개발하거나 교육하는 강사로도 참여하고 있습니다. 또 오늘코드라는 유튜브 채널을 운영하는 백엔드 개발자이자 강사이자 유튜버인 박조은입니다.
이렇게 다양한 활동을 하면서 개발자가 되기 위해 준비하는 사람들, 대기업의 신입이 된 사람들, 경력직 개발자들을 많이 만나봤고 직접 가르치기도 했습니다.
그러면서 생각보다 많은 개발자들이 성장하는 법을 모르고 있다는 것을 깨달았습니다.
학교나 부트캠프에서는 학생들이 취업을 성공적으로 이루는 데에 초점을 맞추고 있으며, 이를 위해 필요한 기술과 지식을 가르쳐주는 것이 일반적입니다. 그러나 개발자로서 성장하는데에는 회사에서의 경험 뿐만 아니라 스스로 노력하고 학습하는 자세가 중요합니다. 하지만 성장하는 법을 모른채 취업만을 위한 교육을 받게 된다면, 막상 취업 후에 흥미를 잃을 수도 있고, 문제를 해결해야 하는 상황에서 당황하고 개발자로 자리를 잡기 어려울 수 있습니다.
이런 생각이 들면서 앞으로의 개발 교육이 나아갈 방향에 대한 고민이 깊어졌죠.
반년간, 매주 회의를 하며 만들어진 Kernel360
그러던 중 패스트캠퍼스에서 제가 생각했던 방향과 맞는 교육을 기획하고 있으니 함께하자고 먼저 연락이 왔었어요. 그게 Kernel360이었습니다.
이 과정에는 패스트캠퍼스의 방대한 온라인 강의를 제공하기는 하지만 스스로 찾아서 수강하는 것을 권장하지 일방적인 강의식 수업을 진행하지 않습니다. 또 경쟁이 없고 정답도 없습니다.
학교 교육에서는 강의를 듣고 경쟁하고 정답을 찾아가는 공부를 한다면 현업에서 개발자로 일하며 성장해 나가는 과정은 이러한 교육방식과는 차이가 있습니다. 이렇게 취업 그 이상의 실력을 기를 수 있는 개발자 양성 과정을 만들겠다는 명확한 비전을 대표님께서 직접 말씀 해주셨으며 새로운 교육 방법을 시도해 보려는 대표님의 의지가 멋져보이기도 했습니다.
또 새로운 교육방식을 시도해 오고 훌륭한 개발자를 많이 양성하신 이민석 교수님과 박은종 디렉터님이 함께 하신다는 얘기를 듣고 국내 IT교육의 대가 분들과 함께할 수 있는 교육이라는 것에 이러한 제안 자체가 엄청난 영광이었습니다. 이 분들과 함께라면 정말 부트캠프에 참여하신 분들이 찐성장을 할 수 있는 교육과정을 만들어 볼 수 있겠다는 확신이 들었어요.
이렇게 참여하게 되었는데, 정말 솔직히 엄청 놀랐습니다. 교육 준비에 이렇게 많은 비용과 시간을 투자하는 곳은 패스트캠퍼스가 처음이에요.
저는 개발자 양성 부트캠프를 2018년부터 지금까지 거의 해마다 2~3개 이상 계속 참여하고 있는데요. 강의식으로 진행되는 대부분의 부트캠프는 강의 몇달 전에 연락이 와서 강의 시간이랑 강의 주제를 기준으로 요청하는 경우가 많아요. 강의식으로 진행되기 때문에 강사의 역할이 커서 강사에게 많은 권한을 위임하게됩니다. 그럴때는 강의 준비부터 이론/실습/과제까지 전부 스스로 준비했죠.
그런데 여기는 기존의 강의식 수업 방식이 아닌 프로젝트 위주의 수업이기 때문에 교육 준비에 굉장히 많은 공을 들이고 있습니다. 그리고 기존 프로젝트 수업에서 자기주도적으로 학습을 하다보면 방치가 된다고 느끼는 교육생도 있기 때문에 프로젝트 기간 내내 회사의 친절한 사수처럼 개발자로서의 성장을 도울 방법을 다양하게 마련하고 있습니다. 기존 강의식 교육과정에 익숙할지라도 현업에서 일하는 것처럼 소통하는 방법을 배워나갈 수 있는 장치를 마련하기 위해 이론적인 내용과 실무적인 내용을 함께 익힐 수 있는 프로젝트를 설계하는 일 부터 선발 절차, 어떠한 멘토를 뽑을 것인지 등의 기준까지도 참여하는 교수진과 매니저 뿐만 아니라 대표님까지도 함께 모여서 서로의 노하우와 경험을 공유하며 발전시켜 나가고 있습니다.
사실, 저는 헤드 디렉터님이신 이민석 교수님보다는 늦게 합류하게 됐는데요. 제가 참여하기 전부터 꽤 오랜 기간 동안 준비해온 걸로 알고 있어요. 제가 처음 왔을 때부터 회의를 진행했던 자료들이 쌓여있는 걸 봤었거든요. (웃음) 교육의 대가분들께서 작성해 주신 문서를 읽어보며 개발자 양성에 기여하고 싶다는 의지를 불태우게 되었습니다.
면접부터 취업준비까지 디렉터님들과 만든 Kernel360
거기에다 거의 반년간을 매 주마다 회의를하고, 회의 시간이 아닐 때도 계속 메신저(슬랙)를 통해서 어떻게 하면 이 교육 과정이 잘 만들어질 것인지, 커리큘럼은 어떻게 보완할 것인지를 수시로 주고받고있어요.
그래서 정말 진심이구나, 정말 최선을 다해 만들고 있구나를 많이 느끼고 있어요.
최고의 교육은 회사 환경 그대로 배우는 교육
그렇게 오랜기간 회의끝에 나온 결론은, 취업은 당연하고, 대체 불가능한 실력을 가진 개발자가 되기 위해서는 ‘실제 기업 환경’에서 ‘올바르게 성장하는 방법과 경험’을 주어야 한다는 것이었습니다.
Kernel360의 커리큘럼은 학원이나 학교라기 보다, 앞으로 본격 개발자의 삶을 살기 전에 개발시장에 적응하기 위한 온보딩 과정이라고 볼 수 있습니다.
회사에서의 경력을 미리 쌓아보는거죠.
그래서 모든 커리큘럼은 실무 개발 사이클 위주의 프로젝트로만 이뤄집니다.
프로젝트를 하면서 모르는 기술은 동료들에게 배우거나, 지원해주는 온라인 강의를 통해서 배운다거나 하고 좀 더 노하우가 필요한 것은 멘토와 디렉터를 통해서 배우는거죠.
개발자는 회사에 들어가면 프로젝트와 트러블 슈팅을 반복하게 됩니다. 프로젝트를 진행하는 역량과 트러블 슈팅을 잘 하는 방법을 습득할 수 있도록 회사와 똑같은 환경을 주고, 그 상황속에서 배울 수 있게 하는 것입니다.
실제로 프로젝트를 진행하면서 문제를 직면해봐야 제대로 회고하는 법, 문제를 발견하는 법, 그 문제를 잘 공유하고 협업을 잘 하는 법, 프로젝트를 넓은 시야로 정확히 바라보는 법 등을 체화할 수 있으니까요.
물론, 이런것을 7개월이라는 짧은 기간동안 다 체득하려면 혼자서 고분군투하는 시간을 줄여줄 좋은 선임과 좋은 동료가 필요하겠죠.
그래서 Kernel360에서는 회사와 똑같은 환경을 느낄 수 있는 공유오피스와 회사에서 사용하는 협업 툴(Git, Slack 등)을 제공하고있습니다. 또, 현업의 경험이 풍부한 디렉터와 멘토가 선임이 되고, 철저한 기준에서 선발된 동료들을 만날 수 있습니다.
경력직으로 만드는 4개월의 최종 프로젝트
기업이 경력이 있는 사람들을 선호하는 이유는 회사에서 진행하는 프로젝트의 전반적인 환경을 이해하고 어떤 업무를 어떻게 시작할지 알아야 바로 회사의 업무에 투입 될 수 있기 때문입니다.
그런데, 기존 부트캠프들은 일단 주입식으로 교육을 받고 팀 프로젝트는 한달에서 두달정도만 진행을 하게 됩니다. 기간이 짧다 보니 누구는 로그인 부분만 맡고, 누구는 결제만 맡고 하면서 자신이 맡은 부분에만 집중하게 되어 프로젝트가 어떻게 돌아가는지 전반적인 사이클을 이해하기가 어렵습니다.
그래서 Kernel360의 최종 프로젝트에서는 내가 맡은 부분에만 집중하는 것뿐만 아니라 팀원들과 함께 협력하여 서로의 코드를 리뷰하고 더 나은 코드를 만들기 위해 지속적으로 토론하며 전체 프로젝트를 종합적으로 이해할 수 있도록 합니다. 이러한 과정에서 다른 사람의 코드를 리뷰하는 방법과 피드백을하고 수용하는 능력을 키웁니다.
실제로 현업에서 일하는 개발자 중에 야근을 하며 엄청 열심히 일을 했는데 그 업무에 대해 제대로 설명하지 못하거나 본인은 열심히 했는데 다른 사람들이 알아주지 않는다며 서운해하는 분들이 있습니다. 이런 부분이 대부분 소통의 문제 입니다. 본인이 했던 일의 필요성을 알고 조리있게 정리하는 방법 그리고 다른 사람에게 본인이 한 업무에 대해 설명하는 방법을 연습해오지 않았기 때문이에요.
강의를 보고 무언가를 만들어보는 과정에서 기술적인 것을 배우게 되지만 실제로 그 기술적인 부분을 다른 사람과 소통하며 개선해 나가는 방법은 실제 회사에서 업무를 하며 배우게 됩니다. 그런데 본인이 했던 업무에 대해 제대로 설명을 하지 못하거나 동료의 피드백을 제대로 수용하지 못한다면 개발자로의 성장에 어려움을 느끼게 됩니다.
자신이 만든 프로덕트는 애정이 큽니다. 그래서 때로는 피드백을 받는 것이 감정적으로 어려울 수 있습니다. 기술적인 개선을 위해 필요한 의견은 열린 마음으로 수용하는 방법을 배웁니다. 특히 자신이 작성한 코드에 대해 어떤 이유로 그렇게 작성했는지 다른 사람에게 조리있고 체계적으로 설명하는 방법을 알아가면서, 현업에서 발생하는 소통의 어려움을 극복하고자 합니다.
많은 채용 공고에서는 소통 능력이 강조되며, 팀 프로젝트 경험과 코드 리뷰, 피드백 수용 능력 등을 중요한 평가 요소로 삼기도 합니다. 이러한 프로젝트 경험을 통해 자신의 코드에 대한 설명과 타인의 의견을 수용하는 과정을 체득함으로써, 현업에서의 소통 능력을 향상시키는 기회로 삼을 수 있습니다.
따라서, 우리는 최종 프로젝트를 통해 기술적인 능력뿐만 아니라 팀워크와 소통 능력을 함께 강화하며 앞으로도 꾸준히 성장하는 방법과 태도를 배우게 됩니다.
또, 개발자에게는 뗄레야 뗄 수 없는 트러블 슈팅을 잘 할 수 있도록 배포와 운영을 진행할 것입니다. 배포와 운영이 중요한 이유는, 배포를 하고 운영을 해봐야 트래픽이 많이 발생해 문제가 발생하기 때문입니다. 문제가 발생해야 그것을 해결하는 방법도 배울 수 있죠.
트래픽을 많이 발생시키고 디스크도 꽉 채우게 만들어 보는 연습을 하면서 어디에서 병목이 생기고 어떻게 시스템이 느려지는지 성능저하 현상을 겪어보는 거죠. 기능만 구현하게 되면 대부분 잘 동작을 합니다. 그런데 진정한 학습은 잘 되지 않는 상황에서 실패와 부딪히며 문제를 해결하는 과정에서 이루어집니다.
그래서 기업에서도 면접을 볼 때 프로젝트를 하면서 어떤 어려움을 겪었고 그 어려움을 극복해 나가는 과정에서 어떤 인사이트를 얻게 되었는지를 주로 보게 됩니다. 그래야 현업에서도 뛰어난 적응력과 문제 해결 능력을 발휘할 수 있기 때문이에요.
이런 경험들을 통해 기업이 찾는 실력을 갖게 될것입니다.
질문을 잘 하는 법을 배워야 하는 이유
Java와 Spring을 선택하고 해당 언어를 사용하는 회사에 입사하더라도, 회사의 상황에 따라 인수합병이나 신규 프로젝트로 인해 다른 언어로 개발해야 할 수 있습니다. 또한, 새로운 과제로 인해 기존에 다루지 않았던 AI API를 활용하여 AI 제품을 개발하는 등 다양한 상황이 발생할 수 있습니다.
이런 상황들이 자주 생기다 보니 개발자들은 배움과 공유를 적극적으로 활용하고 있습니다.
그렇다보니 데일리 스크럼과 그룹 멘토링, 팀 회고 등을 통해 잘 성장할 수 있는 소프트 스킬이 절대적으로 중요합니다.
하드 스킬은 지금 회사에서 일하고 있고 가장 최신의 기술들을 사용하고있는 현직자 멘토들의 도움을 받아 좋은 코드를 짤 수 있도록 돕지만, 소프트 스킬은 오랜 경험이 있는 디렉터들이 옆에서 도와줄 것입니다.
사소한 것도 질문할 수 있도록 질문할 수 있는 분위기를 형성해주고, ‘좋은 질문’을 할 수 있도록 가이드를 제공할 것입니다. 또, 트러블 없이 소통하는 법, 피드백을 수용하는 법, 배운 내용을 정리하는 방법 등 스스로 성장하기 위해서는 꼭 알아야하는 노하우와 방법을 모두 알려줄 것입니다.
나와 같은 방황을 하지 않도록
Kernel360의 커리큘럼이 낯설고 어렵게 느껴질 수 있습니다. 강사는 없고 디렉터만 있는 과정인데 디렉터가 과연 나를 잘 이끌어줄 수 있을까? 고민이 될 겁니다.
저의 이야기를 먼저 해드리자면, 제가 처음에 개발자가 될 때 이력서를 2천개에서 3천개 정도 낸 적이 있습니다. 정말 어렵게 취업을 했었죠. 개발자로 취업 되어서는 회사에서 할 줄 아는게 없었어요.
그런데 돈을 받고 일하는 거다 보니 빠르게 배워 한 사람의 몫을 하기 위해 회사에서 불을 켜고 출근해서 아침부터 밤늦게까지 일하고 불을 끄고 퇴근을 하며 업무를 구현하기 위해 노력했었죠. 성장하는 방법을 잘 모르다보니 엄청나게 많은 시행착오를 겪었습니다. 그러면서 내 후배들은 이렇게 오랜기간 노력하지 않아도 성장을 잘 할 수 있도록 도와주고 싶다라는 생각을 했습니다.
Kernel360은 저의 그런 경험과 마음을 담아 만든 과정입니다. 저 뿐만 아니라 멘토진, 운영진, 좋은 동료들도 함께 할 것이고요.
성장을 하고 싶다면, 성장 에너지가 가득한 곳에서 좋은 피드백을 받으며 끊임없이 변화하는 기술 환경에서 살아남는 기술을 배우고 싶다면 도전해보세요!
여러분을 돕고 응원하겠습니다.
다른 이야기가 더 궁금하다면