본문 바로가기

프로젝트들

페이스 룰렛(1) - 얼굴인식 기반 카카오톡 제비뽑기

1. 개요


이 프로젝트는 2018 서강대학교 해커톤에서 만든 어플리케이션으로, 밥이나 술자리에서 찍는 단체 사진을 가지고 좀 더 재밌게 놀 수 없을까? 라는 생각으로 시작하였다. 단체사진을 올리면, 사진 안에서 얼굴인식을 한 후, 특정 기준을 가지고 하나의 얼굴을 선정해준다면, 밥 값, 혹은 술 값내기에 쓰이기 좋겠다는 생각이 들었다. 이러한 목표를 가지고 차근차근 2박 3일 동안 4명이서 개발하게 되었고, 최종적으로 간단한 프로토 타입을 만들어, 대회에서 Best Engineering 상을 수상하게 되었다.

 

앞으로 쓰게 될 이 시리즈는 2박 3일동안 해당 어플리케이션을 어떻게 개발하게 되었는지와, 그 간의 이슈와 고민들, 코드 개발과정을 기록하기 위해서다. 처음부터, 다시 개발한다는 생각으로 차근차근 기록해나갈 예정이다. 이후 해커톤이나 관련 서비스 개발하는 사람들에게 도움이 되었으면 좋겠다.


2. 서비스 형태


먼저 개발하고자 하는 서비스의 형태는 다음과 같았다.

발표 PT 에서 가져온건데, 설명이 너무 직관적이라, 더 설명하진 않겠다.





3. 사용한 기술스택


MS Azure face api


Microsoft azure 에서 지원하는 api 다. 얼굴인식 기능이 여기에 담겨있으며, 사용법이 매우매우 쉽다. Google Cloud 에서도 비슷한 기능을 지원하는 것으로 유명한데, 둘 중 어느것을 사용할지 고민하다가, azure 에서 제공해주는 정보가 더 많아 이를 택했다. 개발 초반부에 이 기술을 장착시키는 것이 내 역할이었고, 이에 관해 이후 글에서 차차 얘기해볼 예정이다.


Kakao 플러스 친구 api


처음에 클라이언트 사이드를 어떤 것으로 구현할지 고민했다. 보통 해커톤은 제일 만만해보이는 웹을 하거나, 조금 실력자가 있으면 앱으로 하는 것을 보았는데, 우리는 그보다 더 편하고, 언젠가 한 번쯤은 시도해보고 싶었던 kakao 플러스 친구를 사용해보기로 하였다. kakao developer api 는 프론트는 카톡 형식으로 알아서 만들어주고, 서버단에서 우리가 각 메시지에 대하여 처리해주기만 하면 된다. 우리 팀은 특히 백엔드 쪽으로 관심이 더 있었기 때문에, 개발하기도 편했고, 카카오톡은 유저 입장에서도 접근하기 쉬워서 매우 좋은 선택이었다고 생각한다.

Facebook 개발자 api


위 서비스 예시 사진에서, 마지막을 보면, 나온 결과에 대해 공유하기 버튼이 있다. 이를 누르면 페이스북 타임라인에 공유할 수 있는데, 이 기능을 사용하기 위해 페이스북 api를 사용하였다. 이전에도 페이스북 api를 시도해보다가 실패한 적이 있어서, 이번에는 해내고 싶었고, 그래서 내가 담당하게 되었다. 전날 새벽까지 조금 애먹었는데, 추후 글을 쓰도록 하겠다.

Node.js


어플리케이션에 대해 수행처리를 하는 서버쪽 언어는 Node.js 를 사용했다. 별다른 이유는 없고, 4명 중 2명이 Node 쓰는게 더 편했기 때문이었다. 



4. 이후 포스팅 할 것들


이후, 시간 순에 맞춰 세웠던 목표를 기준으로, 그 과정 내에 있던 이슈들, 고민들에 대해 쓰려고 한다.

모든 소스에 대한 정보는 다음 링크에서 볼 수 있다.

https://github.com/2018-sogang-hackathon/Face-Roulette