빠에야는 개발중

2017년을 회고하고 올해 계획을 세워보자 본문

일상

2017년을 회고하고 올해 계획을 세워보자

빠에야좋아 2018. 1. 15. 22:46

새해가 밝았다. 보름 남짓을 생각만 하다가 드디어 회고를 한 번 해보고자 한다.

2017년은 어땠나

그냥 학부생

대학교에 입학하고 5년이 지나 어느덧 4학년이 된 2017년, 취업은 생각 뿐, 가진거라곤 4점 조금 안되는 학점과 친구들이랑 진행하고 있는 NAVER D2 CAMPUS FEST 출전 프로젝트 하나… 이런 걸로 내가 능력을 보여줄 수 있을까? 아니 애초에 내가 능력이 있긴 한건가? 그런 고민들로 가득한 채로 있었다. 결국 캠퍼스 페스트는 예선 탈락의 고배를 마셨고 그렇게 내 겨울방학은 끝나는 것 같았다.

우연한 기회, 그리고 도전

1월 말, 친구의 소개로 다음세대재단에서 후원하는 소셜이노베이션캠프36 해커톤(이하 소캠)에 나가게 되었다. 그전까지 정보올림피아드 등 프로그래밍 관련 대회와는 연이 없었던 지라 지레 겁부터 먹었는데, 학생들끼리 부대껴나보자 하는 심정으로 눈 딱 감고 발을 내딛었다.

그런데 이게 웬걸, 직장인만 가득했다. 잘나가는 N사 3년차부터 등산을 좋아하는 대기업 6년차까지.. 다양한 곳에서 다양한 사람들이 모여있었다. 100명 남짓 되는 사람들 중 정작 학부생은 다섯 명도 채 안됐다. “아니 이게 뭐지??” 패닉이 왔다. 나는 배우고자 하는 생각에 여기에 왔는데 오히려 폐만 끼칠 게 뻔하지 않은가. 그래도 그 자리에서 도망칠 수는 없었기에 어떻게든 발버둥을 쳐야겠다고 생각했다.

다행히 팀원들은 내가 학부생임을 잘 알고 많은 도움을 주셨다. 바쁜 개발 도중에 칭찬을 들어가면서 한건 나밖에 없었다… 그 정도로 모든 것이 배움의 연속이었다. 맛보기로 시작했던 스프링 프레임워크를 조금 더 써볼 수 있다는 것 만으로도 큰 도움이 되는데, 거기에다 현업인이 직접 개발하는 걸 바로 옆에서 볼 수 있다니! 마치 공모전이 아니라 세미나에 온 것 같은 기분이었다. 문제는 그렇게 지켜만 보고 질문을 많이 못했다는 것(…) 좀 더 물어보고 배울 걸. 이 해커톤에서 나는 대상에 해당하는 Social innovation 상을 받았고 지금도 자기소개서에 한 줄을 차지하여 효자 노릇을 톡톡히 해주고 있다.

네이버에서 인턴! 그러나…

상반기 공채는 자격미달로 패스하고 하계 인턴 자리를 노려보았다. 서류는 무난하게 통과하는 경향을 보였지만 많은 회사들이 코딩테스트 전형을 가지고 있었고, 알고리즘 공부가 소홀했던 나는 어김없이 테스트를 말아먹었다… 그러던 중 코딩테스트가 없던(…) 네이버에 면접을 보러가게 되었다. 태어나서 처음 보는 면접이었기에 굉장히 긴장을 많이 했던 것 같다. 나도 이렇게 떨 수 있구나 하는 생각마저 들었다.

면접은 주로 나의 경험을 물었다. 스토리텔링에는 자신이 있었기 때문에 부담없이 스타트를 끊을 수 있었고 자연스럽게 기술 질문, 코딩 질문으로 넘어갈 수 있었다. 기술 질문은 전체적으로 무난한 난이도지만, “UDP의 신뢰성을 높이기 위한 방법이 무엇이 있을까요?”라는 질문을 받고 UDP가 신뢰성이 떨어지는 단점이 있다고만 알고 있고 그 해결 방안을 생각하지 않았었기 때문에 당황해서 생각할 시간을 달라고 무심코 말해버렸다. 결국 대답하지 못했고 굉장히 뻘쭘했다… 거기에 이어서 코딩 질문은 “단방향 연결 리스트의 요소의 순서를 역으로 하는 함수를 짜보세요”라는 문제였는데, 이것마저 중간에 막혀버렸고 여러번 질문을 해서 더듬더듬 해결을 해나가다가 시간부족으로 면접이 종료 되어버렸다. 화이트보드에 그림이라도 그려놔서 망정이지 그거라도 안그렸으면 면접에서 고배를 마셨을 것이라 확신한다. 다시 한번 나의 문제해결능력 부족을 통감하는 때였다. 그런 내 마음은 아는지 모르는지 합격 통보는 나에게 찾아왔다. “내가 왜 합격이지?”, “내가 네이버를 간다고?” 이런 의문들만 가득했다. 하지만 어김없이 입사일은 찾아왔고 나는 그린팩토리 22층으로 가게 되었다.

나는 카페 개발 팀에서 인턴으로 8주 간 일했다. 가장 크게 받은 느낌은 “이게 직장이구나”였다. 소캠에서 느꼈던 그것과는 사뭇 달랐다. 사람을 움직이는 룰이 있고 없고의 차이는 정말 큰 것이었다. 모든 것은 거대한 시스템에 의해 움직였고 나도 그 중 하나였다. 내가 얼마나 개발을 잘하고 못하느냐의 문제 그 이상으로 “내가 여기서 살아남을 수 있을까”라는 고민이 들었다. 그렇다고 회사의 시스템이 싫은 것은 아니었다. 내가 이런 좋은 회사의 한 부분이 되어 함께 움직이는 것이 나름 뿌듯했고, 좋은 시스템과 좋은 멘토, 팀원들은 나의 모든 부분을 성장시켜 주었다. 앞으로도 여기서 계속 일하고 싶다는 생각이 들었다.

인턴으로서 나는 과제를 받았다. 내심 카페 개발에 참여할 수 있지 않을까 하는 기대도 했지만 과제를 받고 난 후에 내 주제를 새삼 파악했다. 그래 인턴 주제에 뭘 하겠냐… 그리고 그 주제 파악은 더 뼈 아프게 현실로 다가왔다. 과제만으로도 나는 충분히 힘들어할 수 있었던 것이었다(?). 하는 일은 그전에도 해왔던 것들이었지만 그 퀄리티는 전혀 달랐다. “그냥 돌아가는 코드를 짜고 적당히 다듬으면 되겠지”라는 생각은 거의 전면 부정당했다. 나는 안일한 나 자신을 고치느라 꽤 애를 먹었던 것 같다. 지금도 완전히 바뀌지 않아 노력이 필요하다고 생각하는 부분이다. 또 그렇게 나는 큰 배움을 얻을 수 있었다. 더불어 점점 직장인이 되어간다고 “착각”했다.

8주 간의 인턴 생활이 끝나고, 최종 면접을 진행했다. 면접이라기 보다는 면담에 가까울 정도로 밝고 가벼운 분위기로 진행되었지만 돌이켜보면 그런건 다 함정이었던 것 같다. 그 뒤에는 엄격하디 엄격한 평가가 나를 기다리고 있었을 테니까. 여기서 나는 진정으로 내 능력, 사고방식 그 모든 것이 학부생에 머물러 있었다는걸 깨닫는다.

이러한 질문이 있었다. “문자열을 계속해서 붙이는 코드를 짜보세요. 그것이 1억개가 된다면 메모리에서 어떤 일이 벌어질까요?”. 필시 이 질문은 문자열 append를 단순히 “+”로만 코딩한 내 자신을 일깨워주기 위한 것이었으리라. 심지어 이 내용은 인턴 기간 동안 새롭게 배웠던 내용이기도 했다. 그러나 나는 전~혀 눈치채지 못했다. 그런 융통성이나 임기응변이 부족했다고 밖에 말할 수 없을 것이다. 나는 너무나 당연하게도 “학교에서 배웠던” 자바의 메모리 구조에 대해 매우 상세하게 설명했다. 면접관이었던 팀장님의 약간 씁쓸한 표정이 아직도 기억에 남아있다. “그 뜻이 아닌데…”하는. 정직원 전환 탈락 소식을 전해받고서야 그 의미를 깨달을 수 있었다. StringBuilder를 쓰라는 이야기였고 메모리가 어떻게 생겨먹었는지보다 그걸 어떻게 쓰고 있느냐에 대한 질문이었다는 것을 말이다. 나는 완전히 학부생 레벨에서 생각하고 있었고 그것이 큰 차이가 되어 탈락한 것이라고 그렇게 회고했다. 만약 이 질문이 직접적인 탈락 원인이 아니라 하더라도 내 근본적인 사고방식에 부족함이 있었기 때문일 것이다.

코딩테스트가 무서워요

나는 알고리즘 문제 해결을 등한시하는 경향이 있었다. “오래 생각하다보면 해결되겠지. 코드로 구현하는 것도 시간을 많이 들이면 될거야.” 그렇게 생각할 뿐 중요한 건 내 스킬이라고 생각했다. 하지만 현실은 전혀 달랐던 것 같다. 하반기 공채, 동계 인턴 모두 코딩테스트에서 고배를 마셨다. 어떤 회사는 정말 아깝게, 어떤 회사는 정말 처참하게 털렸다.

코딩테스트는 문제 해결 능력과 그 구현 능력에 시간제한을 요구했다. 정말로 잘하는 사람이라면 시간 내에 할 수 있을 것이라는 생각이 들었고, 이건 정말 부정할 수 없는 100% 내 능력 부족이라는 생각이 들었다. 지난 내 생각들이 너무나도 안일하고 나태했다는 걸 느끼고 부끄러움을 감출 수가 없었다. 많은 노력이 필요하다고 생각했고, 그만큼의 시간이 나에게 주어져 있는지도 생각해보게 되었다. 최대한 빨리 취업을 하려면 코딩테스트는 최우선순위의 선결과제로 내 머리속에 등록되어야할 것이다.

2018년은 이렇게 하자

나에게 있어 2018년의 핵심 키워드는 여전히 “취업”이다. 작년 한해 동안 보고 듣고 느낀 것이 있고 배운 점이 분명히 있다. 그것들로 미루어 보아 내가 앞으로 해야 할 일들은 다음과 같다.

개념을 확실하게

나는 개발 능력이 부족하다. 경험이 부족하고, 고도화 되지 못했다. 용어도 잘 모른다. 어디서 들은 건 있어서 몇가지 용어는 잘 사용하고 있지만, 전체적으로 개발자답지 못하다고 생각한다. 그렇기 때문에 우선은 개념을 다져야한다고 생각한다. 학교 공부는 남부럽지 않게 했지만, 정작 나에게는 선명하지 않은 전공 지식들만 남았고 이들은 나에게 혼동을 준다. 기사 자격증을 따는 수준을 넘어서서 좀 더 전문화 된 지식을 정확하게 알 필요가 있다. 따라서 CS를 다시 공부하되, 현재 내가 필요한 부분을 중점적으로 보고자 한다. 이들은 면접에서도 도움이 될 것이다.

코딩테스트

앞서 말했듯이 나는 지금 코딩테스트에 매우 약한 모습을 보이고 있다. 따라서 알고리즘 드릴 사이트에서 많은 문제들을 풀어 감각을 높이는 것이 중요하다고 생각한다. 무작정 많이 하는 것이 좋은 것인지는 앞으로 알아봐야 할 것이다.

토이 프로젝트

지금까지의 기술 스택과 그 능력으로는 시중에 내놓을만한 제품을 절대 만들 수 없다. 또한 개발 과정도 번거로움과 어려움을 겪을 것이다. 따라서 새로운 기술 스택을 쌓고, 빠르고 좋은 개발 능력을 얻기 위해서는 1인 프로젝트가 필요하다고 생각했다. 먼저는 스프링 프레임워크를 더 잘 익히고, 그 다음 프론트 프레임워크도 하나 익혀 혼자서도 완전한 서비스를 구현할 수 있도록 하고 싶다. redis, ELK 스택 등 이름만 알고 있던 기술들을 한번 써보고 싶은 호기심도 있다.

후기

쓰다보니 정말 주저리주저리 말을 늘어놓았다. 간략하게 쓰겠다고 생각했는데…
다음에는 이렇게 일기처럼 말고 정말 개발자처럼 기술에 대하여 논하고 싶다.

Comments