"6개월 동안 알고리즘만 팠다. 당연히 개발자가 될 줄 알았다. 그런데 나는 계속 떨어졌다."
졸업이 점점 다가오던 4학년 2학기.
이전 학기부터 생각만 해오던 것을 행동으로 옮기기 시작했다. 그것은 바로 개발자 취업 준비였다.
비전공자 IT 취업을 결심하게 된 계기
학교 과제로 코딩을 처음 접했을 때, 너무 복잡하고 어려워 과제를 척척 해내지는 못했지만 나에게 흥미를 가져다주기엔 충분했다.
코딩은 마치 재미난 퀴즈를 푸는 것과 같았다. 계속 에러가 나지만 좀만 고민하면 무엇이 문제였는지를 깨닫게 되고, 조금씩 나아갈 수 있게된다. 에러-> 고민 -> 해결 -> 다시 에러. 이 과정을 계속 반복하면 마침내 모든 퍼즐 조각이 맞춰지고 내가 의도한대로 코드가 잘 동작하게 된다. 코딩은 마치 거대한 예술 작품을 탄생시킨 것과 같은 희열을 주었다.
나를 움직이게 한 1인 게임 개발자 이야기
3학년 2학기가 끝나가던 시기에, 우연히 티비에서 1인 게임 개발자의 이야기를 보았다. 나보다 어린 나이였지만 스스로 게임 기획, 디자인, 개발까지 도맡아서 모바일 게임을 출시하고 팬을 만들어서 소통하는 모습이 매우 인상적이었다. 그 모습에 깊은 영감을 받아 나도 꿈을 품고 게임 개발을 해보기로 마음먹었다. 인터넷엔 온갖 1인 게임 개발 성공 신화가 펼쳐져 있었고 나에게 설렘을 주는 동시에 내안의 욕망을 자극했다. "나도 1인 게임으로 대박쳐서 그걸로 평생 먹고 살거야". 당연하게도 이런 생각이 들었다.
무작정 휴학 신청을 하고 게임 개발에 몰두했다. 겨울 방학 기간동안 시중에 가장 쉽게 나온 유니티 책을 한권 구입하여 그 책과 노트북을 가방에 넣고 매일 학교 도서관을 다녔다. 3월부터는 거의 5개월을 집에서만 개발에 몰두하였고 실제로 모바일 게임도 몇 개 출시까지 성공했다. 하지만 결과는 좋지 못했다. 사실 게임 출시를 하는 순간이 고생 끝이 아니라 진짜 고생의 시작인데, 그 당시에 나는 그걸 전혀 알지 못했으니 '어? 열심히 개발해서 드디어 세상에 내놓았는데 왜 인기가 없지?'라는 생각을 많이 하게 되었고 좌절했다.
꿈의 현실, 게임은 내 길이 아니었다
8월 말이 되고 정말 많은 고민을 했는데 한 학기 더 해봐야할지 이 꿈을 접고 복학을 할지 선택해야했다.
근데 실패의 원인을 계속 생각하다가 한 가지를 깨달았다. 나는 개발하는 것 자체가 재밌었던거지 사실 나는 게임을 좋아하지 않는다.
요즘 유행하는 게임이 뭔지도 잘 모르고, 게임 장르도 잘 모르며, 게임 좀 좋아한다는 친구들 얘기를 듣거나 게임 관련 커뮤니티 글을 살펴봐도 도통 무슨 말인지 못알아들을 때가 많다. 그러니 당연히 눈높은 사용자들을 사로잡을 게임을 기획할 수 없었으며 중독적인 요소를 넣기도 거의 불가능했다. 사실 내 게임을 개발하면서도 내 게임을 진심으로 재밌게 해본적도 없었다.
AI 수업에서 얻은 작은 자신감
이런 마음이 들자 게임 개발은 내 길이 아니라는 것을 느끼게 되었고 자연스레 마음을 접게되었다. 그리고 복학을 하고 한창 AI에 관한 관심이 높아지던 시기라 머신러닝, 딥러닝 수업을 듣게 되었다. 나름 코드를 많이 짜보았던 덕택이었는지 두 수업에서 모두 A 이상의 학점을 받았다. 전공에서 A 학점을 받은 경험이 없었는데 신기했다. 덕분에 코딩에는 나름 자신이 생겼고 그러다 IT계열로의 취업을 생각해보게 되었다.
취업을 위해 남은 3가지 미션: 코테, 면접, 프로젝트
졸업 전 마지막 학기를 앞두고 급하게 'IT 대기업 취업 방법'을 인터넷에 검색하여 정보를 수집했다. 주변에 컴공 지인이 하나도 없어서 인터넷만이 유일하게 정보를 얻을 수 있는 공간이었다. 정보를 종합해보니 크게 해야할 것은 3가지 정도였다. '코딩테스트', '면접', 그리고 내 이력을 보여줄 '프로젝트'였다.
나도 참 단순하게 생각했던게 면접은 기술면접 같은 걸 생각지도 못하고 그냥 인성 면접만을 생각했다. 면접관 눈에 잘 들고 열심히 하겠다고 말하고 내 열정을 보이면 되겠지.. 라고 생각하고 말았다. 프로젝트는 그냥 내가 그동안 진행했던 게임 개발이랑 학교 수업에서 진행했던 여러 AI 관련 과제 프로젝트로 어필해보면 될 것 같았다. 유일하게 아직 전혀 준비되지 않은게 코딩테스트라고 생각했다.
가장 급한건 코딩테스트
"그래, 나에게 가장 급한건 코딩테스트야. 코딩테스트만 통과할 수 있으면 그 다음부턴 어떻게든 비벼볼 수 있어"
지금 생각해보면 참 쉽게만 생각했었던 것 같다. 아무튼 그 당시엔 코테만 통과하면 된다는 생각을 하고 두꺼운 알고리즘 책을 사서 죽어라 파기 시작했다.
6개월 가량 진행된 알고리즘과의 사투
마지막 학기엔 채워야할 학점이 3점뿐이라 여유가 많아 알고리즘을 정말 많이 공부했다. 코딩을 좋아했던 이유가 마치 퀴즈를 푸는 느낌이 나서였는데, 알고리즘을 공부해보니 더 복잡하고 어려운 퀴즈를 푸는 것 같아서 적성에는 매우 잘 맞았다. 알고리즘을 하나하나 배우며 그 아름다움에 감탄했고 더 어려운 알고리즘, 더 어려운 알고리즘 문제에 관심이 생겼다.
알고리즘만을 집중적으로 공부했던 이 6개월동안의 시기에, 몇번의 실전 코딩테스트에도 응시를 했었는데 단 한군데도 합격하지 못했다.
하지만 이제 준비를 시작하던 시기였어서 탈락에는 별로 개의치 않았고 오히려 알고리즘의 재미에 빠져 하루를 가득 알고리즘 문제풀이로 채웠다. 매일매일 지식이 확장됨을 느끼는(?) 그런 뿌듯한 시기였다.
백준 사이트, 리트코드, 프로그래머스 사이트를 많이 이용했고 특히 백준 사이트에서 많은 문제를 풀었다. 학기가 끝나갈 때 쯔음에는 나름 세그먼트 트리, KMP 같은 난이도 있는 알고리즘도 이해하고 문제를 풀 수 있었고 백준 티어도 플래티넘을 달성했다(물론 백준티어는 실력지표가 아니다). 실제 코딩테스트에 나왔던 기출 문제를 풀면서도 자신감을 어느정도 얻을 수 있을만큼 실력이 성장했다.
드디어 코딩테스트 합격!! 그런데...
이제 졸업도 하고 시간은 더 많아졌다. 9월이 되자 신입 공채 공고가 꽤 많이 떴고 이름을 들어본 기업이라면 다 지원했다. 블라인드 테스트처럼 굳이 자소서 같은걸 안내도 되는 곳도 많아서 무지성 지원(?)을 난사했다. 대략 10군데 가까이 지원을 했고 코딩테스트를 봤다. 난이도나 유형이 천차만별이었지만 그래도 기본기에 집중해서 다양한 유형으로 준비를 했었다보니 이전처럼 큰 벽으로 느껴지지는 않았다.
그 결과 꽤 많은 회사의 코테에 합격할 수 있었다. 특히나 굵직한 기업의 코테도 많이 붙었다. 코테 합격 발표가 나오고 메일을 통해 바로 다음 일정에 대한 안내가 나오는데, 면접을 바로 보는 기업도 있었지만 중간에 필기 테스트를 보는 곳도 있었다. 특히나 라인은 문제가 어렵기로 소문이 났었고 넓은 범위를 다루는 걸로 유명했다. 그래도 최선을 다해 치루었던 코테였고, 이대로 떨어지고싶지는 않아서 발등에 불이 떨어진 것처럼 매우 급하게 준비를 시작했다.
이 시기부터 나는 함정에 빠지고 말았다. 코딩테스트는 전체 채용 프로세스에서 시작에 불과했던 건데 그 사실을 모르고 나는 마치 합격이라도 한듯이 마음이 좀 풀어졌었다. 왜냐면 나는 이전에 언급했듯이, 코딩테스트만 되면 어떻게든 비벼볼 수 있겠다는 착각에 빠져있었다. 필기나 인터뷰를 준비할 시간이 많지 않았는데도 열심히 하지 않았다. 코딩 테스트 실력이 코딩 실력이고 코딩 실력이 곧 개발자 역량의 전부라고 착각했던 나는 필기 지식과 인터뷰를 우습게 여겼다.
면접 탈락의 연속, 나는 아무것도 모르고 있었다
필기 테스트를 치루고, 수많은 면접을 보았다. 필기 테스트에서는 아는 문제가 없었고 면접에서는 대답할 수 있는 질문이 하나도 없었다. 전혀 예상하지 못한 결과였다. 면접 질문을 모아놓은 유명 깃허브 레포지토리의 요약본을 겨우 며칠 훓어본 정도로는 내가 실전에서 할수 있는게 하나도 없었다. 모든 기업에서 보기좋게 전부 탈락했다. 딱 코테만 통과할 줄 알았을 뿐 그 이상의 단계로는 하나도 나아가지 못했다.
진짜 급한건 알고리즘이 아니라...
이제 전략 수정이 필요했다. 그 과정에서 새로운 깨달음도 얻었다. 생각보다 코딩 테스트는 당락을 결정짓는 주요 요소가 아니었다. 생각보다 코딩 테스트를 잘보는 지원자는 많았다. 말그대로 코딩 테스트는 1차 거름망이었다. 결국 최종 합격을 위해서는 다른게 더 필요했다. 아직 내가 전혀 갖고있지 않은 새로운 무기....
그것은 CS를 공부하는 것이였다.
2편: https://yiyj1030.tistory.com/638
댓글