약 4개월 간 엘리스 SW 트랙을 수강하고 나서의 느낀 점을 정리하는 차원에서 글을 쓰게 되었다. 추후 엘리스 SW 트랙에 관심이 있어 지원하고자 하는 분들에게 도움이 됐었으면 하는 의미에서 좀 상세히 적으려고 한다.
내 소개를 잠깐하자면, 수도권 4년제 대학의 컴퓨터공학부를 졸업하였다. 마지막 학기까지는 블록체인에 관심이 생겨 공부를 하였지만, 모종의 이유로 내 길이 아닌 것 같다고 생각했다. 졸업할 쯔음 내가 재밌게 일할 수 있는 직업이 무엇일까에 대한 고민이 많았고, 전공 수업 때 재밌게 들었던 웹쪽을 한 번 더 깊게 공부해보고 싶었다.
혼자 웹 공부를 할 때 초기 한 두달 동안은 굉장히 재밌어서 밤이 새도록 코딩만 했었다. 정확히는 웹 공부가 재밌었다기 보단, 노마드 코더에서 제공하는 강의가 재밌었다고 하는 편이 더 맞을 것 같다. 그렇게 강의가 끝나고 한 동안 웹 공부가 손에 잡히지 않았고, 시간을 죽일 수는 없으니 백준, 프로그래머스 등에서 알고리즘 공부를 하기 시작했다. 웹 개발자를 할 것이기 때문에 JavaScript를 주언어로 알고리즘을 3개월 정도 공부했다. 그러다 보니 자연스럽게 JS 문법에 대한 이해도가 높아졌다. 웹 공부를 했던 것을 썩히고 있을 수만은 없어 개인 프로젝트를 시작했는데, 원하는 것을 만드려다 보니 스스로 고민도 많이하고, 무작정 따라하던 클론코딩보다 훨씬 내 것이 되는 것이 많았고 웹 공부에 대한 흥미가 급격하게 증가하게 되었다.
개인 프로젝트도 거의 완성될 때쯤, 과연 내가 혼자 공부한 것만 가지고 현업에 가서 다른 개발자분들과 함께 협업할 수 있을까에 대한 의문이 들었다. 실력적으로도 부족함을 느꼈고, 팀 협업 경험이 적다고 느꼈다. 프로젝트 팀원을 구하는 사이트에서 직접 팀원을 구해 직접 프로젝트를 진행할 수도 있었지만, 과연 나부터가 그런 프로젝트에 혼신을 다해 참여할 수 있을까? 라는 생각이 들었다.
또한 개발자는 인맥이 중요하다고 생각했다. 부트캠프를 들으면서 나와 같이 웹 개발자를 준비하는 다양한 사람들을 만나고 사귀면서 인맥을 쌓고 싶었다. 결국 이러한 이유에서 부트캠프를 알아보기 시작했다.
시장에서 개발자 수요가 늘어난 만큼, 다양한 기업에서 부트캠프를 제공하고 있다. 그 중에는 강의료만 거의 천만원을 훌쩍 넘는 교육도 있었다. 그런데, 네이버, 배민 같은 대기업에서 운영하는 부트캠프는 오히려 수강생에게 돈을 지급하는 방식으로 운영되는 것을 알게 되었고, 돈을 내고 수강하는 곳보다는 돈을 받거나 전액 무료인 부트캠프를 찾게 되었다. 그 중에 하나가 엘리스 SW 트랙이었으며, 국비지원으로 전액 무료였고, 국취제와 함께하면 월 60만원의 교육 지원금도 받을 수 있었다.
아무리 수강료가 무료라고 해도, 내게 맞는 커리큘럼을 가져야 했다. 나는 기존에 Node.js Express와 MongoDB를 기준으로 공부를 했었기 때문에, Node.js 백엔드 개발자 또는 React.js 프론트엔드 개발자를 양성하는 부트캠프에 가고 싶었다. 1차 목표로 삼았던 네이버 부스트캠프 웹모바일 분야랑 엘리스 SW 트랙의 커리큘럼의 거의 흡사했기 때문에 엘리스 부트캠프에 지원하게 되었다.
부트캠프에서 수강생에게 지원하는 요소가 다양했다. 성수역 근처에 있는 성수낙낙이라는 건물의 한 층을 모두 엘리스가 소유하고 있어, 원한다면 오프라인에서 맥을 이용한 개인 공부, 스터디룸에서 회의 같은 것을 진행할 수도 있었다. 또한 단순 부트캠프 제공뿐만 아니라 취업 연계를 위한 다양한 특강이 제공되며, 수료 이후에도 꾸준히 취업 연계를 위해 컨택이 있다는 점에서 엘리스는 부트캠프에 진심이라는 생각이 들었다.
엘리스 지원을 하고, 프로그래머스 Lv.1~2 수준의 코테를 본 후, 온라인 면접을 진행하여 뽑히게 되었다. 코테는 원래 준비했던 사람이라면 특별히 더 준비할 것이 없다고 본다.
온라인 면접 중에 기억나는 질문은 두 가지가 있는데, 하나는 웹 공부를 하면서 어려움에 닥치면 어떻게 극복하는지와 또 다른 하나는 같은 팀원이 자신이 맡은 부분을 수행하지 못한 경우 어떻게 할 것인가에 대한 질문이었다. 기초적인 개발자의 마인드가 있는지와 엘리스 커리큘럼 내에 있는 팀 프로젝트를 잘 수행할 수 있는지의 여부를 체크하는 것 같았다.
총 16주 동안 수업 -> 1차 프로젝트 -> 수업 -> 2차 프로젝트 순서로 진행된다.
내 기억이 맞다면
1~7 주차 : 웹 기초 지식 + HTML + CSS + JS + Node.js + MongoDB 수업
8~9 주차 : 1차 팀 프로젝트
10~13 주차 : React.js 수업
14~16 주차 : 2차 팀 프로젝트
이런 식으로 진행된다.
매주 월, 수, 금은 녹화된 강의를 듣는다. 하루치 강의를 다 듣는데 약 2~3시간 정도 소요됐던 것 같고, 간혹 실습 문제가 많거나, 정리할게 많은 날은 4~5시간까지도 소요되기도 하였다.
강의 퀄리티는 괜찮은 편인 것 같고, 각 파트마다 다른 강사님이 강의를 진행하는데, 강사님의 강의 실력에 따라 퀄리티가 많이 달라지는 것 같다고 느꼈다. 전반적으로는 좋은 편이고, 배속을 제공하기 때문에 원하는 속도에 맞춰 들을 수 있다는 것이 장점이었다.
매주 화, 목은 실시간으로 강의를 듣는다. 아침 10시부터 저녁 6시까지 점심시간 1시간을 제외한 7시간 동안 라이브로 강의를 들어야 한다. 부트캠프 초기에는 실시간으로 코치님들과 소통하는 방식이기 때문에 내가 부트캠프에 참여하고 있다는 것이 더 실감이 났고, 하나라도 이러한 방식이 맘에 들어 집중이 잘 되었다.
하지만 시간이 지날수록 동영상 강의에서 다룬 내용을 그대로 실시간 강의에서 다시 다루는 점과, 쉬는 시간을 1시간에 10분 꼴로 너무 잦게 갖는다는 점, 마지막으로 동영상 강의와 달리 배속으로 들을 수 없다는 점 때문에 개인적으로 굉장히 지루한 수업이 되었다고 느꼈다.
엘리스 측에서 당일 실시간 강의를 못들은 사람을 위해서 녹화 영상을 제공하는데, 어느 시점부터는 녹화 강의만 보는 사람도 있었다고 한다. 실시간 강의의 장점을 하나 꼽자면 '강의'에 초점을 맞춘 동영상 강의보다는 좀 더 프리하게 진행되기 때문에, 현업에서 개발자로 일하고 계시는 코치님들로부터 양질의 조언 또는 팁 같은 것을 들을 수 있다는 점이다.
프로젝트 주간에는 위에서 언급한 동영상 강의와 실시간 강의 처럼 수업이 제공되지 않고, 오로지 프로젝트를 위해서 하루종일 시간을 보낸다.
1차 팀 프로젝트는 엘리스에서 정한 주제(쇼핑몰)를 가지고 각 팀의 색깔을 입히는 방식으로 진행한다. 구현 목표로 갖는 사항 (관리자 기능, 구매 기능 등)도 엘리스에서 정해준다. 스켈레톤 코드가 주어지긴 하는데, 정말 말그대로 뼈대일 뿐 처음부터 끝까지 스스로 구현해야한다.
2차 팀 프로젝트는 자율주제로 진행한다. 1차는 2주간 '팀 프로젝트를 이렇게 진행해야 한다'는 것을 배웠다면, 2차는 1차때 배운 것에 '고도화된 어플리케이션을 직접 설계하고 구현해보는 것'을 추가로 배울 수 있는 것 같다.
1차, 2차의 공통점은 단순히 팀 프로젝트를 주구장창 시키는 것이 아니라, 어떻게 하면 좋은 협업을 할 수 있는지에 대한 엘리스의 가이드라인 같은 것이 있어서, 그 것을 따라가면서 협업하는 방식을 많이 배울 수 있다.
또한 각 팀에 배정된 프론트엔드 / 백엔드 코치님들과 매일 1시간씩 오피스아워를 진행하면서, 프로젝트를 진행하며 어려운 점에 대해 묻고, 구현한 사항에 대한 피드백을 받을 수 있다. 현업에서 일하는 3~4년차 개발자 분들의 시선에서 피드백을 받기 때문에, 시야도 넓어지고, 내가 고쳐야하는 습관, 더 공부했으면 하는 것들에 대한 조언이 마구마구 쏟아진다. 아마 엘리스를 참여해야하는 가장 큰 이유를 꼽으라면, 오피스아워 시간이라고 당당하게 말할 수 있을 것 같다.
그리고 마지막으로 부트캠프가 아닌 외부에서 구한 프로젝트면 경험하기 힘든 프로젝트라고 생각한다. 부트캠프는 여러 팀이 동시에 프로젝트를 진행하기 때문에, 우리 팀이 잘됐으면 하는 마음에서 다들 혼신을 다해 열심히 참여한다. 1차, 2차 프로젝트 모두, 프로젝트 기간에는 하루에 4~5시간만 자고, 밥먹는 시간을 제외하고는 거의 하루종일 프로젝트를 진행했던 것 같다. 다양한 팀원들과 다양한 문제에 마주하고, 이를 해결해 나가는 과정에서 많은 얘기가 오고 간다. 주니어 개발자로서 꼭 필요한 커뮤니케이션 능력과 문제 해결 능력, 팀 협업 능력을 동시에 기를 수 있는 아주 좋은 환경이라고 생각한다.
위에서 정리한 정도면 엘리스 SW 트랙이 어떻게 진행되는지는 모두 정리한 것 같다. 엘리스 SW 트랙의 지원을 고민하는 분들께 내 생각을 공유하고 싶다.
엘리스 SW 트랙을 운영하는 분들도 사람인지라 모든 운영 부분에서 완벽하지는 않다. 문의를 했는대도 답변이 몇일 동안 안오는 경우 꽤 보았으며, 오프라인으로 진행하는 각종 특강 등의 진행이 매끄럽지 않을 때도 있다. 만약 엘리스 SW 트랙에 참여한다면 모든 것이 100프로 일사천리로 진행될 것이라는 생각은 안하는 것이 좋다. 하지만 이는 일부분인 것 뿐이며, 전반적인 수강생에게 전달하는 사항은 매우 꼼꼼하게 잘 진행되고, 노션과 Discord를 통해 공지사항 등이 잘 전달된다고 생각한다. 다만 수강생과의 소통이 잘 이루어지나에 대해서는 아닌 편인 것 같다.
무조건 듣는 것을 추천한다. 허나 엘리스 SW 트랙이 모든 것을 알려주고 걸음마부터 하나하나 가르쳐주는 부트캠프는 아니다. 내 생각으로는 백준 실버2~골드5 수준의 문제를 풀 수 있는 수준까지 개인 공부를 진행하면 JS는 문제 없으며, 노마드코더 유튜브 클론 강의(또는 Node.js Express + MongoDB를 다루는 수업)를 완강했다면 HTML + CSS와 웹 기초 지식도 문제 없는 것 같다. 만약 본인이 노베이스로 지원해서 합격했다면 남들보다 최소 1.5배 속도로 성장해야 1차 프로젝트에서 1인분을 할 수 있을 것이다.
본인이 Event Loop에 대한 이해, async/await 및 Promise 등을 이용한 비동기 통신 방식에 대한 이해, Node.js Express로 3계층 구조 구현하기, mongoose ORM으로 MongoDB 사용하기 등이 능숙하다면 팀 프로젝트 경험이 필요한지 아닌지만 가지고 결정하면 될 것 같다. 물론 ReactJS와 TypeScript, OOP 등 더 다양한 강의를 다루지만, 해당 강의를 들으려면 10주차는 되어야하므로, 그 시간까지 기다리는게 아깝다면 따로 공부하는 편이 더 낫다고 본다. 다만 본인이 팀 프로젝트 경험이 부족하고, 각종 웹 기초 지식을 완벽하게 이해한 것이 아니라면 수강하는 것을 추천한다.
16주 간 엘리스 SW 트랙을 진행하면서 내가 달성하고자 했던 소정의 목표는 달성할 수 있었다. 좋은 개발자 동료를 사귈 수 있었고, 두 번의 팀 프로젝트 역시 주니어 개발자로써 큰 성장을 이루게 해주었다. 그 외에도 내가 모르고 넘어갈 뻔 하던 중요한 개념들과, 앞으로 나는 무엇을 공부하고 어떤 개발자가 되어야 할지에 대한 비전이 확립된 것 같다. 엘리스 SW 트랙은 웹 개발자 취준 기간에 내가 선택한 가장 좋은 선택이라고 말할 수 있을 것 같다.
만약 엘리스 SW 트랙에 참여하실 분들이 이 글을 읽는다면, 엘리스 SW 트랙이 수강하는 것만으로 모든 것을 얻을 수 있게 되는 부트캠프는 아니라고 말씀드리고 싶다. 부트캠프에 참여한 만큼 책임감을 갖고, 본인이 성장을 하기 위해 본인이 부단히 노력해야한다는 것을 말씀드리고 싶다.
마지막으로 16주간 나를 위해 노력해준 엘리스 측과 수많은 코치님 그리고, 함께 성장하기 위해 노력했던 레이서 분들에게 감사를 전하며 이 글을 마친다.