fullstack 개발자 만들기 과정 소개 (android + mean stack + redis 다루기)

32
Full Stack 개발자 만들기 프로그램 소개 손영수

Upload: youngsu-son

Post on 14-Jul-2015

1.648 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

Full Stack 개발자 만들기 프로그램 소개 손영수

Page 2: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

아젠다.

• 배경

• 학습 목적

• 일단 보는 전체 아키텍처

• 안드로이드…

• MEAN Stack

• Node.js

• MongoDB 대신 NeDB

• Redis

• OLAT / OLTP

• Scale Out / Scale Up

Page 3: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

학습 목적

• 5 Day Track (안드로이드 + 백엔드)

• 안드로이드와 벡앤드를 다 다루어본 Full Stack 개발자 만들기.

• 2 Day Track (안드로이드)

• 프로파일링+ 크래시 + 생산성 향상 + 테스팅 + Material Design

• 3 Day Track (백엔드)

• MEAN Stack + Redis 를 Node.js로 다룰줄 아는 개발자 만들기

Page 4: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

1. Android 개발자를 위한..

Page 5: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

배경.. 극심한 파편화. 엄밀히 말하면..

Page 6: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

엄밀히 말하면.. 3개의 전혀 다른 OS..

Page 7: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

피해야할 저주들..

• Gingerbread (2.3)의 저주 - apk 사이즈 제한

• 2.x 이전 / 3.0 이후 메모리 핸들링 기법 다름

• Apache 네트워크 라이브러리의 저주

• 삼성폰의 저주

• 홍대향의 저주

Page 8: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

제일 많이 만나는 에러들

• NPE (Null Pointer Exception)

• OOM (Out of Memory)

• Network Client Library (특히 Apache 네트워크 라이브러리) http://helloworld.naver.com/helloworld/textyle/377316

• Disk Cache 문제

Page 9: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

또한 안드로이드 개발자가 배워야할 것들.

• Material Design

• 안드로이드의 단편화를 피하면서 빠르게 만들수 있는 오픈 소스 라이브러리들을 활용하는 방법

• Profiling 및 Testing 기법 (Calabash)

• 코드 역공학

• Realm

• BCI + ASM

Page 10: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

2. 모바일 서비스를 위한 백엔드 만들기..

Page 11: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

배경 - 예전에는.. (매출과 사용자는 비례관계)

매출

사용자

Page 12: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

하지만 이녀석 때문에..

Page 13: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

배경 - 모바일이 나온후 (사용자가 많다고 매출이 좋은건 아니다..)

매출

사용자

Page 14: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

즉 돈이 많지 않다.

• 값 비싼 하드웨어 장비, 오라클.. 을 살수 없는데..

• 저렇게 많은 사용자를 어떻게 견디지??

• 값 비싼 장비 (살돈 없다) Scale Up이 힘들다.

Page 15: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

속내는..

• 비싼 하드웨어 장비 + 오라클 너무 비싸다.

• 대신 저렴하며 비슷한 효과를 낼 만한 것은?

• Scale Out + 오픈소스 솔루션으로..

Page 16: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

그래서 나온.. 여러가지 조합들…

Page 17: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

가장����������� ������������������  많이����������� ������������������  사용되는����������� ������������������  DB는����������� ������������������  ����������� ������������������  (mongodb����������� ������������������  ,����������� ������������������  redis..)

casandra

Page 18: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

모바일을 서비스를위한 BaaS - Parse 아키텍처

Page 19: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

2011년 Parse 아키텍처

Page 20: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

2014년 Parse 아키텍처

Page 21: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

PlugY Architecture

Page 22: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

그 중심에 나오는 키워드.. MEAN Stack

Page 23: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

우리는 다른 A를 사용합니다. Android..

Page 24: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

거기다 덤으로.. (토끼와 Redis 도 다룹니다..)

Page 25: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

그런데 몽고 셋팅및 기타등등 @#242$#@ 절차때문에 몽고와 인터페이스가 같은 .. NeDB로 학습합니다.

NeDB����������� ������������������  -����������� ������������������  http://blog.mongodb.org/post/55693224724/nedb-a-lightweight-javascript-database-using

Page 26: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

3. 5일동안 다루는 것들..

Page 27: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

Day 1

• 과정 소개

• 모바일 시장에 대한 이해

• 안드로이드 GC와 Profiler 의 이해

• Crash Report 붙이기

• Slack 사용법

• Realm DB 사용법 + Reversing 기법

Page 28: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

Day2

• 안드로이드 여러 오픈소스들.

• Testing

• ASM

• Material Design

Page 29: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

Day3

• Node.JS로 API 서버 만들기

• 성능 극대화 시키기

• Callback Hell 극복하기

• MongoDB 대신 NeDB 사용해 보기

Page 30: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

Day4

• Redis 활용해보기 + Node.JS

• 암호화 모듈 을 만들어 안드로이드랑 연동해 보기

• Redis Failover 등

• GCM의 단점 극복하는 MQTT 사설 푸시서버 만들기

Page 31: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

Day5

• ScaleOut DB 기법

• Redis 사용해 보기

• Redis + Node.js 로그인 모듈 만들기 그리고 안드로이드랑 연동하기

• Redis Failover 정책및 활용기법 공유

• Redis Backup 정책

Page 32: FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)

– 손영수 ([email protected])

질문 있으신가요?