본문 바로가기

Personal_Project/Android

통합 SNS - Twice 개발하기 (1) - 제안 및 자료조사

개발 계기

아.. 난 페북도 하고, 인스타도 하고, 트위터도 하는데.. 왜 이거 매번 볼 때마다 새로 켜야 하는가.. 이거 한 번에 모아서 볼 수 있는 방법은 없나.. 하고 찾아보니 나온 건 죄다 광고 대행.. 이렇게 된 거 졸업 프로젝트할 겸 만들어보자

해서 시작한 프로젝트되시겠다.

졸업 프로젝트 겸 해서 개발하는 거지만. 만드려고 마음먹었으면 공감도 쉽게 살만하고, 사용자 확보도 괜찮게 해서 론칭할 목표도 가지는 게 괜찮겠다 싶었다.

선택한 SNS는 3개 지극히 주관적이고 한국적이지만 Facebook, Instagram, Twitter 3개를 골랐다. Tumblr 같은 SNS도 있지만 해외 쪽에서만 많이 돌아가는 것 같으니 추가해도 테스트해보기 어려워 보였다.

 

결론적으로 시작한 프로젝트 통합 SNS! 이름은 Twitter의 Tw, Instagram의 I, Facebook의 ce를 합쳐서 Twice. 걸그룹 검색할 겸 사람들이 검색해보는 효과도 노렸다.

 

자료조사

자료를 조사해보니 Facebook과 Instagram은 Graph API라는 다소 독자적인 오픈소스를 개발하여 API를 굴리는 형태다. 인증방식은 OAuth 2.0, Postman과 같은 툴을 이용해서도 볼 수 있지만, 소스코드로 구현할 때와 다르게 Token을 매개변수로 같이 넘겨주는 형태를 쓴다. OAuth 2.0을 사용하기에 API를 사용할 때 Token만 넘겨주면 해당 사용자의 정보를 받아 사용할 수 있었다.

Twitter는 Open API 형태, OAuth 1.0a를 사용했다. 보이는 건 Token만 넘겨주면 되는 줄 알았더니, 헤더에 상당한 정보를 같이 넘겨줘야만 제대로 된 값을 넘겨줬다. Timestamp나 Nonce 같은 인증 정보도 같이 보내줘야 했었다. 그리고 몇몇은 Token과 함께 Token Secret도 함께 보내야 하는 API도 있었다.

 

기획

기존에 존재하는 타임라인을 긁어모아서 보여주는 걸로는 뭔가 밋밋하고 카피캣 정도로 끝나는 것 같은 찜찜함.

무언가 제공은 되지만 사용자들이 잘 모르는 것, 아니면 구현되어있으면 좋겠다 생각한 것을 골라 앱의 장점으로 선택하기 위해 팀원들과 회의를 했다. 결과적으로 나온 건 게시글의 예약 관련 기능들, 그리고 무료.

현재 시중에 있는 앱들은 전부 유료 거나, 무료지만 중요 기능은 전부 유료인 앱들 위주였다. 일단 이런 것도 돈 내고 써야 하는 생각이 들기에 무료로 제공한다는 점을 타이틀로 잡고, 추가된 기능으로는 예약 관련 기능을 넣었다.

목표로 잡은 OS는 Android. 회원관리를 하기 위해서 Server를 두어 MySQL을 이용해 회원 관련 기능을 만들자 하는 방면으로 생각은 했지만. 갓 Google의 DB인 Firestore를 사용해보기로 했다.

Android와 Node 기반의 Server정도가 전체 시스템 구조로 결정이 났고. Server작업은 초반에 크게 결정된 게 없으니 빠르게 Android UI 작업을 시작하기로 했다.

 

여담

자료조사도 끝나고 간단한 설계를 하고 나니 빨리 만들어보고 싶다는 의욕이 타올랐었다. 일단 Android Client-Side 개발을 맡았으니 UI 작업할 때 까지는 기분이 좋았었다. 뭔가 이렇게 하면 될 것 같다는 생각이 들었으니.

지옥의 시작인 줄도 모르고...