나혼자먹는다 개발발표
TRANSCRIPT
나 혼자 먹는다
모바일 서버 전문가 과정 개발 발표
안드로이드 - 권혁서버 - 이상학
장소 : T 아카데미 일시 : 2015.02.24
INDEX• 서비스 소개
• 데모 시연
• 클라이언트 기술 발표
• 서버 기술 발표
Service Intro
Ser-vice
Client Server
010203
대학생 혼밥족이혼자서도 잘 먹게 해주는
Ser-vice
Client Server
010203 당신의 혼자 밥 먹는 일상을
기록하고 공유하세요
정서적 만족감: 혼자 밥 먹는 사람들끼리 인증 사진
집단지성 맞춤정보 : 지금 혼자 가기 좋은 식당 정보
Ser-vice
Client Server
010203
MAIN 혼밥팁
프로필 수정
팁쓰기
설정 페이지
팁 글 글 찍기 ( 좋아요 )
팁쓴이 프로필
설정
팁쓴이 페이지
전문 보기 ( 사진 ,글 ) 댓글 남기기
카테고리 필터링 상황 별
내용 입력카테고리 선택로그인하기가입하기 사진선택 SNS 공유하기
저장 글 삭제
공지사항
사진수정 이름 이메일 자주 가는 곳
알림 x
친구 초대
로그인로그아웃
페이스북카카오톡
팔로잉 하기팔로잉 끊기
팔로잉 , 팔로워 , 레벨
확인
알림보기
팔로잉 /팔로워
좋아요 ,레벨업
로그인
랭킹보기
지역명 지역변경
서비스 기능
Ser-vice
Client Server
010203
내혼밥
공감지수 (북마크 )
혼밥팁 ( 내 팁 )
프로필 수정
전문 보기 ( 사진 ,글 ) 댓글 확인
댓글 삭제
레벨지수
좋아요 찍은 글 모아보기
팔로잉 /팔로워
사진수정 이름 이메일 자주 가는 곳 MAIN
서비스 기능
Ser-vice
Client Server
010203
서비스 주요 기능
혼밥팁 쓰기 SNS공유
Point레벨 업팔로우
ClientAndroid
Service Client Server
01020304 데모 시연
Service Client Server
01020304
로그인 분리
Service Client Server
01020304
PullToRefresh library
Service Client Server
01020304
네비게이션 복잡도
Service Client Server
01020304
Google Cloud Message
Service Client Server
01020304 • 위치기반 글보기 및 글작성
• 카카오톡 친구초대
• 페이스북 로그인 , 글 공유
API 사용
ServerNode.js
Service Client Server
01020304
시스템 아키텍쳐ex-press
MEANndroid
Service Client Server
020304
Mongo DB01
ExpressNode.js
Mongo DB
JSON
JSON
Mongoose Module• 모든 데이터가 JSON 으로 저장• 고정적 Schema 없음• 확장에 용이• RDBMS 에 뒤지지 않는 인덱싱
기존 RDBMS
Service Client Server
020304
Mongo DB01
게시글좋아요
글쓴이글 사진
댓글
_id 글쓴이 댓글 글사진 좋아요a343fh1 Hak [] [] []
Service Client Server
020304
DeNormalization역정규화01
• Users follower[], followee[]
• Articles comment[], like[], picture[]
• Notices
• Gcms
Service Client Server
020304
DB Model01
Service Client Server
020304
Session01
로그인(session 서버에 저장 )
서버 재실행
세션 날아감
로그인(session 을 저장소에 저장 )
서버 재실행
세션 유지
Service Client Server
Redis Session
캐시 메모리에 저장 영속적으로 데이터 보존
• 세션의 생성 , 변경 , 삭제를 Redis 가 관리• 모바일 , 웹에서 생성되는 세션을 통합 관리• MongoDB 에 저장되는 정보와 따로 관리
Client Server2
Server3
Server1
Redis session store
020304
01
Service Client Server
Redis Session020304
01
• Key, Value 에 따른 고유 session 관리• Connect-redis 모듈 지원• 세션시간 , 추가 기능 지원
Service Client Server
Level-up Algorithm
Level 1 : 10 ~ 19Level 2 : 20 ~ 29Level 3 : 30 ~ 49Level 4 : 50 ~ 79Level 5 : 80 ~ 129Level 6 : 130 ~ 209Level 7 : 210 ~
글 1 개 게시 : 4 point좋아요 1 개 받음 : 2point
레벨이 변경됨
글쓰기 , 좋아요 요청을 받음
YES NO
Gcm 알림전송 포인트만 변경
Point 증가
020304
01
FibonacciSequence
Service Client Server
Follow Logic"follower" : [ ObjectId("54d5c34c2896d21c26a4a540"), ObjectId("54dc573b164168d80a0956c1")]
follower배열확인
팔로우 요청
일치 불일치배열에서 제거
( 팔로우 취소 )배열에 추가
( 팔로우 하기 )
ObjectId• 배열 저장 가능• addToSet, pull 제공• Populate 제공
020304
01
follower배열확인
사용자정보 확인
일치followYn = 1
불일치 fol-lowYn = 0
ObjectId
Service Client Server
Overall020304
01
• MongoDB 사용 (JSON 통신 )
• 빠른 DB 모델 수정• DB 에 배열을 사용 (follow, like)
• Redis session 저장소를 활용• Gcm 메시지를 MongoDB 에 저장• 새로운 의미의 MEAN stack
05
Service Client Server
향후계획020304
01
05
• Instagram 연동 ( 타 SNS )
• 관리자 페이지 보완• MongoDB 트랜잭션 구현• 강력한 password 암호화• Redis 활용한 빠른 쿼리• Password 변경 및 찾기
Thank you모바일 서버 전문가 과정 개발 발표
안드로이드 - 권혁서버 - 이상학