2019년이 되고 3달이나 지났다. 회고라는 걸 해본 적이 없지만 지인의 회고를 보고 영감을 받아서 작성하겠다고 마음을 먹었다. 2018년은 나에게 힘들고 아프면서 많은 걸 경험하게 해줬다.
이 회고는 내가 2018년 동안 어떤 걸 했고, 어떤 걸 느꼈는지 내가 내린 선택과 결과를 잊지 않기 위해 작성할 예정이다.
그리고 2019년에는 어떤 마음 가짐과 목표를 세우고 달려나갈지 생각하기 위함이다.

2019.03.05 기준으로 다시 작성한다. 왜냐하면 캠프 끝난 기념으로 제주도 여행을 갔다 왔기 때문이다…ㅎㅎ 즐겁게 놀고 잘 쉬다가 왔으니 새로운 마음가짐으로 회고를 할 예정이다.

# 미유박스

SOPT 22기 앱잼을 했던 프로젝트 미유박스이다. 솝트 22기에 다시 안드로이드 파트원으로 지원하면서 세웠던 목표는 수상성장 두 가지로 요약할 수 있다. 왜냐하면 전기수에 Lang이라는 프로젝트에서 부족한 실력으로 인해서 결과물을 내지 못했던 경험이 있기 때문에 더 잘하고 싶다는 욕심이 생겼다.

미유박스는 사전 팀빌딩 없이 네트워킹을 통해 들어가게 되었다. 수상을 하고 싶다는 목표를 가지고 참여했지만, 안드로이드 개발자는 나를 포함해 2명 뿐이었다. 자신감이 하락하는 소리가 들린다. 그래도 포기는 너무 이른 생각이었다.

2주 동안 정말 치열하고 재미있게 프로젝트를 진행했다. 밤 새는 걸 못하던 나는 앱잼 기간동안 잠도 많이 줄여야 했고 합숙하는 동안은 거의 매일 같이 밤 새고 아침에 잠 들었다. 그래도 팀원들과 즐거운 분위기 속에서 개발을 했기 때문에 힘들다는 생각은 적게 할 수 있었다.

노력의 결과로 우리 팀은 대상이라는 명예를 얻을 수 있었다. 이 상은 나에게 있어서 의미가 컸다. 내가 노력한 결과로 상을 받은 경험을 처음이었기 때문이다. 좋은 분위기를 이끌어준 팀원들과 함께 노력한 결과가 수상으로 이어져서 기분이 정말 좋았다.

기능은 많지 않았지만 앱을 안정적으로 만들고 결제 기능을 테스트용으로 구현할 수 있어서 좋은 경험을 했다.

이를 통해서 내가 느꼈던 점은 다음과 같다.

  • 안드로이드 개발자로서 "자신감"을 얻을 수 있었고, 전보다 성장했음을 느낄 수 있었다.
  • 안드로이드 개발에 대한 "흥미"를 일깨워 줄 수 있는 경험이 되었다.
  • 미유박스는 앞으로의 내 행보에 발판을 마련해준 중요한 경험이 되었다. 앞으로도 미유박스 팀은 꾸준하게 오래 보는 사이가 되었으면 좋겠다. ^_^

# 서울시 공모전

미유박스에서 같이 개발했던 형의 소개로 일정에 없던 공모전에 참여하게 되었다. 공모전을 준비해 본 경험이 없어서 하고 싶은 마음은 계속 있었다. 그러던 와중에 좋은 기회가 생겼다. 아는 형을 제외하고는 다 처음 보는 사이였다. 프로젝트의 기획 단계는 마무리가 되었고 디자인과 개발만 시작하면 되는 시점이었다.

그래서 뭔가 날로 먹는 느낌이 강해서 찜찜했지만 개발을 시작하면서 그 생각은 사라졌다. 너무 여유를 부렸던 탓인지 개발 속도는 진전이 없었다. 나는 공모전을 해보고 싶었고 상을 받고 싶은 욕심이 있었기 때문에 빨리 개발을 진행할 수 있도록 분위기를 유도했다. 그래도 어느정도 진전이 있었다.

같이 하기로 했던 한 분이 좋은 기회로 인턴에서 정직원으로 전환이 되었다고 했다. 그래서 그 분을 대체할 분을 데리고 오셨고 기분 좋게 개발을 하는가 싶었다. 인생은 고난의 연속이라고 했던 누군가의 말이 생각났다. 대타로 들어오신 분이 사정이 있어서 빠지게 되었다. 그래서 기능 한개가 비어버리게 되었고, 이 부분까지 내가 맡아서 개발을 진행했다.

덕분에 내가 처음에 맡았던 기능 + 대타 분이 떠나서 구현해야 하는 기능을 신경 써야 했다. 또 하필, 이 기간은 내가 3~4달 동안 위워크에 있는 회사에서 잠깐 일했던 기간이기도 했다.(이 얘기는 밑에서 등장한다.) 그래서 회사에 갔다가 퇴근하고 공모전을 하면서 하루에 4~5시간 밖에 못 잤던 걸로 기억한다.

너무 힘들었지만 공모전을 한다고 결정한 나에게 포기하는 모습을 보여주고 싶지 않았다. 그래서 시간을 할애해서 정말 열심히 했다. 내가 선택한 일에 대해서 후회하고 싶지 않았던 마음과 공모전을 하고 싶었던 나의 버킷 리스트를 잘 실천하고 싶은 두 개의 마음이 나를 열심히 하게 한 원동력이 된 것 같다.

좋은 결과를 얻지는 못했지만, 재미있는 사람들과 공모전을 하면서 즐거웠다. 짧고 치열한 기간에 개발을 하자고 팀원들한테 얘기하면서 쪼았지만 잘 따라서 마무리를 해준 것을 고맙게 생각하고 있다.

서울시 공모전을 하면서 느낀 점

  • 내가 내린 결정에 대해서 후회하지 않고, 책임감을 가지고 일을 진행해야 한다는 걸 배웠다.
  • 개발적인 부분을 다른 사람한테 설명하기 위해서는 내가 많은 지식을 알고 있어야 한다는 걸 알았다.
  • Git을 조금 더 능숙하게 다룰 줄 알았다면 더 편하게 협업을 하지 않았을까를 깨닫게 되었다.

# KB App Challenge

아마 지금 와서 2018년도에 했던 일들을 다시 하라고 한다면 나는 못할 것 같다. 내가 활동하던 SOPT에서 주최한 KB App Challenge였다. KB의 클라우드 관련 신기술인 클래용을 활용하여 유스 고객을 타겟으로 하여 금융 관련 지식들을 라이브 방송을 통해 알려주고 포인트를 쌓을 수 있는 애플리케이션의 프로토 타입을 개발했다.

프로젝트 기간이 2주였기 때문에 기획을 빨리 픽스하고 개발에 도입했다. 안드로이드 개발은 80% 정도 혼자 진행했다. 회사를 다니면서 퇴근하면 바로 종각역 근처에 위치한 패스트 파이브로 향했다. 2주 동안 짧고 치열하게 프로젝트를 완성시키고 최종 발표를 했다.

최종 발표는 KB 본사 건물에서 진행했고, KB 회장님을 비롯하여 임직원분들이 오셔서 우리가 진행한 프로젝트를 보고 평가해주셨다. 훌륭한 팀원들 덕분에 2등을 할 수 있었다. 아마도 최우수상이었던 걸로 기억한다. 100만원 상금을 받고 5명이서 20만원씩 나눴다. 뜻깊은 경험도 하고 평생 만날 기회가 없을 KB 회장님도 직접 뵙고 사진도 찍고 상금까지 얻을 수 시간이었다.

KB 프로젝트를 하며 느낀 점

  • 앱 개발자로서 UI를 더 생각해보고 신경쓸 수 있었다. 그래서 UI를 만들 때 전보다 개선된 걸 느낄 수 있었다.
  • 기존에 사용했던 기술이 아닌 색다른 기술을 사용해 볼 수 있어서 좋았다. 결국은 Youtube Player API를 사용했지만, 영상 재생을 구현하는 방법에 대해서 고민해 볼 수 있는 좋은 시간이었다.
[ KB App Challenge 사진 ]

나는 눈에 띄는 파란색 니트를 입고 가운데서 사진을 찍었다. 재밌었다. :)

# SK 스마트 관광 공모전

공모전을 하고 싶었던 나의 소망이 좀 이상했다. 한 번에 3개씩 하겠다는게 아니었는데 어쩌다 보니 1개는 먼저 진행했고 2개가 기간이 겹치는 문제가 발생했다. ㅠ_ㅠ 앞의 KB가 끝나자마자 바로 SK 스마트 관광 공모전을 시작했다.

미유박스(자주 등장한다.ㅎㅎ)를 함께 진행했던 팀원들과 다른 사람 몇명을 추가해서 공모전을 진행했다. 팀원이 14명이었다. 지금 생각해도 너무 많았던 것 같다. 그래서 우리 팀의 목표는 무조건 1등이었다. 왜냐하면 1등은 상금이 1천만원이었기 때문이다. 14명이서 나누면 약 70만원 가량의 상금을 얻을 수 있었다. 생각만 해도 행복하다.ㅎ0ㅎ

앞에서 진행했던 KB 프로젝트와 회사 생활로 인해서 DMZing(우리 프로젝트 애플리케이션 이름이다.)의 초기 기획 단계에 많이 참여하지 못한 점이 아쉽고 미안하다. 아무튼 나는 마감 기간이 2주 정도 남았을 때 개발에 들어갔다. 안드로이드 개발을 할 때 운이 없는 건지 팀 프로젝트를 할 때 계속 두 명이서 진행했다. 힘들었다. . . ㅠㅠ

2주 동안 치열하게 잠을 줄여가면서 개발에 몰두했고 마무리를 잘해서 Google Play Store에도 올리는 경험을 했다. 이번 프로젝트에서 내가 하고 싶었던 건 중복을 없애고 재사용을 하는 것과 효율적으로 코드를 작성해보는 것이었다. 하지만, 기간이 짧기도 했고 시간이 많지 않아서 2개의 목표는 달성하지 못했다.

운이 좋게도 본선에 진출해서 최종 발표를 할 수 있는 기회를 얻었다. 기획과 디자인을 담당했던 친구들이 가서 발표를 하고 마무리를 잘 해줬다. 그리고 12월 00일에 최종 결과 발표가 있었다. 우리는 시간이 되는 사람들끼리 모여서 최종 결과를 받기 위해서 종각 근처의 콘랩으로 향했다. 대상을 받을거라고 김칫국을 마시던 우리는 장려상을 받고 아쉬워 했다. 그래도 함께 열심히 노력한 과정을 알기 때문에 빨리 잊어버렸다.

100만원이라는 상금을 받고 14명이 나눠 가졌다. 대략 7만원 정도씩 가질 수 있었다. 나는 받았던 상금을 모으고 일했던 돈을 보태서 아이폰XS로 핸드폰을 바꿨다. 좋은 기회가 있어서 생각보다 저렴하게 구매했고 지금 만족하면서 잘 쓰고 있다. 갓기용님에게 항상 감사하고 있다.ㅎㅎ

SK 스마트 관광 프로젝트를 하면서 느낀점

  • 바쁘게 사는 건 좋지만 너무 빡빡한 일정은 좋지 않다는 것을 느꼈다. 여유가 없었기 때문에 회고를 할 수 있는 시간이 없었다. 그리고 KB 프로젝트SK 관광 프로젝트가 겹쳤기 때문에 한 가지에 집중하기 힘들어서 능률이 떨어지는 느낌을 받았다.
  • 여유를 어느 정도 가지고 프로젝트나 일을 할 때는 한가지에 집중하는게 중요하다는 걸 깨달았다.
  • Store에 실제로 올리면서 개인 정보 취급 방침이 필요하다는 걸 알게 되었고, APK 파일을 추출하는 법에 대해서도 알 수 있었다. 개발자로서 꼭 필요한 경험을 할 수 있었다.

# 회사 생활

4학년 1학기를 깔끔하게 마무리하고 2학기는 6학점만 남겨놓았다. 그래서 OCU라는 인터넷 강의를 2개 잡고 2학기에는 학교를 다니지 않았다. 이 기간 동안 무엇을 할까 고민을 많이 했다. 취업 준비를 해야 하는 시기가 맞지만, 나는 아직 취업 준비를 하고 싶지 않았다. 휴식을 취하고 싶었고, 돈을 벌고 싶은 마음이 있었다. 그래서 알바를 할까 생각을 했지만, 시간 낭비를 하지 않고 관련된 업무를 하면서 돈을 벌 수 있는 기회를 찾았다.

그러던 와중에 아는 지인이 다니는 회사를 추천받았다. 간단하게 말해서 인공지능에게 필요한 학습 데이터를 가공하는 업무였다. 타이틀은 거창하고 인턴이었지만 나는 단순 업무를 하는 아르바이트라고 생각했다. 9월에 입사를 했고 회사를 다니는 동안 시간을 틈틈히 쪼개서 위에서 언급했던 KB 프로젝트SK 스마트 관광 프로젝트 2개를 진행했다.

계약 기간이 12월 30일까지였기 때문에 나는 12월 30일에 퇴사를 했다. 3개월에서 4개월 정도의 짧은 기간이었지만 좋은 사람들을 만나고 회사를 다니면서 혼자 시간을 쪼개서 여러 가지를 할 수 있었다. 그리고 돈도 벌 수 있었다. 회사를 다니면서 많은 업무를 하지는 않았다. 처음부터 단순 업무라고 들었기 때문이다.

시간을 낭비했다고 생각하기도 하지만 내가 선택한 결정에 대해서 후회는 없다. 돈을 벌 수 있었고 더 바쁘게 생활하기도 했어서 오히려 나한테 자극을 줄 수 있는 시간이었다. 퇴사를 하면서 다음 회사는 "내가 진짜 원하는 업무를 할 수 있는 회사에 들어가자"라는 목표를 세웠다.

회사를 다니면서 내가 느낀 점

  • 첫 번째는 스타트업이라도 너무 작은 스타트업보다는 어느 정도 규모가 있는 스타트업이 좋을 것 같다는 점을 느꼈다. 규모가 너무 작으면 체계도 잘 잡혀있지 않은 것 같다.
  • 두 번째는 식비나 교통비를 지원해주는 회사가 좋은 회사라는 것이다. 월급을 받지만 식비와 교통비로 지출이 생기기 때문에 돈 모으기가 힘들었다. 마지막에는 도시락을 싸서 다녔지만 아무래도 식비+교통비를 지원해준다면 꿈의 회사가 아닐까하는 생각이 들었다.
  • 마지막으로 내가 진짜 원하는 업무를 하는 회사에 들어가서 재미있게 개발을 하자는 마음을 가지게 되었다.

# 부스트 캠프 후기 in 2019

2018년은 프로젝트를 연달아서 쉬는 기간 없이 3개를 진행했다. 발전이 없고 프로젝트만 계속 한 느낌?!을 받았다. 회고를 작성하지도 않았고 리뷰를 하지도 않았다. 심지어 프로젝트에 대한 정리도 하지 않았다. 아마 그래서 발전이 없었고 계속 같은 자리에 머물러 있는 것 같다는 느낌을 받았다. 이 상태로 있다가는 성장하는 개발자가 되지 못할 것 같았다.

그래서 나는 지금보다 한 단계 성장하고 다른 경험을 해보고 싶어서 부스트 캠프에 지원하게 되었다. 부스트 캠프는 네이버 계열사 중 하나인 커넥트 재단에서 진행하는 캠프이다. 내가 부스트 캠프에 지원하게 된 이유는 다음과 같은 것들을 얻고 싶어서다.

  1. 현업에서 일하는 튜터님의 멘토링을 받고 좋은 조언들을 얻을 수 있다는 점
  2. 코드 리뷰를 통해서 코딩할 때 안좋은 습관을 없애고 실력을 쌓을 수 있다는 점
  3. 같은 분야를 공부하는 다른 개발자들을 만나보고 싶다는 점
  4. 자극을 받고 싶다는 점

위의 4가지 이유로 인해서 부스트 캠프에 지원하게 되었다. 나는 지원서를 제출하고 1차 합격 메일을 받았다. 다음 절차는 온라인 테스트였다. 주말에 진행되었으며 안드로이드 관련 문제와 간단한 알고리즘 문제가 나왔다. 공부했던 부분에서 문제가 나와서 수월하게 풀 수 있었으며 알고리즘도 다행히 내가 풀 수 있는 수준이라고 생각을 해서 테스트를 잘 마무리 할 수 있었다.

테스트를 보고 나서 합격 여부를 모른채로 일단 면접 준비를 했다. 취업한 선배들의 말을 들어보니 합격 통지를 받고 면접까지의 기간이 길지 않아서 바로 준비하는게 좋다고 했다. 그래서 나는 테스트를 보고 다음날부터 면접에 대한 준비를 했다. 온라인 테스트를 합격하고 면접 날짜가 나왔다. 사전에 면접 준비를 어느 정도 했기 때문에 떨리지 않았지만, 어떤 질문이 들어올지 예측할 수 없었다. 일단은 온라인 테스트 문제와 지원서를 기반으로 준비했다.

같이 지원하고 면접까지 붙은 학교 선배 및 후배와 함께 면접 준비를 했다. 혼자 준비한 것보다 확실히 도움이 많이 되었다. 모의 면접을 통해서 긴장감을 풀 수 있었고 말할 때 태도나 말투를 고칠 수 있었다. 또한, 예상치 못한 질문을 듣고 부족한 부분을 더 공부할 수 있었다. 준비한 결과 부스트 캠프에 최종 합격을 할 수 있었다.

캠프를 하면서 내가 지원할 때 부스트 캠프를 통해서 얻고 싶었던 것들을 하나씩 얻고 배울 수 있었다.
일단, 첫번째로 현업에서 일하시는 튜터님의 멘토링을 받을 수 있었다. 우리는 초반에 프로젝트 아키텍처 설계를 MVP 패턴으로 잡았다. 그리고 Model, View, Presenter의 의존성을 분리해서 개발을 시작했다. 그리고 튜터링을 받았는데 설계부터 잘못되었다는 평가를 받았다. 기존에는 뷰를 먼저 그리고 필요한 데이터를 그 때 그 때 작성했다. 이렇게 하면 변경 사항이 자주 발생하고 수정할 때도 굉장히 귀찮은 작업을 거치게 된다.

  1. 튜터링을 받은 내용은 요구사항 명세서를 만들고 먼저 화면에 그릴 데이터를 고려하고 설계하는 것이다. 로직을 하나도 신경쓰지 않고 사용자게에 보여질 화면에 필요한 데이터를 설계한다.
  2. MVP 패턴을 사용하므로 비즈니스 로직을 처리할 Repository 인터페이스를 설계한다.
  3. 2번에서 생성한 Repository 인터페이스를 구현한다.
  4. Presenter 구현 및 View 인터페이스 설계
  5. View 인터페이스 구현

위와 같은 순서로 작업을 진행하는 것이 좋다는 피드백을 받았다. 기존에 개발해왔던 것과는 반대의 프로세스였다. Data를 먼저 고려하고 최종적으로 View는 가장 마지막에 구현하는 것이었다. 처음에는 이 프로세스가 적응이 되지 않고 왜 이렇게 하는지 이해가 잘 가지 않았다. 하지만, 계속 하다보니 적응이 되었고 요구사항 명세서를 잘 작성해 놓으니 추후에 유지보수나 수정할 때 손이 많이 가지 않았다. 덕분에 능률이 조금 더 오를 수 있었다.

또한, 관심사의 분리(SOC)를 하는데에도 도움이 많이 되었다. MVP 패턴을 사용하다보니 Model, View, Presenter 각각이 하는 역할이 명확해서 분리하는 것이 필요했다. 말은 쉽지만 실제로 개발을 하다보니 서로 의존성이 생기는 문제가 발생했다. 이 문제는 위의 요구사항 명세서 작성을 통해서 역할을 명확하게 분리할 수 있었고 의존성을 낮출 수 있게 되었다.

두번째는 코드리뷰였다. 지금까지 살면서 남의 코드를 봐온 적은 있지만 코드 리뷰를 해본 적이 없었고, 내 코드를 누군가가 리뷰해 준 적도 없었다. 내 첫 코드 리뷰는 엉망이라고 할 수 있다. 접근제어자는 막 갖다 붙였고, 전역 변수, 지역 변수도 구분할 줄 몰랐다. 그래서 조언을 받고 반성을 하면서 코드를 짤 때 생각을 많이 하고 짜는 습관을 가지게 되었다. 내가 짠 코드에 대해서 왜 이렇게 짰는지 생각해 볼 수 있는 습관을 가지게 된 것이 좋았다.

세번째는 같은 분야의 다른 개발자들을 만날 수 있었다는 점이다. 물론 SOPT를 통해서 많이 만났지만, 새로운 사람들을 만난다는 건 좋은 경험이었다. 처음 보는 사람들과 팀을 이루었다. 처음에는 굉장히 어색했지만, 시간이 지나면서 친해졌고 일상 이야기 뿐 아니라 개발적인 부분도 함께 공유하고 이야기 할 수 있어서 좋았다. 캠프에도 적응할 수 있어서 긴장이 많이 풀렸다. 또한, 내가 모르는 부분들도 많이 알게 되었고 전보다 시야가 넓어졌다.

마지막으로 다른 사람들을 통해서 많은 자극을 받을 수 있었다. 아마도 SOPT에서만 계속 있었다면 발전이 없고 그 자리에 머물러 있었을 것이라고 생각한다. 부스트 캠프에는 전국에서 안드로이드 개발에 관심이 있는 사람들이 모인 자리인 만큼 잘하는 사람들이 굉장히 많았다. 그 속에서 나는 남과 비교하면서 내 자신을 깎아내리기도 했었다. 하지만 시간이 조금 지나면서 부정적인 생각을 없애버렸고 그 사람들로부터 자극을 받기 시작했다. 이 자극은 나한테 큰 도움이 됐다. 앞으로 어떤 걸 공부해야 할지 방향을 잡을 수 있었고, 내게 부족한 점들을 확인할 수 있는 시간이었다.

부스트 캠프를 하면서 좋았던 점은 좋은 팀원들, 튜터님과 함께 프로젝트를 진행하고 잘 마무리할 수 있었던 점이다. 한달이라는 기간 동안 싸우지 않고 프로젝트 동안 의견 충돌도 많지 않았다. 또한, 좋은 튜터님들을 알아 갈 수 있었던 것도 굉장히 좋았다. 안드로이드 개발자라면 모를 수 없는 박상권을 실제로 보고 좋은 이야기도 많이 들으면서 값진 경험을 할 수 있었다. 그리고 조금 아쉬운 점은 캠프 동안 매일 기록하지 못했다는 것이다. 초반에는 기록할 시간이 있었지만 개발을 시작하고 나서는 시간적인 여유가 부족해서 기록을 하지 못했다.

그래도 부스트 캠프는 나에게 있어서 한 단계 성장할 수 있게 만들어준 발판이었다. 2019년의 시작은 힘들었지만, 추진력을 주었기에 감사한 마음이다.

  • 2019년도에는 끝까지 포기하지 않고 최선을 다하는 마음가짐을 가지고 꼭 취업을 하는게 목표다.
  • 그리고 체력 관리도 필수적인 것 같다. 꾸준한 운동도 꼭 할 계획이다.

참고