백엔드(Backend) 개발자가 되기까지(2)
백엔드(Backend) 개발자가 되기까지(1)에서 언급한 모바일 서버 프로젝트를 무사히 마치고 내려온 나는 뭐든지 할 수 있을 거 같은 자신감에 차 있었다. 경험한 것을 잊지 않기 위해 노력했고, 또 다른 도전과 경험을 하기 위해 프로젝트나 소일거리를 찾아다녔다. 그러던 중 학교 선배의 추천으로 부산의 스타트업에 면접을 보게 되었다.
이력서를 들고 찾아간 사무실은 생각보다 말끔했으며, 그 공간에 8명의 사람이 앉아 있었다. 개발팀의 CTO(Chief Technology Officer)와 간단한 이야기를 나누고 카페에서 면접을 봤다. 질문을 많이 받았는데 기억나는 질문은 한 두 가지 밖에 없다. 혹시나 궁금해하시는 분들이 있을까 봐 기억나는 걸 정리해보면 다음과 같다.
- 사용해 본 스마트폰 앱 중에 놀랄만한 앱이 있었는가?
- 코딩을 최대 몇 줄까지 해봤는가?
첫 번째 질문에 대한 대답으로는 왓챠(watcha)라고 대답했다. 자기가 본 영화의 평점을 남기면 취향 분석을 통해 영화를 추천해 주는 앱인데 당시에 내가 느끼기엔 꽤 신기했다. 취향 분석을 어떻게 하는지 궁금했다. 그리고 두 번째 질문에 대한 대답은 모바일 서버 프로젝트를 진행하면서 가장 길게 작성한 코드에 대해 이야기했다. 결론적으로 4천 줄이라고 답했다. 면접이 끝나고 첫 출근 날짜가 잡혔는데 학부 4학년이 다가오는 2013년 12월 말이었던 거 같다.
첫 출근날, 자리 배정을 받고 인사하는데 개발자가 한 명밖에 없었다. 한 명의 개발자가 클라이언트(안드로이드 앱)와 백엔드(순수 PHP
)를 도맡아서 개발하고 있었다. Git
도 없었으며 서버 쪽은 코드를 수정하면 FTP
로 업로드 하고 있었다. 그리고 자신만의 스타일로 짜여진 코드와 정의된 문서가 하나도 없었기에 적응하는데 너무 힘들었다. 그리고 짜놓은 코드를 보면서 나도 우물 안의 개구리였다는 사실도 알게 되었다.~~ 로직이 이렇게 복잡한 코드를 실제로 본 건 처음이었고 이걸 혼자서? 라는 생각을 했기 때문이다.~~
PHP
로 서비스를 운영하는 회사였기 때문에 적응하면서 PHP
공부를 하라고 했다. 그래서 책과 인터넷을 통해 PHP
는 그때가 처음이었다.PHP
기본 문법을 익혔다. 그다음은 HTML
의 form
을 통해 PHP
에 데이터를 전달하고 DB
에 삽입하는 과정을 공부했다.
그렇게 2주라는 시간이 흐르고 프로젝트에 투입되었다. 처음 투입된 프로젝트는 웹으로 던져놓고 운영을 하지 않는 서비스였는데, 그런데도 꾸준한 매출이 발생해 회사에서 다시 운영하기로 한 서비스였다. 운영의 목적으로 웹 서비스를 앱으로 확장하자는 이야기가 나와서 거기에 투입이 된 것이다. 스타트업이다보니 주력 서비스 외에도 생존을 위해 던져놓은 서비스 몇 개가 더 있었다. 그리고 스타트업은 일단 해보자는 생각만으로도 일이 진행된다. 껍데기는 네이티브 앱으로 개발하고 내부는 웹뷰로 구성해서 개발한다고 했다. 개발에 필요한 기술을 정의해보니 안드로이드와 모바일 웹 페이지가 필요했다. 나는 모바일 웹, 후배는 안드로이드 개발을 담당했다.
프로젝트 시작 전, 개인적으로 걱정 되는 요소에 대해 정리해봤는데 크게 두 가지가 있었다. 첫 번째, 모바일 웹에 관련된 기술 탐색이 필요했고, 기술을 다룰 줄 아는 실력이 필요했다. 두 번째, 기획한 모바일 웹이 기존 서비스의 로직과 달라서 form
부터 PHP
까지 새로 개발을 해야되는 상황이었다. 2주 전까지만 해도 PHP
의 P자도 몰랐는데 할 수 있을까? 라는 생각에 덜컥 겁부터 났다. 그래도 내가 처한 상황을 하나씩 해결해보자는 생각으로 시작했다.
첫 번째로 모바일 웹에 관련된 기술 탐색은 뜻밖에도 쉽게 해결이 되었다. 구글에 검색을 해보니 모바일 웹 개발에 최적화된 jQuery Mobile
이라는 프레임워크가 있었다. 그때 jQuery Mobile
을 처음 알게 되었고 친구에게 jQuery Mobile 개구리 책을 빌려서 공부했다. (그 시절에 공부한 jQuery Mobile
을 아직도 유용하게 활용하고 있다. 현재에는 Bootstrap
도 함께 사용하고 있다.)
그렇게 순항인 줄만 알았던 프로젝트에 걱정 요소가 추가되었다. 기존의 웹 서비스는 HTML
과 PHP
코드를 섞어서 사용 중이었다. 개발자는 한 명뿐인데 대표가 하고 싶은 서비스가 여러 개라 기존의 웹 서비스는 외주를 주고 개발한 상황이었다. 선임 개발자 입장에서는 섞여 있는 코드가 마음에 들지 않았는지 모바일 웹에서는 HTML
과 PHP
를 철저히 분리해서 사용하라고 했다. 그때는 왜 분리해서 쓰라고 했는지 몰랐는데 시간이 지나고 생각해보니 최소한의 MVC
(Model View Controller)는 지키자는 의도로 말한 거 같다. 아무튼, 그때의 나는 순수 HTML
파일에서 request
하고 PHP
파일이 response
한 데이터를 처리할 줄 몰랐다. 막막했지만 어디 물어볼 곳도 없었다. 선임 개발자가 있었지만, 스트레스를 많이 받았는지 다른 사람까지 불편하게 하는 행동을 많이 했다. 누구든 스트레스는 받는데 마치 혼자 짊어진 것처럼. 그래서 현재 주력하고 있는 서비스의 API
를 살펴보기로 했다. 생각대로 event
나 action
에는 HTML
파일에서 request
하고 response
하는 로직이 있었다. 바로 jQuery.ajax()
라는 함수였다.
그때 jQuery
를 알게 되었고 열심히 API
문서를 살펴봤던 기억이 난다. 그 이후에 jQuery
를 통해서 HTML
의 getElementByID
대신 ID Selector ("#id")
를 사용하거나 $.ajax()
함수를 통해 서버와 통신을 한다던가 JavaScript
를 좀 더 간결하고 편리하게 사용할 수 있는 법을 알게 되었다. (개인적으로 jQuery
같은 경우에는 백엔드 개발자가 알고 있으면 무조건 좋다고 생각한다. 백엔드 개발자가 말 그대로 백엔드만 하지 않는다. 웹을 할 때도 있고 프론트엔드와 백엔드의 로직을 작성하다 보면 jQuery
가 필요한 경우가 생긴다. 그리고 jQuery
를 알고 있으면 JavaScript
의 코드를 간결하고 단순하게 사용할 수 있으므로 추천한다.)
이렇게 jQuery
와 jQuery Mobile
을 알게 된 나는 프로젝트를 끝마칠 수 있었다. 아무튼, 끝마친 프로젝트는 플레이 스토어에 등록되었으며, 덕분에 나는 수습에서 정규직으로 전환되었다. 그리고 개인적으로 많은 것을 배운 프로젝트였다.PHP
로직을 다시 짰지만, 걱정과는 달리 잘 마무리했다.
글을 마치면서...
이 글을 봐주시는 분이 많은지 모르겠지만, 회고 겸 백엔드 개발자를 염두에 두고 계신 분에게 조금이나마 도움이 되기를 바라며 작성 중이다. 다음 (3)편은 학교와 병행하며 회사에서 진행한 프로젝트의 경험을 써 볼 예정이다.