백엔드(Backend) 개발자가 되기까지(4)
2년하고도 조금 더 흐른 지금에서야 4편을 작성한다. 생각보다 많은 분이 봐주셔서 감사하고, 4편을 기다려주신 분에게 죄송스럽고 고맙다.
나는 3학년 2학기 겨울 방학 때, 부산의 한 스타트업에서 백엔드 개발자로 취업을 했다. 개발자로서 좋은 경험이 될 거 같았고, 그때 당시 Node.js 교육을 마친 지 얼마 되지 않아 자신감도 있었다. 그렇게 학교를 겸하며 회사에서는 자사 서비스 API 개발과 생존을 위한 정부 과제에 몰두했다. 정부 과제를 진행하면서 제대로 된 논문은 처음 접했고, 우리가 살아가는 세상의 문제는 이런 연구와 노력으로 해결된다고 생각했다. 또한, 논문을 접하면서 나의 부족함과 이런 논문은 어떻게 쓰는 걸까 하는 궁금증이 생겼다. 자연스레 대학원에 관심 생겼고, 나는 졸업을 하지 않은 상태였기 때문에 더욱더 대학원 진학하기 좋은 기회라고 생각했다. 그렇게 대학원 진학을 마음먹었다.
남들보다 늦은 시기에 대학원 진학을 결심했기 때문에 많은 준비가 되어있지 않았다. 미리 연구실과 컨택해서 교수님을 찾아뵙고 사전에 준비해야 하는 것에 대해서도 전혀 몰랐다. 다니고 있던 회사의 CTO분이 박사 출신이라 관련 정보를 알려줘서 급하게 준비했다. 그때 당시 나는 회사에서 실내 위치 인식에 관한 정부 과제에 참여 중이었기 때문에 연구실도 네트워크 컴퓨팅이나 사물인터넷 쪽으로 눈이 갔다. 관련 연구실을 찾아보고 자기소개와 수학 계획서를 작성해서 교수님에게 이메일을 보냈다. 다행스럽게도 교수님과 면담할 수 있었고, 그 뒤에 입학원서 및 면접을 통해 대학원의 네트워크 컴퓨팅 연구실에 진학할 수 있었다.
연구의 연 자도 몰랐던 나는 2014년 겨울, 대학원 연구실로 출근을 했다. 연구실에는 주로 논문을 읽고 세미나를 진행했으며, 개강이 후에는 대학원 강의를 듣고 학부생 강의 조교도 겸했다. 처음에 논문은 아무리 봐도 익숙해지지 않았다. 수식은 이해하는 데 시간이 걸렸으며, 문장을 두 번씩 읽어 보는 일도 허다했다. 내가 못하는건 지 적성에 맞지 않는 건지 고민도 많이 했다. 제일 큰 문제는 서비스 개발과 다르게 연구라는 것이 바로 결과를 볼 수 있는 것이 아니라서 나에게는 힘들었던 것 같다. 항상 사용자의 피드백이나 내가 만든 결과물을 보고 성취감을 느꼈었는데 완전히 다른 세상처럼 느껴졌다. 또한 연구비, 논문에 대한 고민 등 쉬운 것이 하나도 없었다. 그런 고민이 반복되며 시간이 흐르다보니 연구라는 것이 결코 쉬운 것이 아니구나 라는 생각과 동시에 대학원 진학에 대한 회의감도 들었다.
그렇게 1학기가 마무리될 때쯤 나는 자퇴까지도 생각했다. 평소에 관심이 있던 스타트업에 지원해서 합격하면 대학원을 자퇴해야겠다는 계획을 세웠다. 그런데 이것 또한 준비과정이 쉽지 않았고 준비 과정에서 돌아본 내 실력은 이도 저도 아니었다. 그래도 한번 서류라도 넣어보자는 마음으로 지원했으나 역시나 탈락의 고배를 마셨다. 오히려 탈락을 계기로 대학원에 더 집중하며 생존에 대한 고민을 할 수 있었다. 내가 대학원에서 살아남기 위해서는 연구는 기본이고 대학원에서의 성취감, 연구비 등 생활에 활력이 될 수 있는 요소에 대한 고민이 필요했다.
그러다가 중기청에서 이공계 창업 꿈나무 과제 공고를 발견했고 연구비라도 벌어보자는 생각으로 지원했다. 스마트 지도 및 현장 대기 고객 관리 기술 개발이라는 주제로 사업계획서를 작성했고 많은 시간이 걸렸지만, 1년짜리 사업에 선정됐다. 한동안 생활비가 생겨서 기뻤지만, 과제를 진행하면서 실제로 구현하고 결과물을 제출해야 했기 때문에 바쁜 시간을 보냈다. 교수님과 세미나를 진행하면서 배웠던 이론을 접목해서 과제를 진행했으며, 나는 주로 백엔드 개발과 블루투스 모듈을 이용한 고객 관리 기술 개발을 했다. 이때 개발에 사용한 Ruby On Rails는 나의 백엔드 기술 스택이 되었다. 논문 세미나와 함께하는 일이 쉽지 않았지만 나름의 생존 방법을 찾아내고 결과물을 만들었다는 성취감도 생겼다. 이는 내 대학원 생활에서 꽤 좋은 영향을 미쳤다.
그렇게 대학원의 시간은 흘러갔고 어느덧 학위 논문을 써야 하는 시기가 다가오고 있었다. 주로 RTOS를 이용한 사물 인터넷 보드 제작과 네트워크 또는 사물인터넷 관련 연구를 했던 나는 학위 논문도 자연스레 그쪽으로 잡혔다. 앞서 말했던 것처럼 글로 섹션을 채우는 것뿐만 아니라 지금까지 공부했던 것을 기반으로 눈에 보이는 결과물을 만들고 싶었다. 사물인터넷 중에서도 비콘을 이용한 실내 위치 인식에 대한 연구를 진행하고 있던 나는 논문과 관련해서 소프트웨어 프레임워크 개발을 하기로 마음먹었다. 교수님께 말씀드리고 프레임워크의 항목을 하나씩 정의했으며, 논문 세미나를 통해 공부했던 것을 기반으로 하나씩 채워나갔다. 실제로 자바를 이용해서 프레임워크를 구현해보고 실험까지 진행하니 훨씬 더 생동감 있었다. 물론 논문 심사를 준비하는 과정이 쉽지는 않았지만, 연구를 하면서 개발한다는 것 자체가 나에게는 의미가 있었다. 그렇게 학위 논문을 준비해서 2016년 11월 논문 심사를 보고 2017년 2월 석사 학위를 받을 수 있었다.
길다면 길고 짧다면 짧은 석사 과정이 약간의 허무하게 느껴지기도 했다. 진학 당시에는 나름의 꿈을 가지고 시작했지만 방황하는 시기도 있었다. 졸업 후에 생각해보면 대학원 진학에 대한 더 깊은 확신이 필요했었던 거 같다. 그렇다고 해서 후회하지는 않는다. 대학원을 진학하지 않고 경력 2년을 더 쌓았으면 나는 지금 어떤 개발자가 되어있을까 하는 생각도 해봤지만 쉽게 상상할 수 없었다. 그리고 대학원을 통해서 얻은 것도 몇 가지 있다. 첫 번째로 남을 설득하기 위해 논리적으로 설명할 수 있는 사람이 되었으며, 두 번째로 문제를 보는 약간의 통찰력이 생겼다. 또한 글 쓰는 게 재밌어졌다. 글을 잘 쓰지는 못해도 블로그를 꾸준히 할 수 있는 계기도 되었다. 이 외에도 여러 가지가 있지만 대충 생각나는 것만 적어봤다.
실질적으로 백엔드 개발자가 되는 데 도움이 되는 내용은 아니지만, 개발자가 갈 수 있는 방향 중의 하나인 대학원을 나의 경험 토대로 작성했으며, 졸업한 지 3년이 지나서 세세한 부분이나 이벤트는 제외하고 기억나는 큰 사건 위주로 적었다. 대학원 생활이 백엔드 개발자가 되는 데 도움이 될 수도 안될 수도 있다. 개개인이 하기 나름인 거 같다. 물론 대학원 생활도 열심히 하면서 자신의 여가를 활용해 백엔드 개발을 하는 사람도 있을 것이다. 나도 처음에는 백엔드 개발자로서 감을 잃지 않기 위해 앱 서버도 만들고 개인적으로 공부도 열심히 했다. 하지만 시간이 지날수록 연구에만 집중할 수밖에 없게 되고, 성과도 나오지 않으니 성취감도 떨어졌다. 이에 방황하기도 했고 해답을 찾기 위해 노력도 했다. 결국 나의 해답은 연구 속에서 개발적으로 풀 수 있는 영역을 최대화하는 것이었다.
아무튼 이렇게 백엔드 개발자가 되기까지 4편을 마무리한다. 이번에도 큰 도움이 되는 글은 아니지만 필요한 분은 심심할 때 읽어봐도 좋을 거 같다.