광탈 후 씁쓸한 마음이 아직 채 회복되지 못했지만, 앞으로 나태해질 때마다 이번 경험을 자극제로 삼기위해 탈락 후기를 적어두려고 한다.
서류 지원
네이버 커넥트재단에서 주최하는 부스트캠프 8기 웹 풀스택 전형에 지원했다.
비전공자이자 주언어가 Node.js인 나에게 CS지식과 자바스크립트 기반의 웹 풀스택 기술을 교육해주는 이 캠프가 최선의 기회라고 생각했다. 6월에 학원을 수료하고 올해 말 ~ 내년 초 입사가 목표였던 나에게, 7월부터 올해 말까지 진행되는 이 캠프가 시기까지 완벽했다.
6월 2일에 위코드 부트캠프 생활이 끝나고 마감일인 6월 12일까지 포트폴리오를 정리하고 자기소개서를 쓰느라 정신이 없었다.
염치 불고하고 취준 제대로 해본 대기업 다니는 친구에게 자소서 첨삭도 여러번 받았다.
첫 직장을 들어갈 때 자소서 없이 resume만 준비해서 한 번에 입사했기 때문에 제대로 자소서를 작성해본 적이 없었다.
친구의 피드백으로 5번 정도 고친 내 자소서가 나는 마음에 들었으나,
친구도 나도 문과이기 때문에 이게 개발자로서 좋은 자소서였는지는 사실 자신이 없다.
안타깝게도 1차 코딩테스트에서 탈락하는 바람에 검증이 불가능하게 되어버렸다 ㅎㅎ...
비슷한 내용으로 다른 곳에도 지원해봐야 이게 신입 개발자로서 먹히는 내용인지 알 수 있을 것 같다.
1차 코딩테스트 준비
네이버 부스트캠프에서 1차 코딩테스트는 CS 기초 지식과 알고리즘 문제로 구성된다고 미리 고지해주었다.
자소서를 제출한 시점에 나는 2월부터 위코드 부트캠프의 프리코스 과정을 시작해 6월 초에 본과정을 수료한 개발 공부 4개월차였다.
학원에서 어느 정도 규모 있는 기업들에서는 코딩 테스트를 보니 코딩 테스트를 잘 봐야한다고 얘기는 들었지만, 제대로 준비해본 적도 없었고 어떻게 준비해야 하는지도 몰랐다. 지금까지는 학원에서 하라는 대로 하면 됐는데, 학원을 벗어나니 막막한 마음이 들었다.
CS기초 지식은 네이버 부스트캠프 측에서 추천한 하버드 대학의 'CS50' 강의가 있길래 그걸 모두 들었다. (이 강의가 1차 시험 CS파트의 로드맵이길 바랐지만 실상은 그렇지 않았다...)
다행히 기존에 수강 중이던 인프런의 '비전공자를 위한 개발자 취업 올인원 가이드'에 코딩테스트에 준비 방법에 관한 내용이 있길래 그 방식을 참고했다.
강의에서 추천해주신 책은 제이웬그로우의 '누구나 자료 구조와 알고리즘(개정2판)'이었고, 마침 이 책이 자바스크립트 풀이도 포함하고 있다고 하여 바로 구매했다. 당시 시중에 자바스크립트로 작성된 자료 구조/알고리즘 책이 잘 없길래 의아했는데, 지금와서 보니 그 이유를 알 것 같기도 하다.
아무튼 CS50 강의를 모두 수강하고 알고리즘 책을 처음부터 끝까지 쭉 읽었다. 강의를 다 듣는 데 4일, 책을 다 읽는데 4일 정도 걸렸다. 취준만 하는 백수라 가능한 일정이었지 싶다.
강의는 듣는데 특별히 이해가 안되거나 어려운 부분은 없었는데, 책에서는 어려운 부분이 많았다. 특히 배열에서 트리, 트라이, 그래프 쪽으로 넘어가면서 머리가 터지는 줄 알았다. 초반에는 착실히 모든 예제와 연습 문제를 직접 자바스크립트 코드를 풀어가며 읽었는데, 뒤로 갈 수록 너무 어려워서 그러기가 힘들었다. 여기서 자바스크립트의 한계를 조금 느꼈는데, 트리와 그래프 같은 경우에 node라는 지정된 형태의 객체(?)를 사용해 구현하는데 자바스크립트에서는 그런 객체 구조가 익숙하지 않다고 생각했다. 연습 문제를 풀며 class를 만들어 instance를 생성해 사용했는데 아직도 그게 맞게 한 건지는 모르겠다. 과정이 매우 복잡해지는 것 같다는 생각이 들었다. 이 부분은 앞으로 공부를 더 해가며 알아가야 할 것 같다.
그렇게 책을 다 읽긴 했으나, 모든 알고리즘이 이해되지는 않은 상태로 프로그래머스의 코딩 테스트를 풀기 시작했다.
유튜브에서 작년 네이버 부스트캠프에 합격한 유튜버가 올려준 영상에서 프로그래머스의 코딩테스트 고득점 Kit를 모두 풀 수 있다면 네이버 부스트캠프의 코딩테스트는 쉬울 거라는 말을 듣고, 그 문제들을 풀기 시작했다.
책을 읽은 직후에는 Lv.2, Lv.3 문제들이 술술 풀려서 '나 코딩 테스트에 재능이 있는 걸까...?' 싶었다. 이대로만 가면 합격하겠다 싶었는데, 책 읽고 난 이틀차부터 책에서 배운 풀이법들의 기억이 흐려지더니 내 본래 실력을 되찾았다. Lv.2 문제들도 8시간 동안 붙잡고도 안 풀리는 일들이 수두룩해져 좌절의 쓴맛을 매일 맛 봤다. 스스로 과대평가는 이쯤 하자는 생각으로 Lv.1부터 풀기 시작했는데, 그래봤자 프로그래머스 문제들을 푼 날은 시험날까지 총 3일 정도였다. 이렇게 어설픈 준비 후 대망의 코딩테스트 1차 시험날이 되었다.
1차 코딩테스트 시험
시험은 저녁 7시에 진행됐다. 인생 첫 코테이기도 하고, 붙고 싶은 마음이 너무 간절해서 긴장이 많이 됐다. 저녁까지 뭘 해도 집중이 잘 안되길래 CS50 강의 자료들을 다시 보고 프로그래머스 Lv.1 문제들을 풀어보며 시간을 보냈다.
그리고 시험이 시작되었다. 시험 내용은 유출하면 안 되기 때문에 얼마나 자세히 적어도 되는지 모르겠지만 (고소 전에 따로 말씀 주시면 글 수정할게요 관계자님) 시험 전에 CS50를 다시 보는 것은 의미 없는 짓이었다. CS50 강의에서 배운 내용은 거의 시험에 나오지 않았다. 객관식 CS문제들에서는 너무나 CS 기초 지식 스러운 내용들이 나왔고, 그런 기초 지식이 없는 나는 보기 좋게 아는 게 하나도 없었다. (지식 없이도 풀 수 있는 논리 문제들이 나오길 바랐다.) 불행 중 다행이라면 검색이 가능한 시험이었기에 아주 열심히 검색을 했다. 시험 시간이 총 120분이었는데, 처음부터 CS 40분, 각 알고리즘 문제 40분 할당하자는 마음이었기에 40분 동안 열심히 검색하며 CS 문제를 풀었다.
사실 풀 때는 열심히 검색해서 많이 맞았을 줄 알았는데 결과를 보니 다 틀린 것 같다. ㅎㅎ..
그리고 알고리즘 2문제가 나왔는데 여기서도 어이없는 일이 있었다. 첫 번째 문제에서 언어를 자바스크립트로 바꿨는데 웬 처음보는 이상한 코드들이 있는 것이었다. 모름지기 기본 제공 코드로 'function solution(param) { let answer = 0; (~~내 코드 작성~~) return answer; }'가 있어야 한다고 생각한 나는 문의하기 버튼을 누르고 자바스크립트 기본 제공 코드가 잘못됐다고 보고했다. 그리고 담당자에게 문제를 잘 읽어보시라는 답변을 받았다. (ㅋㅋㅋ) 알고보니 사용자로부터 터미널로 직접 값을 입력받을 때 사용하는 코드였고 그 코드를 경험한 적이 없는 나는 오류가 난 줄 알았던 것이다. 여기서 나의 나태함이 또 드러나는 부분은 사실 그 코드는 시험 전 테스트 페이지를 접속해볼 때도 나와있는 코드였는데 나는 그때도 그 코드가 오류겠거니 하고 넘어갔었다.
그렇게 첫 번째 알고리즘 문제는 어디에 내 답을 써야하는지도 파악하지 못하고 포기하게 되고, 두 번째 문제라도 열심히 해보자는 마음으로 끝까지 최선을 다했다. 두 번째는 문제는 다행히 내가 아는 코드로 제공됐다. 특별한 알고리즘을 사용하는 문제는 아니었고 돌이켜보면 그리 어려운 난이도의 문제는 아니었는데 왜 그렇게 헤맸는지 모르겠다. 뭐 경험 부족 때문인 것 같다. 열심히 풀었지만 예외처리를 하지 못한 부분도 있었고, 테스트 케이스 하나가 계속 오답이 났는데 끝까지 원인을 찾지 못했다...
코테 신생아인 나는 관련 용어들도 몰랐는데 한 문제를 완벽히 풀면 1솔, 두 문제는 2솔, 한 문제도 제대로 못 풀었으면 0솔이라고 하더라. 난 따지자면 0솔이었다. 그리고 '구현 문제'라는 말도 이번에 알게 되었는데, 이번 시험에서 푼 문제의 유형을 구현 문제라고 하더라.
탈락 소감
월요일 저녁에 1차 시험을 보고 토요일에 2차 시험이 있는 일정이었다. 작년에도 수요일 저녁 즘 결과가 나왔다길래 월요일 밤에는 시험이 망했음을 직감하고 맥주 한 캔과 불닭볶음면 먹으며 쉬어주고 (5년만에 먹은 불닭볶음면이었다) 수요일 오후까지 시험 때 처음 본 그 터미널 입력 코드를 익힐 수 있다는 '구름'에서 코딩 테스트 연습을 하고 있었다. 솔직하게 시험이 어느 정도 망했다고 생각은 했지만, CS 문제도 검색 열심히 해가며 풀었고 알고리즘 한 문제에서 통과한 테스트도 몇개 있으니 붙을 수도 있다고 생각했다. 작년에 1차 시험을 잘 보지 못했는데 합격했다는 후기들이 있길래 나에게도 그런 일이 일어날 줄 알았다. 그리고 저녁 5시 쯤 받은 메일은 아래와 같다.
요약하자면 '당신은 탈락입니다.' 응원은 감사하지만 기대했던 마음이 너무 커서 멘탈이 나갔다. 풍부한 상상력을 발휘해 부스트캠프를 수료하고 네이버에 입사한 모습을 이미 백번쯤 그려놨는데 다 물거품이 됐다.
오늘이 탈락한 다음날인데 슬퍼하는 건 이만하면 됐다.
이성적으로 되돌아보자면, 부스트캠프 측에서 나를 뽑아줄 수 있는 근거가 없었다. CS 문제도 제대로 풀지 못했고, 알고리즘 문제도 잘 풀지 못했다. 그 원인을 살펴보아도 내가 실력을 갖췄는데 안타까운 실수를 한 것도 아니고 그냥 지식이 부족했다.
학원에서 입문자들끼리만 모여 생활하다 보니 이 업계 전체의 경쟁자들의 수준을 간과하고 있었던 것 같다. 나는 이제 공부한지 4개월된 초초입문자이지만, 사실 이 바닥에는 4년동안 컴퓨터공학을 전공하고도 학교 수업 외에 다양한 개발 경험을 축적해오고 긴 시간동안 알고리즘 공부와 코딩테스트 연습을 게을리하지 않은 사람들이 많을텐데 말이다.
아주 솔직하게 회고하자면 서울 소재 대학의 경영학과를 나와서 경영학도로서의 여러 활동도 활발히 했던 나는 이전의 비개발 직무의 취업이 그리 어렵지는 않았다. 그리고 개발자라는 직업이 유망하고 나와 잘 맞는다고 판단하여 하던 일을 박차고 나와, 부스트캠프에서 탈락하기 직전까지도 나라면 빠르게 무언가를 이뤄낼 수 있을 거라는 자만함이 있었던 것 같다. 경영학도로서 나는 쌓아온 것이 많았기에 그간의 많은 것들이 수월했던 것이었는데, 나는 그게 나라는 사람의 능력과 재능 덕분이라고 착각하고 있었다. 그렇기에 이번 탈락이 나에게는 아주 소중하고 고마운 경험이다. 내 현실을 일깨워주고 정신을 차리게 해주었다. 물론 사람마다 더 빨리 배우는 사람이 있고, 더 효율적인 방법으로 지혜롭게 헤쳐나가는 사람이 있겠지만, 지금 나에게 필요한 것은 그런 걸 떠나 절대적인 공부량인 것 같다.
탈락 통보를 받았을 때 애인과 저녁을 먹고 있었는데, 애인이 '이 공부를 시작한지 얼마 되지 않았으니 떨어지는 것도 납득할만 하다. 사실 네가 합격했다면 그 업계가 전문성을 요하는 곳이라고 할 수 있는지 의심해봐야 할 지도 모른다.'고 했는데 그 말이 참 위로가 되고 좋은 방향이라는 생각이 들었다. 내가 동경하는 개발 업계가 아직 실력이 이렇게 부족한 나를 너무 쉽게 받아준다면 애당초 내가 동경할만한 곳이 아니었을 것이다. 4년을 준비하고도 떨어졌다면 이 길을 계속 가는 것을 진지하게 다시 생각해봐야 했겠지만, 이제 4개월이지 않은가. 덕분에 내가 모르는 것이 얼마나 많은지 한 번 더 깨달았고, 공부할 것이 명확해지는 것은 즐거운 일이다.
여태 조금은 수월한 삶을 살아온 내가 스스로 생각한 내 인생의 아쉬운 점은 그다지 도전하며 살지 못했다는 것이었다. 도전은 곧 탈락과 실패인데 그런 경험이 별로 없었다. 그리고 이번 탈락이 내가 열심히 도전하고 있다는 것을 보여줬다. 앞으로도 나는 숱하게 탈락하고 실패할 것이다. 그럴 때마다 좌절은 짧게 하고, 도전한 나를 자랑스럽게 여기기를!
내년에도 네이버 부스트캠프에 도전할 지는 모르겠지만, 그 때 문제를 풀게된다면 아주 쉽다고 느낄 수 있도록 실력을 갖추는 것이 지금 내가 해야할 일이다.
'소감 & 회고록' 카테고리의 다른 글
비전공 백엔드 개발자 1년 생존기 (10) | 2024.08.31 |
---|---|
[회고] 1.4TB로 커져 버린 DB 테이블 교체하기 (2) | 2024.07.21 |
[회고] 3rd 프로젝트: WECAR - c2c 차량 대여 플랫폼 제작 (0) | 2023.06.08 |
[회고] 2nd 프로젝트: DREAM - KREAM 모델링 c2c 경매 플랫폼 제작 (0) | 2023.05.18 |
[회고] 첫 프로젝트: 4bsop - Aesop을 모델링한 커머셜 웹사이트 제작 (1) | 2023.04.17 |