[졸업작품] SSOK 프로젝트를 마치며

지난 3월 30일 졸업작품 발표회가 있었다. 그간 선배들의 졸업작품 발표회를 보다가 막상 직접 발표를 하게 되니 새삼스럽게 4학년이 되었구나 싶기도, 졸업작품을 잘 마쳤다는 사실에 뿌듯하기도 했다. 돌아보면 1, 2학년 때는 지식이 없어 미처 해보지 못했던 것들을 3학년 때 꽤 도전해본 것 같다. 특히 졸업작품 기간인 3학년 겨울방학에 말이다.

12월 말에는 감사한 분의 도움을 받아, 원티드를 통해 안드로이드 개발자 포지션에 지원해본 일이 있었다.감사한 분과 데이트하다가 크리스마스에 지원서를 냈다^^; 서류에서 전부 광탈하는 것 아닌가 싶었는데 다행히 스타트업 세 곳에서 면접을 봤었다. 이 당시는 졸업작품을 하기 전이라 현재보다 미숙하기도 했고 회사에서는 경력이 아예 없는 실력 있는 개발자를 원했으니 결과가 처참했다. 하지만 이 경험을 통해 본인에게 부족한 점이 무엇인지 알 수 있었고, 그렇기에 무엇을 공부해야 하는지도 보다 명확해졌다.

그리고 12월 말부터 3월 말까지 졸업작품으로 안드로이드 어플리케이션 SSOK을 개발했다.

SSOK은 학교의 웹 공지와 문자 메세지의 카테고리를 각각 분류한 뒤 통합 서비스하는 앱으로, 웹 카테고리 분류에는 머신러닝을 활용했다. 링크는 다음과 같다.

github repo: SSOK

이번 프로젝트에서는 안드로이드에서 새로 지원하는 언어인 코틀린을 사용해 앱을 제작했으며, 우분투와 파이썬을 통한 서버 사이드 환경 구축 및 웹 크롤링을 했다. 또한, MVP 패턴을 적용하고 안드로이드 내의 스레드 관리, Retrofit2를 이용한 네트워크 통신을 할 수 있게 되었다.

백엔드 개발환경

프론트엔드 개발환경

분리된 학교 공지와 전공 공지, 학교에서 발송하는 메시지를 통합 및 분류하는 교내 최초의 앱을 제작했다는 의의가 있다. 특히 웹 공지 분류의 경우는 딥러닝과 머신러닝을 사용해 90% 내외의 정확성을 갖는다는 특징이 있으며, 사용자의 정보에 따라 필터링 및 키워드 기반 추천 알고리즘을 사용해 웹 공지의 리스트를 제공한다는 점에서 활용성이 높다.

본인은 백엔드 서버 개발, 안드로이드 프론트엔드 개발, 사용자 정보 기반 웹 공지 추천 알고리즘 구현을 담당했다. 이번 프로젝트에서는 새로 적용해본 환경이나 툴이 많았는데, 코틀린으로 앱을 개발해본 것이나 서버를 구축하거나, 파이썬으로 웹 크롤러 만들기, 머신러닝과 딥러닝 학습, 추천 알고리즘 작성 등 많은 것들을 처음 경험했다. 예전에는 처음 해보는 거라면 걱정이 앞섰는데 계속 무언가를 새로 배우다 보니 이제는 처음 써보는 것도 곧잘 학습하게 된듯하다. 안드로이드 UI 디자인도 머터리얼 가이드를 따라 예전보다 잘하게 됐다.그치만 디자이너 분과도 협업해보고 싶다ㅠ

협업 측면에서도 과거보다 나아졌다. 이번에는 Trello와 Slack을 적극 활용해 소통에서의 어려움은 적었다. 문서의 경우는 구글 드라이브를 사용해 저장했다.

Trello

Slack


Google drive

다만 아쉬운 점은 이번에도 코드 리뷰를 하지 못했다는 것이다. 개발이 닥치게 되니 코드 리뷰의 우선순위가 점점 뒤로 밀리게 되고, 그러다 보니 결국 코드 리뷰는…미국 갔다 다음 프로젝트부터는 좀 더 이 부분에 시간을 할당해야겠다는 생각이 들었다. 프로젝트에서 새로 배운 부분, 어려웠던 부분과, 그걸 해결한 방법 등에 대해서는 차차 포스팅할 계획이다.

그리고 이러한 경험과, 주변의 도움을 바탕으로 최근 3월 말에는 소프트웨어 마에스트로 9기 예비 연수생에 합격하게 되었다.

아직 졸업작품 논문 작성이 남아있고, 곧 중간고사랑 이래저래 일정이 바쁘겠지만 배울 기회가 주어진 사실이 기쁘다. 예비 연수생 과정을 잘 마치고 정식 연수생이 될 수 있도록 열심히 노력할 생각이다. 소마 지원 과정에 대해서도 차후 글을 업로드 할 예정이다.