지적재산권
“내가 더 멀리 보아왔다면 그건 거인들의 어깨 위에 서있었기 때문” - 아이작 뉴턴
뉴턴이 말했듯, 사람이 만드는 모든 지적 생산물은 앞선 이들의 도움을 받아 만들어집니다. 밥플래닛팀 역시 다양한 오픈소스 소프트웨어 혹은 오픈API의 도움을 받고 있어요. 아래는 밥플래닛 프로젝트가 더 멀리 오를 수 있게끔 어깨를 빌려준 거인들의 목록입니다.
보잘 것 없는 작은 프로젝트이지만, 밥플래닛 프로젝트는 오픈소스 프로젝트로 진행되고 있습니다. 혹 밥플래닛의 소스코드가 궁금하신 분께서는 GitHub를 방문하시면 모든 소스를 받아보실 수 있습니다.
앱
현재, 밥플래닛은 안드로이드 앱으로만 제공됩니다. (iOS용 앱은 아직 없습니다) 앱이 이용하는 오픈소스 라이브러리들은 아래와 같습니다.
로직 구현
- Android Beacon Library - BLE 비콘 인식
- EventBus - 앱 안에서의 비동기식 이벤트 처리
- Volley - 이미지 다운로드
- Hugo - method 호출로그 자동출력
- RetroLambda - Java8 스타일의 lambda expression
사용자 인터페이스
- ButterKnife - findViewById() 지옥에서 탈출
- CWAC-Pager - ViewPager에 동적으로 fragment 추가
- MaterialList - 카드레이아웃
- SmoothProgressbar - Custom ProgressBar
- AndroidTagGroup - 해쉬태그출력
사용자 로그인
서버
서버는 Google의 AppEngine 위에 deploy되고, 모든 데이터는 NoSQL 데이터베이스인 DataStore에 저장됩니다. 해당 서버에서 직접 사용하거나, 서버에서 동작하는 소프트웨어를 만드는 과정에서 밥플래닛은 아래 소프트웨어들을 이용합니다.
- Objectify - DataStore DB 접근 API
- Joda-Time - 날짜계산시 timezone 포함
- BuildConfigPlugin - debug/release버전별 설정 차별화
웹
지금 보고 계시는 이 웹사이트는 GitHub Pages를 이용합니다. 보다 편리한 홈페이지를 만들기 위해 밥플래닛은 아래 기술들에 의존합니다.
- jekyll - 블로그를 지원하는 HTML 생성기
- materializeCSS - 홈페이지에 Material Design 적용
- handlebars - js 기반 HTML 템플릿
- isotope - 화면 레이아웃 제어
- url() - js에서 GET 패러미터 접근
- js-cookie - js에서 Cookie 접근
비콘
밥플래닛은 사내식당에 몇 기의 비콘(Beacon)을 설치하고, 식사를 마친 사용자들의 스마트폰으로 알림메시지를 보내 그날의 메뉴에 대한 평가를 요청합니다. 비콘은 영국 라즈베리파이 재단의 Raspberry Pi를 사용하며, 통신규격으로는 Google의 Eddystone을 이용합니다.
- Raspbian - 라즈베리파이의 OS
- node-eddystone-beacon - Eddystone의 node.js 구현체
데이터
밥플래닛은 SK플래닛의 식당 홈페이지에 게재된 메뉴정보를 읽어 서버에 저장하고, 이 정보를 메뉴 평점과 연결하여 분석합니다. 해당 과정에서 아래의 기술들이 활용됩니다.
- R - 데이터분석 및 처리용 프로그래밍언어 겸 플랫폼
- 사용자의 행동데이터
이미지
밥플래닛은 사용자들께 보다 직관적이고 친숙한 이용환경을 제공하기 위해 아래 서비스들을 이용하고 있습니다. 나머지 이미지들은 모두 밥플래닛팀이 직접 만든 것입니다.
- 다음 이미지검색 API - 메뉴 이미지
- Material Icons - 각종 아이콘 이미지
- freepik.com - DrawerMenu의 헤더이미지
- Yannik from Flaticon - 에러 이미지