백엔드(Backend) 개발자가 되기까지(3)

story Sep 25, 2017

백엔드(Backend) 개발자가 되기까지(2)에서 언급한 것처럼 나는 3학년 2학기 겨울방학에 입사했고, 학기가 시작하면 회사 생활과 병행해야 했다. 회사를 빠질 수 있는 여건이 아니었기 때문에 4학년 1학기는 20학점을 2일로 몰아넣었다. 프로젝트 위주의 강의를 들었으며, 친한 동기나 후배와 팀을 짜고 강의는 못 나가지만 회의에는 꾸준히 참석했으며, 개발과 발표 전부 도맡아서 했다. 그렇지 못한 강의는 교수님께 말씀드리고 F가 아닌 최저학점으로 합의했다.

그렇게 학기가 시작되고 일주일 중 2일은 학교, 4일은 회사에서 생활하게 되었다. 당시에 회사는 격주로 토요일 출근을 하고 있어서 4일 출근을 했다. 출근하는 날에는 회사 생존을 위한 외주작업과 이사모아 백엔드 API 개발을 했다. 외주 작업은 주로 HTML, PHP 그리고 jQuery를 이용한 웹 개발이었다. 정규직 전환의 과제로 진행했던 프로젝트 덕분에 어느 정도 자신감은 있었지만, 상황에 맞게 대처할 수 있는 스킬이 없어서 난감했다. 그리고 웹이 동작하는 방식을 제대로 알고 있지 못했다.

익숙해지는 데에는 많은 경험과 시간이 필요했고 전체적으로 많이 부족했으나 따로 공부할 시간이 없었다. 그리고 유지 보수를 해야 되는 외주 프로젝트에는 동작만 되면 상관없다는 식의 코드가 많이 있었고 실제로 내 공부에는 별 도움이 되지 못했다. 내가 웹을 하게 될 줄도 몰랐지만 그런 식의 코드만을 보고 접하다 보니 Best practice를 찾는 게 쉽지 않았다. 혼란 속에 나는 외주 프로젝트를 완성해야 했고 코드 리뷰나 테스트 케이스를 작성할 시간도 없었다. 그저 그런 개발자가 되는 게 아닐까 하는 걱정과 함께 스파게티 코드를 만들고 있던 나를 발견했고 뭔가 처참했다. 그리고 PHP에 대한 숙련도가 증가했지만 별로 달갑지 않았다.

그렇게 외주 프로젝트를 4개 이상 하고 나서 틈틈이 이사모아 백엔드 API 개발도 했지만, 그때는 서비스의 규모가 크지 않아 많은 걸 하지는 않았다. 웹의 구조나 PHP가 익숙해졌지만, Best practice에 대한 고민은 계속 남아있었다. 개발할 때 최소한의 규칙이 필요하다는 생각을 계속했고, 어느 정도의 틀 안에서 개발을 하기 위해 프레임워크 도입을 고려했다. 도서 지원비로 라라벨 프레임워크 책을 구매했고 개인적으로 공부를 시작했다.

라라벨 프레임워크를 처음 접했을 때 Node.js와 비슷하다는 느낌을 받았다. 각각의 프레임워크에서 View template engine의 선호도 차이는 있었지만 꽤 비슷했고 덕분에 습득하는 속도가 빨랐다. 언젠가는 회사의 백엔드 로직을 라라벨 프레임워크로 migration 하겠다는 마음을 가진 채 가을이 오고 있었다. 그쯤 회사는 생존을 위해 정부 과제에 적극적으로 매진했고, 나는 참여 기업의 연구원으로 이름을 올리게 되었다. 사물 인터넷과 관련된 과제였으며, 그중에서도 나는 실내 사용자 위치를 파악하고 개인화 정보를 제공하는 시스템 개발에 참여했다.

관련 기술을 찾아보니 필터를 이용해 사용자의 위치를 보정하는 기법이 많이 있었다. 그중에서도 많이 사용되는 칼만 필터를 시스템에 도입하기 위해 검색해봤는데 쉽지 않았다. 우리가 살아가는 real world의 entity를 수식으로 computer world에 옮기는 부분이 너무 어렵게 느껴졌다. 이때 공부의 필요성을 느꼈고 대학원 진학에 대해 고민을 하기 시작했다. 그리고 의외에 곳에서 먼저 라라벨을 사용하게 되었다. 실내 위치 인식을 위한 시스템과 개인화 정보 제공을 위한 시스템을 제외하고 나머지 로직을 라라벨로 구현하게 된 것이었다. 라라벨로 구현한 시스템이 여러 가지 목표 지표를 달성하는 데 도움이 되었고 개인적으로도 성장할 좋은 기회였다.

하지만 시스템 개발에서 더욱 공부의 필요성을 느끼게 되었고, 대학원을 가기로 마음먹었다. 그때가 2014년 가을쯤이었던 것 같다. 그리고 약 5개월 뒤에 나는 학사를 졸업하고 경력 1년인 상태로 대학원으로 진학하게 된다.

이 글을 봐주시는 분이 많은지 모르겠지만, 회고 겸 백엔드 개발자를 염두에 두고 계신 분에게 조금이나마 도움이 되기를 바라며 작성 중이다. 다음 (4)편은 대학원을 진학해서 진행한 프로젝트나 경험을 전체적으로 크게 써 볼 예정이다.

cherrypick

체리픽이라는 단어 본연의 뜻은 안 좋은 의미이지만 저는 트렌디하고 많은 기술을 공부하고 내 거로 만들자는 뜻을 가지고 사용하고 있습니다.