Enviar pesquisa
Carregar
Androidpn guide-0.5.0-ko
โข
2 gostaram
โข
1,213 visualizaรงรตes
S
sandeepreddyp42
Seguir
androidpn guide english
Leia menos
Leia mais
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 24
Baixar agora
Baixar para ler offline
Recomendados
๋ด์ค์ ค๋ฆฌ ๋ฉ์ดํน์คํ ๋ฆฌ- ๋ฐฉํฉํ๋ ์นผ๋
๋ด์ค์ ค๋ฆฌ ๋ฉ์ดํน์คํ ๋ฆฌ- ๋ฐฉํฉํ๋ ์นผ๋
Newsjelly
ย
SDR Push Marketing
SDR Push Marketing
Sam Roberts
ย
Story telling marketing
Story telling marketing
gjxogh
ย
๋ด์ค์ ค๋ฆฌ ๋ฉ์ดํน์คํ ๋ฆฌ - ์ ์ฌ์
๋ด์ค์ ค๋ฆฌ ๋ฉ์ดํน์คํ ๋ฆฌ - ์ ์ฌ์
Newsjelly
ย
[Nc] 2013 ์ธ์กํฐ์ค ์ฝ๋ฆฌ์ ๊ตญ๋ด๋ํ ์๊ฐ
[Nc] 2013 ์ธ์กํฐ์ค ์ฝ๋ฆฌ์ ๊ตญ๋ด๋ํ ์๊ฐ
์์ค ์ฐจ์์ค
ย
๋์งํธ ๋งค๊ฑฐ์ง ์ถํ ํ๋ซํผ ์ ์์
๋์งํธ ๋งค๊ฑฐ์ง ์ถํ ํ๋ซํผ ์ ์์
Tae-lim Oh
ย
์ ๊ธฐ์ ์ ๋ฌดํ๋ก์ธ์คํต์ฌ์ฉ์ด(It๋น์ง๋์ค์ฉ์ด์ง)
์ ๊ธฐ์ ์ ๋ฌดํ๋ก์ธ์คํต์ฌ์ฉ์ด(It๋น์ง๋์ค์ฉ์ด์ง)
Jay W. Choi
ย
์ ์์ง ์คํ์์ค ํด๋ผ์ฐ๋ ํ๋ซํผ (uEngine Microservice architecture Platform)
์ ์์ง ์คํ์์ค ํด๋ผ์ฐ๋ ํ๋ซํผ (uEngine Microservice architecture Platform)
uEngine Solutions
ย
Recomendados
๋ด์ค์ ค๋ฆฌ ๋ฉ์ดํน์คํ ๋ฆฌ- ๋ฐฉํฉํ๋ ์นผ๋
๋ด์ค์ ค๋ฆฌ ๋ฉ์ดํน์คํ ๋ฆฌ- ๋ฐฉํฉํ๋ ์นผ๋
Newsjelly
ย
SDR Push Marketing
SDR Push Marketing
Sam Roberts
ย
Story telling marketing
Story telling marketing
gjxogh
ย
๋ด์ค์ ค๋ฆฌ ๋ฉ์ดํน์คํ ๋ฆฌ - ์ ์ฌ์
๋ด์ค์ ค๋ฆฌ ๋ฉ์ดํน์คํ ๋ฆฌ - ์ ์ฌ์
Newsjelly
ย
[Nc] 2013 ์ธ์กํฐ์ค ์ฝ๋ฆฌ์ ๊ตญ๋ด๋ํ ์๊ฐ
[Nc] 2013 ์ธ์กํฐ์ค ์ฝ๋ฆฌ์ ๊ตญ๋ด๋ํ ์๊ฐ
์์ค ์ฐจ์์ค
ย
๋์งํธ ๋งค๊ฑฐ์ง ์ถํ ํ๋ซํผ ์ ์์
๋์งํธ ๋งค๊ฑฐ์ง ์ถํ ํ๋ซํผ ์ ์์
Tae-lim Oh
ย
์ ๊ธฐ์ ์ ๋ฌดํ๋ก์ธ์คํต์ฌ์ฉ์ด(It๋น์ง๋์ค์ฉ์ด์ง)
์ ๊ธฐ์ ์ ๋ฌดํ๋ก์ธ์คํต์ฌ์ฉ์ด(It๋น์ง๋์ค์ฉ์ด์ง)
Jay W. Choi
ย
์ ์์ง ์คํ์์ค ํด๋ผ์ฐ๋ ํ๋ซํผ (uEngine Microservice architecture Platform)
์ ์์ง ์คํ์์ค ํด๋ผ์ฐ๋ ํ๋ซํผ (uEngine Microservice architecture Platform)
uEngine Solutions
ย
[๊ฐ๋ฐฉํ ํด๋ผ์ฐ๋ ํ๋ซํผ ์คํ์ธ๋ฏธ๋ ์คํํด๋ผ์ฐ๋ Pub] 3.open shift ๋ถ์
[๊ฐ๋ฐฉํ ํด๋ผ์ฐ๋ ํ๋ซํผ ์คํ์ธ๋ฏธ๋ ์คํํด๋ผ์ฐ๋ Pub] 3.open shift ๋ถ์
Tommy Lee
ย
๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์ํ AWS ์ํคํ ์ฒ ํจํด ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก - AWS Summit Seoul 2017
๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์ํ AWS ์ํคํ ์ฒ ํจํด ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก - AWS Summit Seoul 2017
Amazon Web Services Korea
ย
Meetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vs
minseok kim
ย
๋ฉํฐํฐ์ด ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ๊ณผ ๋ฐฐํฌ
๋ฉํฐํฐ์ด ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ๊ณผ ๋ฐฐํฌ
Devgear
ย
Sencha ExtJS๋ฅผ ํ์ฉํ Big Data Platform ๊ฐ๋ฐ ์ฌ๋ก
Sencha ExtJS๋ฅผ ํ์ฉํ Big Data Platform ๊ฐ๋ฐ ์ฌ๋ก
๋ฏธ๋์น๊ธฐ์ ์ฐ๊ตฌ์ (MIRAE WEB)
ย
Nutch Homepage Search Engine
Nutch Homepage Search Engine
Kay Kim
ย
01.๊ฐ๋ฐํ๊ฒฝ ๊ต์ก๊ต์ฌ
01.๊ฐ๋ฐํ๊ฒฝ ๊ต์ก๊ต์ฌ
Hankyo
ย
Mirantis open stack deployment automation
Mirantis open stack deployment automation
WooKyun Jeon
ย
Cloud-Barista ์ 3์ฐจ ์คํ ์ปจํผ๋ฐ์ค : CB-Dragonfly - ๋ฉํฐ ํด๋ผ์ฐ๋ ํตํฉ ๋ชจ๋ํฐ๋ง ํ๋ ์์ํฌ(Multi-Cloud ...
Cloud-Barista ์ 3์ฐจ ์คํ ์ปจํผ๋ฐ์ค : CB-Dragonfly - ๋ฉํฐ ํด๋ผ์ฐ๋ ํตํฉ ๋ชจ๋ํฐ๋ง ํ๋ ์์ํฌ(Multi-Cloud ...
Cloud-Barista Community
ย
Microsoft azure service ์๊ฐ์๋ฃ
Microsoft azure service ์๊ฐ์๋ฃ
Alvin You
ย
04.์คํํ๊ฒฝ ๊ต์ก๊ต์ฌ(ํ๋ฉด์ฒ๋ฆฌ)
04.์คํํ๊ฒฝ ๊ต์ก๊ต์ฌ(ํ๋ฉด์ฒ๋ฆฌ)
Hankyo
ย
Spring cloud on kubernetes
Spring cloud on kubernetes
SangSun Park
ย
[2017 AWS Startup Day] ์๋ฒ๋ฆฌ์ค ๋ง์ดํฌ๋ก์๋น์ค๋ก ์ผ๋น๋ฐฑ ๊ฐ๋ฐ์กฐ์ง ๋ง๋ค๊ธฐ
[2017 AWS Startup Day] ์๋ฒ๋ฆฌ์ค ๋ง์ดํฌ๋ก์๋น์ค๋ก ์ผ๋น๋ฐฑ ๊ฐ๋ฐ์กฐ์ง ๋ง๋ค๊ธฐ
Amazon Web Services Korea
ย
ํ๋ก ํธ์๋ ๊ฐ๋ฐ ์ฒซ๊ฑธ์
ํ๋ก ํธ์๋ ๊ฐ๋ฐ ์ฒซ๊ฑธ์
DataUs
ย
Microservices
Microservices
์๊ธฐ ๊น
ย
Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos
uEngine Solutions
ย
Event storming based msa training commerce example add_handson_v3
Event storming based msa training commerce example add_handson_v3
uEngine Solutions
ย
[21]๋ณํ์ ์๋ : ์๋๋ก์ด๋ ์ฑ ์ด๋ป๊ฒ ๊ฐ๋ฐํ ๊ฒ์ธ๊ฐ?
[21]๋ณํ์ ์๋ : ์๋๋ก์ด๋ ์ฑ ์ด๋ป๊ฒ ๊ฐ๋ฐํ ๊ฒ์ธ๊ฐ?
NAVER Engineering
ย
Microservice Architecture
Microservice Architecture
Yoonsung Jung
ย
Big Data platform์ ์ํ Sencha Ext JS ์ฌ๋ก.
Big Data platform์ ์ํ Sencha Ext JS ์ฌ๋ก.
ํจ๊ทผ ๋ฐ
ย
Mais conteรบdo relacionado
Semelhante a Androidpn guide-0.5.0-ko
[๊ฐ๋ฐฉํ ํด๋ผ์ฐ๋ ํ๋ซํผ ์คํ์ธ๋ฏธ๋ ์คํํด๋ผ์ฐ๋ Pub] 3.open shift ๋ถ์
[๊ฐ๋ฐฉํ ํด๋ผ์ฐ๋ ํ๋ซํผ ์คํ์ธ๋ฏธ๋ ์คํํด๋ผ์ฐ๋ Pub] 3.open shift ๋ถ์
Tommy Lee
ย
๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์ํ AWS ์ํคํ ์ฒ ํจํด ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก - AWS Summit Seoul 2017
๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์ํ AWS ์ํคํ ์ฒ ํจํด ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก - AWS Summit Seoul 2017
Amazon Web Services Korea
ย
Meetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vs
minseok kim
ย
๋ฉํฐํฐ์ด ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ๊ณผ ๋ฐฐํฌ
๋ฉํฐํฐ์ด ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ๊ณผ ๋ฐฐํฌ
Devgear
ย
Sencha ExtJS๋ฅผ ํ์ฉํ Big Data Platform ๊ฐ๋ฐ ์ฌ๋ก
Sencha ExtJS๋ฅผ ํ์ฉํ Big Data Platform ๊ฐ๋ฐ ์ฌ๋ก
๋ฏธ๋์น๊ธฐ์ ์ฐ๊ตฌ์ (MIRAE WEB)
ย
Nutch Homepage Search Engine
Nutch Homepage Search Engine
Kay Kim
ย
01.๊ฐ๋ฐํ๊ฒฝ ๊ต์ก๊ต์ฌ
01.๊ฐ๋ฐํ๊ฒฝ ๊ต์ก๊ต์ฌ
Hankyo
ย
Mirantis open stack deployment automation
Mirantis open stack deployment automation
WooKyun Jeon
ย
Cloud-Barista ์ 3์ฐจ ์คํ ์ปจํผ๋ฐ์ค : CB-Dragonfly - ๋ฉํฐ ํด๋ผ์ฐ๋ ํตํฉ ๋ชจ๋ํฐ๋ง ํ๋ ์์ํฌ(Multi-Cloud ...
Cloud-Barista ์ 3์ฐจ ์คํ ์ปจํผ๋ฐ์ค : CB-Dragonfly - ๋ฉํฐ ํด๋ผ์ฐ๋ ํตํฉ ๋ชจ๋ํฐ๋ง ํ๋ ์์ํฌ(Multi-Cloud ...
Cloud-Barista Community
ย
Microsoft azure service ์๊ฐ์๋ฃ
Microsoft azure service ์๊ฐ์๋ฃ
Alvin You
ย
04.์คํํ๊ฒฝ ๊ต์ก๊ต์ฌ(ํ๋ฉด์ฒ๋ฆฌ)
04.์คํํ๊ฒฝ ๊ต์ก๊ต์ฌ(ํ๋ฉด์ฒ๋ฆฌ)
Hankyo
ย
Spring cloud on kubernetes
Spring cloud on kubernetes
SangSun Park
ย
[2017 AWS Startup Day] ์๋ฒ๋ฆฌ์ค ๋ง์ดํฌ๋ก์๋น์ค๋ก ์ผ๋น๋ฐฑ ๊ฐ๋ฐ์กฐ์ง ๋ง๋ค๊ธฐ
[2017 AWS Startup Day] ์๋ฒ๋ฆฌ์ค ๋ง์ดํฌ๋ก์๋น์ค๋ก ์ผ๋น๋ฐฑ ๊ฐ๋ฐ์กฐ์ง ๋ง๋ค๊ธฐ
Amazon Web Services Korea
ย
ํ๋ก ํธ์๋ ๊ฐ๋ฐ ์ฒซ๊ฑธ์
ํ๋ก ํธ์๋ ๊ฐ๋ฐ ์ฒซ๊ฑธ์
DataUs
ย
Microservices
Microservices
์๊ธฐ ๊น
ย
Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos
uEngine Solutions
ย
Event storming based msa training commerce example add_handson_v3
Event storming based msa training commerce example add_handson_v3
uEngine Solutions
ย
[21]๋ณํ์ ์๋ : ์๋๋ก์ด๋ ์ฑ ์ด๋ป๊ฒ ๊ฐ๋ฐํ ๊ฒ์ธ๊ฐ?
[21]๋ณํ์ ์๋ : ์๋๋ก์ด๋ ์ฑ ์ด๋ป๊ฒ ๊ฐ๋ฐํ ๊ฒ์ธ๊ฐ?
NAVER Engineering
ย
Microservice Architecture
Microservice Architecture
Yoonsung Jung
ย
Big Data platform์ ์ํ Sencha Ext JS ์ฌ๋ก.
Big Data platform์ ์ํ Sencha Ext JS ์ฌ๋ก.
ํจ๊ทผ ๋ฐ
ย
Semelhante a Androidpn guide-0.5.0-ko
(20)
[๊ฐ๋ฐฉํ ํด๋ผ์ฐ๋ ํ๋ซํผ ์คํ์ธ๋ฏธ๋ ์คํํด๋ผ์ฐ๋ Pub] 3.open shift ๋ถ์
[๊ฐ๋ฐฉํ ํด๋ผ์ฐ๋ ํ๋ซํผ ์คํ์ธ๋ฏธ๋ ์คํํด๋ผ์ฐ๋ Pub] 3.open shift ๋ถ์
ย
๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์ํ AWS ์ํคํ ์ฒ ํจํด ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก - AWS Summit Seoul 2017
๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์ํ AWS ์ํคํ ์ฒ ํจํด ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก - AWS Summit Seoul 2017
ย
Meetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vs
ย
๋ฉํฐํฐ์ด ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ๊ณผ ๋ฐฐํฌ
๋ฉํฐํฐ์ด ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ๊ณผ ๋ฐฐํฌ
ย
Sencha ExtJS๋ฅผ ํ์ฉํ Big Data Platform ๊ฐ๋ฐ ์ฌ๋ก
Sencha ExtJS๋ฅผ ํ์ฉํ Big Data Platform ๊ฐ๋ฐ ์ฌ๋ก
ย
Nutch Homepage Search Engine
Nutch Homepage Search Engine
ย
01.๊ฐ๋ฐํ๊ฒฝ ๊ต์ก๊ต์ฌ
01.๊ฐ๋ฐํ๊ฒฝ ๊ต์ก๊ต์ฌ
ย
Mirantis open stack deployment automation
Mirantis open stack deployment automation
ย
Cloud-Barista ์ 3์ฐจ ์คํ ์ปจํผ๋ฐ์ค : CB-Dragonfly - ๋ฉํฐ ํด๋ผ์ฐ๋ ํตํฉ ๋ชจ๋ํฐ๋ง ํ๋ ์์ํฌ(Multi-Cloud ...
Cloud-Barista ์ 3์ฐจ ์คํ ์ปจํผ๋ฐ์ค : CB-Dragonfly - ๋ฉํฐ ํด๋ผ์ฐ๋ ํตํฉ ๋ชจ๋ํฐ๋ง ํ๋ ์์ํฌ(Multi-Cloud ...
ย
Microsoft azure service ์๊ฐ์๋ฃ
Microsoft azure service ์๊ฐ์๋ฃ
ย
04.์คํํ๊ฒฝ ๊ต์ก๊ต์ฌ(ํ๋ฉด์ฒ๋ฆฌ)
04.์คํํ๊ฒฝ ๊ต์ก๊ต์ฌ(ํ๋ฉด์ฒ๋ฆฌ)
ย
Spring cloud on kubernetes
Spring cloud on kubernetes
ย
[2017 AWS Startup Day] ์๋ฒ๋ฆฌ์ค ๋ง์ดํฌ๋ก์๋น์ค๋ก ์ผ๋น๋ฐฑ ๊ฐ๋ฐ์กฐ์ง ๋ง๋ค๊ธฐ
[2017 AWS Startup Day] ์๋ฒ๋ฆฌ์ค ๋ง์ดํฌ๋ก์๋น์ค๋ก ์ผ๋น๋ฐฑ ๊ฐ๋ฐ์กฐ์ง ๋ง๋ค๊ธฐ
ย
ํ๋ก ํธ์๋ ๊ฐ๋ฐ ์ฒซ๊ฑธ์
ํ๋ก ํธ์๋ ๊ฐ๋ฐ ์ฒซ๊ฑธ์
ย
Microservices
Microservices
ย
Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos
ย
Event storming based msa training commerce example add_handson_v3
Event storming based msa training commerce example add_handson_v3
ย
[21]๋ณํ์ ์๋ : ์๋๋ก์ด๋ ์ฑ ์ด๋ป๊ฒ ๊ฐ๋ฐํ ๊ฒ์ธ๊ฐ?
[21]๋ณํ์ ์๋ : ์๋๋ก์ด๋ ์ฑ ์ด๋ป๊ฒ ๊ฐ๋ฐํ ๊ฒ์ธ๊ฐ?
ย
Microservice Architecture
Microservice Architecture
ย
Big Data platform์ ์ํ Sencha Ext JS ์ฌ๋ก.
Big Data platform์ ์ํ Sencha Ext JS ์ฌ๋ก.
ย
Androidpn guide-0.5.0-ko
1.
์๋๋ก์ด๋ ํธ์ ํต๋ณด
์์คํ ํ๋ก์ ํธ ๊ฐ์ด๋ Android Push Notification System Project Guide v0.5 2010.10 Moduad Co., Ltd. โ 2010 Moduad 1
2.
์๋๋ก์ด๋ ํธ์ ํต๋ณด
์์คํ ํ๋ก์ ํธ ๊ฐ์ด๋ ๋ชฉ ์ฐจ 1 ํ๋ก์ ํธ ๊ฐ์...................................................................................................................... 3 1.1 ํ๋ก์ ํธ ๋ชฉ์ ............................................................................................................................... 3 1.2 ํ๋ก์ ํธ ๊ฐ๋ฐ ๋ฐฐ๊ฒฝ ...................................................................................................................... 3 2 ์๋๋ก์ด๋ ํธ์ ํต๋ณด ์์คํ ........................................................................................... 3 2.1 ์์คํ ๊ตฌ์ฑ ................................................................................................................................... 3 2.2 ํธ์ ํต๋ณด ๊ณผ์ .............................................................................................................................. 4 3 ํ๋ก์ ํธ ๊ตฌ์ฑ...................................................................................................................... 4 3.1 ์๋ฒ (androidpn-server).............................................................................................................. 4 3.2 ํด๋ผ์ด์ธํธ (androidpn-client) ................................................................................................... 7 3.3 ๋ฐ๋ชจ ์ ํ๋ฆฌ์ผ์ด์ (androidpn-demoapp) .............................................................................. 9 4 ํ๋ก์ ํธ ์ปดํ์ผ ๋ฐ ๋น๋ ................................................................................................... 9 4.1 ์๋ฒ ์ปดํ์ผ ๋ฐ ๋น๋ .................................................................................................................... 9 4.2 ํด๋ผ์ด์ธํธ ์ปดํ์ผ ๋ฐ ๋น๋ ...................................................................................................... 10 5 ์๋ฒ ์ค์น ๋ฐ ๊ตฌ๋ ............................................................................................................. 11 5.1 ์๋ฒ ์ค์น ..................................................................................................................................... 11 5.2 ์๋ฒ ๊ตฌ๋ ..................................................................................................................................... 12 6 ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ...................................................................................... 13 6.1 ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ .................................................................................................... 13 6.2 ํด๋ผ์ด์ธํธ ํ๊ฒฝ ์ค์ ํ์ผ ...................................................................................................... 13 6.3 ํด๋ผ์ด์ธํธ ์๋น์ค ์์ ์ฝ๋ .................................................................................................. 13 7 ํ๋ก์ ํธ ์คํฌ๋ฆฐ์ท............................................................................................................ 14 7.1 ์๋ฒ (๊ด๋ฆฌ์ ์น ์ฝ์) ................................................................................................................ 14 7.2 ํด๋ผ์ด์ธํธ (์๋๋ก์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ).................................................................................. 17 8 ์ฃผ์ ๊ด๋ จ ๊ธฐ์ .................................................................................................................. 20 8.1 ํธ์ ํต๋ณด (Push Notification)๋? ............................................................................................ 20 8.2 Push vs. Pull ................................................................................................................................ 21 8.3 XMPP (eXtensible Message and Presence Protocol) .......................................................... 21 8.4 ์๋๋ก์ด๋(Android).................................................................................................................. 22 9 ๊ฐ๋ฐ ํ๊ฒฝ............................................................................................................................ 23 9.1 ์๋ฒ ๊ฐ๋ฐ ํ๊ฒฝ ............................................................................................................................ 23 9.2 ํด๋ผ์ด์ธํธ ๊ฐ๋ฐ ํ๊ฒฝ ................................................................................................................ 23 10 ๋ฐ์ ๋ฐฉํฅ............................................................................................................................ 23 10.1 ์ํํธ์จ์ด ํ์ง ํฅ์ ............................................................................................................ 23 10.2 ์๋ฒ ๋ฐ ํด๋ผ์ด์ธํธ ์์คํ ํ์ฅ ......................................................................................... 24 10.3 ๋ค์ํ ๋ถ์ผ์ ์์ฉ ................................................................................................................ 24 10.4 ์คํ์์ค ์ปค๋ฎค๋ํฐ ํ๋์ ๊ธฐ์ฌ .......................................................................................... 24 โ 2010 Moduad 2
3.
์๋๋ก์ด๋ ํธ์ ํต๋ณด
์์คํ ํ๋ก์ ํธ ๊ฐ์ด๋ 1 ํ๋ก์ ํธ ๊ฐ์ 1.1 ํ๋ก์ ํธ ๋ชฉ์ ๋ณธ ํ๋ก์ ํธ๋ ์๋๋ก์ด๋ ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ์์ ๋ง์ ํ์์ฑ๊ณผ ๋ค์ํ ๋ถ์ผ์ ์์ฉ๋ ์ ์๋ ์๋๋ก์ด๋ ๊ธฐ๋ฐ์ ํธ์ ํต๋ณด (Push Notification) ์๋น์ค๋ฅผ ์ํ ์๋ฒ ์์คํ ๋ฐ ํด๋ผ์ด์ธํธ ์๋ฃจ์ ์ ์คํ์์ค๋ก ์ ๊ณตํ์ฌ, ๊ตญ๋ด์ธ ์๋๋ก์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ๋ฐ ๊ณต๊ฐ SW ์ปค๋ฎค๋ํฐ ํ์ฑํ์ ๊ธฐ์ฌ๋ฅผ ํ๊ณ ์ ํ๋ค. ๋ณธ ํ๋ก์ ํธ๋ ๋ค์๊ณผ ๊ฐ์ ์ฃผ์ ๋ชจ๋์ ์ ๊ณตํ๋ค. ๏ฌ ํธ์ ํต๋ณด ์๋ฒ ์์คํ ๏ฌ ์๋๋ก์ด๋ ํธ์ ํต๋ณด ํด๋ผ์ด์ธํธ ๋ชจ๋ ๏ฌ ์๋๋ก์ด๋ ์ํ ์ ํ๋ฆฌ์ผ์ด์ 1.2 ํ๋ก์ ํธ ๊ฐ๋ฐ ๋ฐฐ๊ฒฝ ์๋๋ก์ด๋ ๊ธฐ๋ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๊ธ๊ฒฉํ ์ฆ๊ฐํ๊ณ ์์ง๋ง, ํ์ฌ Google์์ ์ ์์ ์ธ ์๋๋ก์ด๋ ๊ธฐ๋ฐ ํธ์ ํต๋ณด ์๋น์ค๋ฅผ ์ง์์ ํ๊ณ ์์ง ์์ ์ํฉ์ด๋ค. ์๋๋ก์ด๋ 2.2 (Froyo)๋ถํฐ ๋ฑ์ฅํ Cloud To Device Messaging (C2DM) ์๋น์ค๋ ํ์ฌ Lab ํ ์คํธ ๋ฒ์ ์ผ๋ก ์ ์ ์๋น์ค๊ฐ ๋๊ณ ์์ง ์์ ์ํฉ์ด๋ฉฐ, ์ด์ ์๋๋ก์ด๋ OS ๋ฒ์ ์ ์ง์ํ์ง ์๋๋ค. ์ด์ ๋ฐํด BlackBerry๋ 2002๋ Push Email ์๋น์ค์ ์์์ผ๋ก ํธ์ ํต๋ณด ์๋น์ค๋ฅผ ์์ํ์ผ๋ฉฐ, Apple๋ 2009๋ iPhone 3.0 ์ดํ๋ถํฐ Apple Push Notification Service (APNS)๋ฅผ ์ง์ํ๊ณ ์๋ค. ๋ํ Microsoft๋ ์ถ์ ์์ ์ธ Windows Phone 7์์ Microsoft Push Notification Service (MPNS) ์ง์๊ณผ ํจ๊ป ์ถ์ ์์ ์ด๋ค. 2 ์๋๋ก์ด๋ ํธ์ ํต๋ณด ์์คํ 2.1 ์์คํ ๊ตฌ์ฑ ์๋๋ก์ด๋ ํธ์ ํต๋ณด ์์คํ ์ XMPP ํ๋กํ ์ฝ์ ์ง์ํ๋ ์์ผ ์๋ฒ ์์คํ ๊ณผ ์๋๋ก์ด๋ ๊ธฐ๋ฐ ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ๊ตฌ์ฑ๋๋ค. ์๋ฒ Java ๊ธฐ๋ฐ ์์ผ ์๋ฒ๋ก XMPP ํ๋กํ ์ฝ์ ์ง์ํ๋ฉฐ, ๊ด๋ฆฌ์์ฉ ์น ์ฝ์ ์ง์์ ํฌํจํ๊ณ ์๋ค. ๊ด๋ฆฌ์ ์น ์ฝ์์ ์ด์ฉํ์ฌ ํด๋ผ์ด์ธํธ ์ ์ ์ ๋ณด ๋ชจ๋ํฐ๋ฆฟ ๋ฐ Push ๋ฉ์์ง๋ฅผ ์ ์กํ ์ ์๋ค. ํด๋ผ์ด์ธํธ ์๋๋ก์ด๋ ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ์๋ฒ๋ก๋ถํฐ Push๋ ๋ฉ์์ง๋ฅผ ์์ํ์ฌ ์ฌ์ฉ์์๊ฒ ํต๋ณดํ๋ค. โ 2010 Moduad 3
4.
์๋๋ก์ด๋ ํธ์ ํต๋ณด
์์คํ ํ๋ก์ ํธ ๊ฐ์ด๋ 2.2 ํธ์ ํต๋ณด ๊ณผ์ ์๋๋ก์ด๋ ํธ์ ํต๋ณด ์์คํ ์ ๊ธฐ๋ณธ์ ์ธ ํธ์ ํต๋ณด ๊ณผ์ ์ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ๋ค. โ ํด๋ผ์ด์ธํธ๋ ํธ์ ํต๋ณด ์๋ฒ์ ์ ์ํ์ฌ, ๋จ๋ง ๊ธฐ๋ณธ ์ ๋ณด๋ฅผ ์๋ฒ์ ๋ฑ๋กํ๊ณ ์ฐ๊ฒฐ ์ํ๋ฅผ ์ ์งํ๋ค. โก ์๋ฒ๋ ๋ฉ์์ง ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ, ํด๋ผ์ด์ธํธ์ Push ๋ฐฉ์์ผ๋ก ๋ฉ์์ง๋ฅผ ์ ์กํ๋ค. โข ํด๋ผ์ด์ธํธ๋ ์๋ฒ๋ก๋ถํฐ ์ ์ก๋ ๋ฉ์์ง๋ฅผ ์ฌ์ฉ์์๊ฒ ํต๋ณด๋ฅผ ํ๋ค. 3 ํ๋ก์ ํธ ๊ตฌ์ฑ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๋ชจ๋์ ๋ชจ๋ ์ดํด๋ฆฝ์ค ๊ธฐ๋ฐ์ ์๋ฐ ํ๋ก์ ํธ์ด๋ค. ๊ตฌ๋ถ ํ๋ก์ ํธ๋ช ์ค๋ช ์คํ์์ค ๋ผ์ด์ ์ค ์๋ฒ androidpn-server Java ๊ธฐ๋ฐ ์์ผ์๋ฒ ํํ์ ํธ์ ํต๋ณด GPL 2.0 ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ํด๋ผ์ด์ธํธ androidpn-client ์๋๋ก์ด๋ ํ๋ซํผ์ฉ ํธ์ํต๋ณด Apache License 2.0 ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐฐํฌ ๋ชจ๋ androidpn-demoapp ๊ฐ๋ฐ์์ฉ ์ํ ์ ํ๋ฆฌ์ผ์ด์ 3.1 ์๋ฒ (androidpn-server) ํธ์ ํต๋ณด ์๋ฒ๋ ๊ตฌ๋์ ์ํด Java SE 6 ๋ฎํ์์ ํ์๋ก ํ๋ฉฐ, Spring ํ๋ ์์ํฌ๋ฅผ ์ด์ฉํด ํด๋์ค๊ฐ ์์กด์ฑ ์ฃผ์ ์ ํ๊ณ MINA ํ๋ ์์ํฌ๋ฅผ ์ด์ฉํ์ฌ ๊ตฌ์ฑํ ์์ผ ์๋ฒ์ด๋ค. ๋ฐ์ดํฐ ํต์ ๋ฐฉ์์ XML ์คํธ๋ฆฌ๋ฐ ๋ฐฉ์์ XMPP ํ๋กํ ์ฝ์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ, XMPP ์๋ฒ ์คํ์ ๊ตฌํํ๊ณ ์๋ค. ๋ํ Jetty ์๋ธ๋ฆพ ์ปจํ ์ด๋๋ฅผ ๋ด์ฅํ์ฌ ๊ด๋ฆฌ์ ์น์ฝ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํฌํจํ๊ณ ์๋ค. โ 2010 Moduad 4
5.
์๋๋ก์ด๋ ํธ์ ํต๋ณด
์์คํ ํ๋ก์ ํธ ๊ฐ์ด๋ 3.1.1 ์๋ฒ ์ํคํ ์ณ 3.1.2 ์๋ฒ ์ฃผ์ ๋ชจ๋ ๏ฌ IO Handler - XML ํฌ๋งท์ ์คํธ๋ฆฌ๋ฐ ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ํถ๋ค๋ฆฟ ๏ฌ Stanza Handler - XMPP ๊ธฐ๋ณธ ํต์ ๋จ์์ธ Stanza ๋ฐ ํด๋ผ์ด์ธํธ์์ ์ฐ๊ฒฐ ํน์ง์ ํถ๋ค๋ฆฟ ๏ฌ IQ Handler - IQ Stanza ๋ฐ์ดํฐ๋ฅผ ํด์ํ๊ณ ํ์ ๋ณ ๋ฐ์ดํฐ๋ฅผ ํถ๋ค๋ฆฟ ๏ฌ Session Manager - ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ ์ธ์ ๋ค์ ์ ๋ฐ์ ์ผ๋ก ๊ด๋ฆฌ ๏ฌ Auth Manager - ํด๋ผ์ด์ธํธ ์ฌ์ฉ์ ๋ฑ๋ก ๋ฐ ๋ก๊ทธ์ธ ๋ฑ ์ธ์ฆ ๊ด๋ฆฌ ๏ฌ Presence Manager - ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ ์ํ(Presence) ์ ๋ณด๋ฅผ ๊ด๋ฆฌ ๏ฌ Notification Manager - ์๋ฒ ์ด๋ฒคํธ์ ๋ฐ๋ผ ํด๋ผ์ด์ธํธ๋ก Push ๋ฉ์์ง ์ ์ก์ ๋ด๋น ๏ฌ Admin Console - ํด๋ผ์ด์ธํธ์ ๋ฑ๋ก ์ ๋ณด, ์ ์ ์ํ ๋ชจ๋ํฐ๋ฆฟ ๋ฐ Push ๋ฉ์์ง ์ ์ก UI๋ฅผ ๊ฐ์ง ๊ด๋ฆฌ์์ฉ ์น์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋ 3.1.3 ์๋ฒ ๊ฐ๋ฐ ํ๋ซํผ ๋ฐ ๋๊ตฌ ๏ฌ Java SE 6 - ์๋ฐ ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ๋์ ์ํ ๋ฎํ์ ์์ง ๏ฌ Spring Framework - ์๋ฐ ํด๋์ค๊ฐ ์์กด์ฑ์ ์ฐ๊ฒฐํด์ฃผ๋ DI (Dependency Injection) ์ปจํ ์ด๋ ํ๋ ์์ํฌ โ 2010 Moduad 5
6.
์๋๋ก์ด๋ ํธ์ ํต๋ณด
์์คํ ํ๋ก์ ํธ ๊ฐ์ด๋ ๏ฌ MINA - ์๋ฐ NIO ๋คํธ์ํฌ ์๋ฒ ๊ตฌํ์ ์ํ ๋คํฌ์ํฌ ํ๋ ์์ํฌ ๏ฌ Jetty - ๊ด๋ฆฌ์ ์น์ฝ์ ๋ชจ๋์ ์ํ ์๋ฐ ๋ด์ฅํ ์๋ธ๋ฆพ ์ปจํ ์ด๋ ๏ฌ Hibernate - ๋ฐ์ดํฐ ์์์ฑ์ ์ํ ORM (Object-Relational Mapping) ํ๋ ์์ํฌ ๏ฌ HSQLDB - ์ฌ์ฉ์ ๋ฐ์ดํฐ ์ ์ฅ์ ์ํ ์๋ฐ ๋ด์ฅํ DB (MySQL ๋ฑ ๋ค๋ฅธ DB๋ ์ฌ์ฉ ๊ฐ๋ฅ) ๏ฌ Ant / Maven - ํ๋ก์ ํธ ์์ค ์ปดํ์ผ ๋ฐ ๋น๋ ๋๊ตฌ ๏ฌ JUnit - ์๋ฐ ํด๋์ค ๋จ์ ํ ์คํธ ํ๋ ์์ํฌ 3.1.4 ๋๋ ํ ๋ฆฌ ๋ฐ ์๋ฐ ํจํค์ง ๊ตฌ์ฑ ๏ฌ ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ ์๋ฒ ํ๋ก์ ํธ ์์ค๋ Maven 2.0 ๊ธฐ๋ฐ์ ๋ฉํฐ ๋ชจ๋ ํ๋ก์ ํธ์ด๋ฉฐ ๋ค์๊ณผ ๊ฐ์ 3๊ฐ์ ์ฃผ์ ๋ชจ๋๋ก ๋๋ ์ ์์ผ๋ฉฐ, ๋๋ ํ ๋ฆฌ๋ช ๊ณผ ๋์ผํ๋ค. ๋๋ ํ ๋ฆฌ๋ช ์ค๋ช ๋น๋ ํ์ผ console ๊ด๋ฆฌ์ ์ฝ์ ๋ชจ๋์ด๋ฉฐ ์น์ ํ๋ฆฌ์ผ์ด์ ์ด๋ฉฐ, ์คํ๋ฆฟ MVC console.war ๊ธฐ๋ฐ์ ๊ตฌ์กฐ๋ก ๋์ด์๋ค. Server ํธ์ ํต๋ณด ์๋ฒ ํต์ฌ ๋ชจ๋์ด๋ฉฐ, Spring + MINA ํตํฉ๋ androidpn-server-0.4.x.jar ์์ผ ์๋ฒ์ด๋ฉฐ, XMPP ์๋ฒ๋ฅผ ๊ตฌํํ๊ณ ์๋ค. starter ์๋ฒ์ ์์์ํค๊ธฐ ์ํ ๋ชจ๋๋ก, ํด๋์ค ๋ก๋ฉ์ ๋ด๋นํ๋ค. starter.jar ๏ฌ ์๋ฐ ํจํค์ง ์๋ฒ ํ๋ก์ ํธ์ ์๋ฐ ํด๋์ค๋ ๋ค์๊ณผ ๊ฐ์ ์ฃผ์ ํจํค์ง๋ก ๊ตฌ์ฑ๋์ด ์๋ค. ํจํค์ง๋ช ์ค๋ช org.androidpn.server.container ๊ด๋ฆฌ์ ์ฝ์ ์น๋ชจ๋์ ์์ํ๊ธฐ ์ํ ์ปจํ ์ด๋ ํด๋์ค org.androidpn.server.dao Data Access Object ์ธํฐํ์ด์ค org.androidpn.server.dao.hibernate Data Access Object ๊ตฌํ ํด๋์ค org.androidpn.server.model DB ์ํฐํฐ๋ฅผ ํํํ๋ ๋๋ฉ์ธ ๊ฐ์ฒด ๋ชจ๋ธ ํด๋์ค org.androidpn.server.service ๋น์ฆ๋์ค ๋ก์ง์ ๋ด๋นํ๋ ์๋น์ค ์ธํฐํ์ด์ค org.androidpn.server.service.impl ๋น์ฆ๋์ค ๋ก์ง์ ๋ด๋นํ๋ ์๋น์ค ๊ตฌํ ํด๋์ค org.androidpn.server.starter ์๋ฒ ์์์ ์ํ ํด๋์ค org.androidpn.server.util ์ ํธ๋ฆฌํฐ ํด๋์ค org.androidpn.server.xmpp XMPP ์๋ฒ๋ฅผ ๊ตฌํํ ํด๋์ค๋ฅผ ๋ด์ ๋ฒ ์ด์ค ํจํค์ง org.androidpn.server.xmpp.auth ์ฌ์ฉ์ ์ธ์ฆ์ ๋ด๋นํ๋ ํด๋์ค org.androidpn.server.xmpp.codec MINA ๊ธฐ๋ฐ์ XMPP ๋ฉ์์ง ์ฝ๋ฑ ํด๋์ค โ 2010 Moduad 6
7.
์๋๋ก์ด๋ ํธ์ ํต๋ณด
์์คํ ํ๋ก์ ํธ ๊ฐ์ด๋ org.androidpn.server.xmpp.handler XMPP Stanza๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๊ฐ์ข ํถ๋ค๋ฌ org.androidpn.server.xmpp.net MINA ๊ธฐ๋ฐ์ ํต์ฌ ์์ผ ๋คํธ์ํน์ ๋ด๋นํ๋ ํด๋์ค org.androidpn.server.xmpp.presence XMPP์ ์ฌ์ฉ์ ์ํ์ ๋ณด(Presence)๋ฅผ ์ฒ๋ฆฌํ๋ ํด๋์ค org.androidpn.server.xmpp.push ํด๋ผ์ด์ธํธ๋ก ํธ์ ๋ฉ์์ง๋ฅผ ์ ์ก์ ์ฒ๋ฆฌํ๋ ํด๋์ค org.androidpn.server.xmpp.router ์์๋ Stanza ๋ฐ์ดํฐ๋ฅผ ์ ์ ํ ํถ๋ค๋ฌ๋ก ๋ณด๋ด๋ ํด๋์ค org.androidpn.server.xmpp.session ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ ์ธ์ ์ ๊ด๋ฆฌํ๊ธฐ ์ํ ํด๋์ค 3.2 ํด๋ผ์ด์ธํธ (androidpn-client) ํธ์ ํต๋ณด ํด๋ผ์ด์ธํธ ๋ชจ๋์ ์๋๋ก์ด๋ OS 1.5 ์ด์์ ํ๋ซํผ์ ํ์๋ก ํ๋ฉฐ, XMPP ํด๋ผ์ด์ธํธ ํํ๋ก์ ์๋ฒ์ XML ์คํธ๋ฆฌ๋ฐ ๊ธฐ๋ฐ ํต์์ ํ๋ค. 3.2.1 ํด๋ผ์ด์ธํธ ์ํคํ ์ณ 3.2.2 ํด๋ผ์ด์ธํธ ์ฃผ์ ๋ชจ๋ ๏ฌ Service Manager - ํด๋ผ์ด์ธํธ ํ๊ฒฝ ์ค์ ๋ก๋ฉ ๋ฐ ํต์ง ์๋น์ค๋ฅผ ์์/์ข ๋ฃ๋ฅผ ๋ด๋นํ๋ ๊ธฐ๋ณธ ๊ด๋ฆฌ์ ํด๋์ค ๏ฌ Notification Service - ์๋ฒ๋ก๋ถํฐ ๋ฉ์์ง ์์์ ์ํด ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋์ด๋ ๋ฐฑ๊ทธ๋ผ์ฒ๋๋ก ์ํ๋๋ ์๋๋ก์ด๋ Service๋ฅผ ์์ํ ์๋น์ค ๏ฌ XMPP Manager - XMPP ํด๋ผ์ด์ธํธ ๋ชจ๋๋ก ํธ์ ํต๋ณด ์๋ฒ๋ก์ ์ฐ๊ฒฐ, ์ฌ์ฉ์ ๋ฑ๋ก, ๋ก๊ทธ์ธ ๋ฑ์ ๋ด๋น ๏ฌ Connection Listener - ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์ฐ๊ฒฐ์ ์ง์์ฑ์ ์ ์งํ๊ธฐ ์ํ ์ฐ๊ฒฐ ์ํ๋ฅผ ๋ชจ๋ํฐ๋ฆฟ ๏ฌ Notification Packet Listener - ์๋ฒ๋ก๋ถํฐ์ Notification ํจํท์ ์์์ ๋ด๋นํ๊ณ , ํต์ง๋ฅผ ์ํ ๋ธ๋ก๋์บ์คํธ ์ํ โ 2010 Moduad 7
8.
์๋๋ก์ด๋ ํธ์ ํต๋ณด
์์คํ ํ๋ก์ ํธ ๊ฐ์ด๋ ๏ฌ Notification Receiver - ์๋ฒ๋ก๋ถํฐ ์์ ํ ๋ธ๋ก๋์บ์คํธ๋ Notification ๋ฉ์์ง ์ ๋ณด๋ฅผ ๋ฐ์ ์ฒ๋ฆฌ ๏ฌ Notifier - Notification Manager๋ฅผ ์ด์ฉํ์ฌ ์์๋ ๋ฉ์์ง๋ฅผ ์ฌ์ฉ์์๊ฒ ํต๋ณด ๏ฌ Connectivity Receiver - ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์ฐ๊ฒฐ์ ์ง์์ฑ์ ์ํด ๋คํธ์ํฌ ์ํ๋ฅผ ๋ชจ๋ํฐ๋ฆฟ ๏ฌ Phone State Listener - ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์ฐ๊ฒฐ์ ์ง์์ฑ์ ์ํด ์ ํ๊ธฐ ๋ฐ์ดํฐ ์ฐ๊ฒฐ ์ํ๋ฅผ ๋ชจ๋ํฐ๋ฆฟ ๏ฌ Notification Details Activity - ์ฌ์ฉ์์๊ฒ ํต๋ณด๋ ๋ฉ์์ง์ ์์ธ ์ ๋ณด ๋ทฐ๋ฅผ ์ํ Activity ๏ฌ Notification Settings Activity - ํด๋ผ์ด์ธํธ์ ๋ฉ์์ง ์์, ์๋ฆฌ, ์ง๋ ์ฌ๋ถ ๋ฑ์ ์ค์ ๋ทฐ๋ฅผ ์ ๊ณตํ๋ Activity 3.2.3 ํด๋ผ์ด์ธํธ ๊ฐ๋ฐ ํ๋ซํผ ๋ฐ ๋๊ตฌ ๏ฌ Android SDK - ์๋๋ก์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ๋ ํ๋ซํผ (์๋๋ก์ด๋ OS 1.5 ์ด์ ์ง์) - Service, NotificaitonManager, BroadcastReceiver ๋ฑ ๏ฌ Smack - XMPP ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๏ฌ Ant - ํ๋ก์ ํธ ์์ค ์ปดํ์ผ ๋ฐ ๋น๋ ๋๊ตฌ 3.2.4 ๋๋ ํ ๋ฆฌ ๋ฐ ์๋ฐ ํจํค์ง ๊ตฌ์ฑ ๏ฌ ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ ํด๋ผ์ด์ธํธ ํ๋ก์ ํธ๋ ์ดํด๋ฆฝ์ค ๊ธฐ๋ฐ์ ์๋๋ก์ด๋ ํ๋ก์ ํธ๋ก ๊ธฐ๋ณธ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ์ ๋์ผํ๋ค. ๋๋ ํ ๋ฆฌ๋ช ์ค๋ช src ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ค์ ๋ฐ๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์์ค ํฌํจ lib ํ๋ก์ ํธ ์ฐธ์กฐ์ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก XMPP ํด๋ผ์ด์ธํธ smack ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํฌํจ res ์๋๋ก์ด๋ ๋ฆฌ์์ค ํ์ผ๋ค๋ก ํด๋ผ์ด์ธํธ ์ค์ ํ์ผ์ธ android.properties ๋ ํฌํจ Assets ์๋๋ก์ด๋ assets ๋๋ ํ ๋ฆฌ (์ฌ์ฉ๋์ง ์์) ๏ฌ ์๋ฐ ํจํค์ง ํด๋ผ์ด์ธํธ ํ๋ก์ ํธ์ ์๋ฐ ํด๋์ค๋ ๋ค์๊ณผ ๊ฐ์ ์ฃผ์ ํจํค์ง๋ก ๊ตฌ์ฑ๋์ด ์๋ค. ํจํค์ง๋ช ์ค๋ช org.androidpn.client ํธ์ ํต๋ณด ํด๋ผ์ด์ธํธ ํด๋์ค. XMPP ํด๋ผ์ด์ธํธ ๋ฐ ์๋๋ก์ด๋ Service, Activity ๋ฑ์ ํฌํจ org.androidpn.demoapp ๋ฐ๋ชจ์ฉ ์ ํ๋ฆฌ์ผ์ด์ ํด๋์ค โ 2010 Moduad 8
9.
์๋๋ก์ด๋ ํธ์ ํต๋ณด
์์คํ ํ๋ก์ ํธ ๊ฐ์ด๋ 3.3 ๋ฐ๋ชจ ์ ํ๋ฆฌ์ผ์ด์ (androidpn-demoapp) ํธ์ ํต๋ณด ํด๋ผ์ด์ธํธ ๋ชจ๋์ ์ด์ฉํ์ฌ ์๋๋ก์ด๋ ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐ์ ์ํ ๊ฐ์ด๋์ฉ ์ํ ์๋๋ก์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ค. ํด๋ผ์ด์ธํธ ํ๋ก์ ํธ์์ ์์ฑ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชจ๋(androidpn-client.jar)์ ํฌํจํ๊ณ ์๋ค. 4 ํ๋ก์ ํธ ์ปดํ์ผ ๋ฐ ๋น๋ 4.1 ์๋ฒ ์ปดํ์ผ ๋ฐ ๋น๋ ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์์ค๋ฅผ ์ปดํ์ผํ๊ธฐ ์ํด์๋ JDK 1.5 ์ด์๊ณผ Maven 2.0์ ํ์๋ก ํ๋ค. ๋ค์๊ณผ ๊ฐ์ ์ ์ฐจ๋ก ์ํํ๋ค. โ ํ๋ก์ ํธ ์๋ฒ ์์ค ๋ฐฐํฌ ํ์ผ(androidpn-server-0.4.x.zip ํํ)์ ์ค๋นํ๊ณ , ์์ถ์ ํผ๋ค. โก ์ ํ๋กํํธ์์ mvn install ๋ช ๋ น์ ์ํํ์ฌ ๊ธฐ๋ณธ ๋ชจ๋๋ค์ ์ปดํ์ผ, ํ ์คํธ ๋ฐ ๋น๋ํ๋ค. ๋ค์๊ณผ ์ ์ฌํ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ ์๋ค. C:projectsandroidpn-server-0.5.0>mvn install [INFO] Scanning for projects... [INFO] Reactor build order: [INFO] Andorid Push Notification [INFO] Unnamed - org.androidpn:server:jar:0.5.0 [INFO] Unnamed - org.androidpn:starter:jar:0.5.0 [INFO] Unnamed - org.androidpn:console:war:0.5.0 [INFO] ------------------------------------------------------------------------ โฆ ์ค๋ต โฆ [INFO] Reactor Summary: [INFO] ------------------------------------------------------------------------ [INFO] Andorid Push Notification ............................. SUCCESS [1.562s] [INFO] Unnamed - org.androidpn:server:jar:0.5.0 .............. SUCCESS [9.109s] [INFO] Unnamed - org.androidpn:starter:jar:0.5.0 ............. SUCCESS [0.812s] [INFO] Unnamed - org.androidpn:console:war:0.5.0 ............. SUCCESS [2.109s] [INFO] ------------------------------------------------------------------------ [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 13 seconds [INFO] Finished at: Wed Oct 13 02:15:18 KST 2010 [INFO] Final Memory: 47M/114M [INFO] ------------------------------------------------------------------------ โข ์ ํ๋กํํธ์์ mvn assembly:assembly ๋ช ๋ น์ ์ํํ์ฌ, ์๋ฒ ํ๋ก๊ทธ๋จ ๋ฐ์ด๋๋ฆฌ ๋ฐ ์์ค ๋ฐฐํฌ ํ์ผ์ ์์ฑํ๋ค. โ 2010 Moduad 9
10.
์๋๋ก์ด๋ ํธ์ ํต๋ณด
์์คํ ํ๋ก์ ํธ ๊ฐ์ด๋ C:projectsandroidpn-server-0.5.0>mvn assembly:assembly [INFO] Scanning for projects... [INFO] Reactor build order: [INFO] Andorid Push Notification [INFO] Unnamed - org.androidpn:server:jar:0.5.0 [INFO] Unnamed - org.androidpn:starter:jar:0.5.0 [INFO] Unnamed - org.androidpn:console:war:0.5.0 [INFO] Searching repository for plugin with prefix: 'assembly'. [INFO] ------------------------------------------------------------------------ โฆ ์ค๋ต โฆ [INFO] Building zip: C:projectsandroidpn-server-0.5.0targetandroidpn-server-0.5.0-bin.zip [INFO] Building zip: C:projectsandroidpn-server-0.5.0targetandroidpn-server-0.5.0-src.zip [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 14 seconds [INFO] Finished at: Wed Oct 13 02:23:30 KST 2010 [INFO] Final Memory: 27M/64M [INFO] ------------------------------------------------------------------------ โฃ ์ ์์ ์ผ๋ก ์ํ์ด ๋๋ฉด target ๋๋ ํ ๋ฆฌ์ 2๊ฐ์ zip ํ์ผ์ด ์์ฑ๋๋ค. ์ด์ค ์๋ฒ ๋ฐ์ด๋๋ฆฌ ์คํ ํ๋ก๊ทธ๋จ์ androidpn-server-0.4.x-bin.zip ํํ๋ก ๋น๋๋ ํ์ผ์ด๋ค. 4.2 ํด๋ผ์ด์ธํธ ์ปดํ์ผ ๋ฐ ๋น๋ ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ์์ค๋ฅผ ์ปดํ์ผํ๊ธฐ ์ํด์๋ JDK 1.5 ์ด์๊ณผ Android 1.5 ์ด์ SDK ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ๋น๋๋ฅผ ์ํด์ Ant 1.7 ์ด์์ ํ์๋ก ํ๋ค. ๋ค์๊ณผ ๊ฐ์ ์ ์ฐจ๋ก ์ํํ๋ค. โ ํ๋ก์ ํธ ํด๋ผ์ด์ธํธ ์์ค ๋ฐฐํฌ ํ์ผ(androidpn-client-0.4.x.zip ํํ)์ ์ค๋นํ๊ณ , ์์ถ์ ํผ๋ค. โก Ant ๋น๋์ ์ฌ์ฉ๋๋ build.properties ํ์ผ์ ์ด์ด, Android SDK ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์น๋ฅผ ํ๊ฒฝ์ ๋ง๊ฒ ์์ ํด์ค๋ค. # Android SDK android.sdk.jar=c:/Android/android-sdk/platforms/android-3/android.jar โข ์ ํ๋กํํธ์์ ant build ๋ช ๋ น์ ์ํํ์ฌ, ํด๋ผ์ด์ธํธ ๋ฐ์ด๋๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ์์ค ๋ฐฐํฌ ํ์ผ์ ์์ฑํ๋ค. C:projectsandroidpn-client-0.5.0>ant build Buildfile: build.xml clean: compile: โ 2010 Moduad 10
11.
์๋๋ก์ด๋ ํธ์ ํต๋ณด
์์คํ ํ๋ก์ ํธ ๊ฐ์ด๋ [mkdir] Created dir: C:projectsandroidpn-client-0.5.0targetclasses [javac] Compiling 16 source files to C:projectsandroidpn-client-0.5.0targetclasses build: [jar] Building jar: C:projectsandroidpn-client-0.5.0targetandroidpn-client-0.5.0.jar [mkdir] Created dir: C:projectsandroidpn-client-0.5.0targetandroidpn-client-0.5.0 [copy] Copying 33 files to C:projectsandroidpn-client-0.5.0targetandroidpn-client-0.5.0 [copy] Copied 15 empty directories to 1 empty directory under C:projectsandroidpn- client-0.5.0targetandroidpn-client-0.5.0 [zip] Building zip: C:projectsandroidpn-client-0.5.0targetandroidpn-client-0.5.0.zip [delete] Deleting directory C:projectsandroidpn-client-0.5.0targetandroidpn-client-0.5.0 BUILD SUCCESSFUL Total time: 1 second โฃ ์ ์์ ์ผ๋ก ์ํ์ด ๋๋ฉด target ๋๋ ํ ๋ฆฌ์ 1๊ฐ์ jar ํ์ผ๊ณผ 1๊ฐ์ zip ํ์ผ์ด ์์ฑ๋๋ค. ์ด์ค ํด๋ผ์ด์ธํธ ๋ฐ์ด๋๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ androidpn-client-0.4.x.jar ํํ๋ก ๋น๋๋ ํ์ผ์ด๋ฉฐ, ์ด๋ ์๋๋ก์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐ์ ์ฌ์ฉ๋๋ค. 5 ์๋ฒ ์ค์น ๋ฐ ๊ตฌ๋ 5.1 ์๋ฒ ์ค์น ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น๋ ์ ํ๋์ zip ํํ์ ์์ถํ์ผ๋ก ์์ฑ์ด ๋๋ฉฐ, ์ํ๋ ์์น์ ํ๋ฉด ์ค์น๊ฐ ๋๋ค. 5.1.1 ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์๊ณผ ๊ฐ์ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ๋๋ ํ ๋ฆฌ ์ค๋ช bin ์๋ฒ ์คํ ์คํฌ๋ฆฝํธ๊ฐ ์์ผ๋ฉฐ, Windows ๋ฐ Unix ์ฉ 2๊ฐ์ ์คํฌ๋ฆฝํธ๊ฐ ์๋ค. conf ๊ฐ์ข ํ๊ฒฝ ์ค์ ํ์ผ๋ค์ด ์์ผ๋ฉฐ, ์ผ๋ถ ํ์ผ๋ค์ ์ฌ์ฉ์ ์๋ฒ ํ๊ฒฝ์ ๋ง๊ฒ ์์ ์ ํด์ค์ผ ํ๋ค. console ๊ด๋ฆฌ์ ์ฝ์ ์น์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋์ด๋ค. lib ํต์ฌ anroidpn ์๋ฒ ๋ชจ๋์ ๋น๋กฏํ์ฌ, ๊ฐ์ข ์ฐธ์กฐ์ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ์์นํ๋ค. 5.1.2 ์๋ฒ ํ๊ฒฝ ์ค์ ์ค์น๋ ์๋ฒ๋ฅผ ์ ์์ ์ผ๋ก ๊ตฌ๋ํ๊ธฐ ์ํด์๋ ๋ช ๊ฐ์ง ํ๊ฒฝ ์ค์ ์ด ํ์ํ๋ค. ํ๊ฒฝ์ค์ ํ์ผ์ conf ๋๋ ํ ๋ฆฌ ์์ ์์ผ๋ฉฐ, ๋ค์๊ณผ ๊ฐ์ ์ค์ ์ด ํ์ํ๋ค. ๏ฌ ์๋ฒ ๊ธฐ๋ณธ ์ค์ (config.properties) ์๋ฒ ๊ด๋ฆฌ์ ์ฝ์์ ์ ์์ ์ผ๋ก ๊ตฌ๋ํ๊ธฐ ์ํด์ ์๋ฒ ํธ์คํธ๋ช ๊ณผ ํฌํธ๋ฒํธ๋ฅผ ์ง์ ํ๋ค. โ 2010 Moduad 11
12.
์๋๋ก์ด๋ ํธ์ ํต๋ณด
์์คํ ํ๋ก์ ํธ ๊ฐ์ด๋ admin.console.host=127.0.0.1 admin.console.port=7070 ๏ฌ DB ์ ๋ณด ์ค์ (jdbc.properties, hibernate.xml) ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ๋ฐ ํ๊ฒฝ์ ์ํด HSQLDB๋ฅผ ์ด์ฉํ๋, ์ฌ์ฉ ์๋น์ค๋ฅผ ์ํด์ MySQL, Oracle ๋ฑ์ผ๋ก ๋ฐ๊ฟ ์ ์๋ค. # JDBC Configuration jdbcDriverClassName=org.hsqldb.jdbcDriver jdbcUrl=jdbc:hsqldb:db/androidpn;shutdown=true jdbcUsername=sa jdbcPassword= DB ์ ๋ณด๊ฐ ๋ฐ๋ ๊ฒฝ์ฐ, ORM ํ๋ ์์ํฌ์ธ Hibernate ์ค์ ํ์ผ์ DB ์ ๋ณด๋ ๋ง์ถฐ์ค๋ค. <!-- Database connection settings --> <property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property> <property name="hibernate.connection.url">jdbc:hsqldb:db/androidpn;shutdown=true</property> <property name="hibernate.connection.username">sa</property> <property name="hibernate.connection.password"></property> 5.2 ์๋ฒ ๊ตฌ๋ ์๋ฒ ์์์ ์ํ ์์ ์คํฌ๋ฆฝํธ๋ bin ๋๋ ํ ๋ฆฌ์ ์๋์ฐ ๋ฐ ์ ๋์ค์ฉ ์คํฌ๋ฆฝํธ๊ฐ ์๋ค. ์๋ฒ ๊ตฌ๋์ ์ํด์๋ Java ๋ฎํ์ 6.0 ์ด์์ด ์์คํ ์ ์ค์น๋์ด ์์ด์ผ ํ๋ค. JAVA_HOME ๊ฐ์ ์คํฌ๋ฆฝํธ ์์ ๋ง๊ฒ ์ค์ ํด ์ฃผ๊ฑฐ๋ ์์คํ ํ๊ฒฝ์ ๋ณด์ ์ค์ ํด ์ฃผ์ด์ผ ํ๋ค. ์๋๋ ์๋์ฐ ํ๊ฒฝ์์ ์๋ฒ ์์์ ๊ตฌ๋ ์์ด๋ค. C:androidpn-server-0.5.0bin>run {DEBUG} [2010-10-14 13:00:06,187] <org.androidpn.server.xmpp.XmppServer> : base.dir=.. {DEBUG} [2010-10-14 13:00:06,312] <org.apache.commons.configuration.ConfigurationUtils> : ConfigurationUtils.locate(): b ase is C:androidpn-server-0.5.0bin, name is config.xml {DEBUG} [2010-10-14 13:00:06,343] <org.apache.commons.configuration.ConfigurationUtils> : Loading configuration from the context classpath (config.xml) ...์ค๋ต... {INFO } [2010-10-14 13:00:14,562] <org.mortbay.log> : Started SelectChannelConnector@127.0.0.1:7070 โ 2010 Moduad 12
13.
์๋๋ก์ด๋ ํธ์ ํต๋ณด
์์คํ ํ๋ก์ ํธ ๊ฐ์ด๋ {DEBUG} [2010-10-14 13:00:14,562] <org.androidpn.server.container.AdminConsole> : Admin console started. {INFO } [2010-10-14 13:00:14,562] <org.androidpn.server.xmpp.XmppServer> : Admin console listening at http://127.0.0.1:7070 {INFO } [2010-10-14 13:00:14,562] <org.androidpn.server.xmpp.XmppServer> : XmppServer started: 127.0.0.1 {INFO } [2010-10-14 13:00:14,562] <org.androidpn.server.xmpp.XmppServer> : Androidpn Server v0.5.0 ์๋ฒ๊ฐ ์ ์์ ์ผ๋ก ๊ตฌ๋๋์์ผ๋ฉฐ, ์น๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด์ http://ํธ์คํธ๋ช :ํฌํธ๋ฒํธ ์ฃผ์๋ฅผ ์ ์ํ์ฌ ๊ด๋ฆฌ์ ์ฝ์์ ๋ณผ ์ ์์ ๊ฒ์ด๋ค. (์คํฌ๋ฆฎ์ท ์ฐธ์กฐ). 6 ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ์๋๋ก์ด๋ ํธ์ ํต๋ณด ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํฌํจํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๊ธฐ ์ํด์๋ ์ํ ์ ํ๋ฆฌ์ผ์ด์ (androidpn-demoapp) ํ๋ก์ ํธ๋ฅผ ๋ณด๋ฉด ๋น ๋ฅด๊ฒ ์ฐธ์กฐํ ์ ์๋ค. 6.1 ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ ์ดํด๋ฆฝ์ค IDE์์ ์๊ท ์๋๋ก์ด๋ ํ๋ก์ ํธ๋ฅผ ์์ฑํ ํ, ํธ์ ํต๋ณด ํด๋ผ์ด์ธํธ ํ๋ก์ ํธ(androidpn- client)์์ ๋น๋ํ ํด๋ผ์ด์ธํธ์ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(androidpn-client.jar)๋ฅผ ํ๋ก์ ํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ถ๊ฐํ๋ค. 6.2 ํด๋ผ์ด์ธํธ ํ๊ฒฝ ์ค์ ํ์ผ ์๋๋ก์ด๋ ํ๋ก์ ํธ์ ๊ธฐ๋ณธ ํด๋์ธ res ํด๋ ๋ฐ์ raw ๋๋ ํ ๋ฆฌ๋ฅผ ์์ฑ ํ ๊ทธ๊ณณ์ adroidpn.peoperties ํ์ผ์ ์์ฑํ๋ค. ์ด ํ๋กํผํฐ ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ด ์ ์ํ ์๋ฒ์ ํธ์คํธ์ ํฌํธ๋ฒํธ(๊ธฐ๋ณธ:5222) ์ ๋ณด๋ฅผ ์ ๋ ฅํ์ฌ ํธ์งํ๋ค. xmppHost=192.168.0.5 xmppPort=5222 6.3 ํด๋ผ์ด์ธํธ ์๋น์ค ์์ ์ฝ๋ ๏ฌ ํด๋ผ์ด์ธํธ ๋ฉ์ธ Activity ํด๋์ค ํ์ผ์ onCreate() ๋ฉ์๋ ์์ ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๋ฅผ ์์ฑํ๋ค. public void onCreate(Bundle savedInstanceState) { Log.d("DemoAppActivity", "onCreate()..."); super.onCreate(savedInstanceState); setContentView(R.layout.main); โ 2010 Moduad 13
14.
์๋๋ก์ด๋ ํธ์ ํต๋ณด
์์คํ ํ๋ก์ ํธ ๊ฐ์ด๋ // Start the service ServiceManager serviceManager = new ServiceManager(this); serviceManager.setNotificationIcon(R.drawable.notification); serviceManager.startService(); } ๏ฌ ํธ์ ํต๋ณด ์์ ์ฌ๋ถ ๋ฐ ์ฌ์ฒ๋, ์ง๋์ ์ค์ ํ๋ Settings Activity๋ฅผ ํ์ํ๊ธฐ ์ํด์๋ ๋ฒํบ ๋ฑ์ ํด๋ฆญ ์ด๋ฒคํธ์ ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๋ฅผ ์ฝ์ ํ๋ฉด ๋๋ค. Button okButton = (Button) findViewById(R.id.btn_settings); okButton.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { ServiceManager.viewNotificationSettings(DemoAppActivity.this); } }); ๏ฌ AndroidManifest.xml ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ด ์๋น์ค ๋ฐ Activity ํด๋์ค๋ฅผ ๋ฑ๋กํด ์ค๋ค. <activity android:name="org.androidpn.client.NotificationDetailsActivity" android:label="Notification Details"> </activity> <activity android:name="org.androidpn.client.NotificationSettingsActivity" android:label="Notification Settings"> </activity> <service android:enabled="true" android:name="org.androidpn.client.NotificationService" android:label="NotificationService"> <intent-filter> <action android:name="org.androidpn.client.NotificationService" /> </intent-filter> </service> 7 ํ๋ก์ ํธ ์คํฌ๋ฆฐ์ท 7.1 ์๋ฒ (๊ด๋ฆฌ์ ์น ์ฝ์) ๏ฌ ํธ์ ํต๋ณด ์๋ฒ์ ๊ด๋ฆฌ์ ์ฝ์ ์ด๊ธฐํ๋ฉด์ด๋ค. โ 2010 Moduad 14
15.
์๋๋ก์ด๋ ํธ์ ํต๋ณด
์์คํ ํ๋ก์ ํธ ๊ฐ์ด๋ ๏ฌ ์๋ฒ์ ๋ฑ๋ก๋ ํด๋ผ์ด์ธํธ ์ฌ์ฉ์ ๋ชฉ๋ก์ด๋ค. ๏ฌ ํ์ฌ ์ ์๋ ํด๋ผ์ด์ธํธ ์ธ์ ๋ชฉ๋ก์ด๋ค. โ 2010 Moduad 15
16.
์๋๋ก์ด๋ ํธ์ ํต๋ณด
์์คํ ํ๋ก์ ํธ ๊ฐ์ด๋ ๏ฌ ๋ชจ๋ ํด๋ผ์ด์ธํธ์ ํธ์ ๋ฉ์์ง ๋ธ๋ก๋์บ์คํธ๋ฅผ ํ ์ ์๋ค. ๏ฌ Username์ ์ง์ ํ์ฌ ํน์ ํด๋ผ์ด์ธํธ์๋ง ํธ์ ๋ฉ์์ง ์ ์กํ ์ ์๋ค. โ 2010 Moduad 16
17.
์๋๋ก์ด๋ ํธ์ ํต๋ณด
์์คํ ํ๋ก์ ํธ ๊ฐ์ด๋ 7.2 ํด๋ผ์ด์ธํธ (์๋๋ก์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ) ๏ฌ Android 1.5 (Cupcake) ์๋ฎฌ๋ ์ดํฐ์์ ํธ์ ๋ฉ์์ง๋ฅผ ์์ํ ํ๋ฉด์ด๋ค. โ 2010 Moduad 17
18.
์๋๋ก์ด๋ ํธ์ ํต๋ณด
์์คํ ํ๋ก์ ํธ ๊ฐ์ด๋ ๏ฌ Android 2.1 (รclair) ์๋ฎฌ๋ ์ดํฐ์์ ํธ์ ๋ฉ์์ง๋ฅผ ์์ํ ํ๋ฉด์ด๋ค. ๏ฌ ๋ฐ๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ๋ ์ด๊ธฐํ๋ฉด ๋ฐ ๋ฉ์์ง ์์์ ์ํ Ticker ํ์ฑ ํ๋ฉด์ด๋ค. ๏ฌ ๋ฉ์์ง ์์ ๋ชฉ๋ก ํ๋ฉด ๋ฐ ์ด๋ฅผ ํฐ์นํ์ ๊ฒฝ์ฐ ์ ์ฒด ๋ฉ์์ง ์์ธ ๋ด์ฉ์ ๋ณผ ์ ์๋ค. โ 2010 Moduad 18
19.
์๋๋ก์ด๋ ํธ์ ํต๋ณด
์์คํ ํ๋ก์ ํธ ๊ฐ์ด๋ ๏ฌ ํธ์ ํต๋ณด ์ค์ ํ๋ฉด์์ ๋ฉ์์ง ์์์ฌ๋ถ ๋ฐ ์ฌ์ฒ๋, ์ง๋ ์ฌ๋ถ ์ค์ ํ ์ ์๋ค. ๏ฌ ์๋ฒ์์ URI ์ ๋ณด๋ฅผ ์ถ๊ฐ๋ก ์ ์กํ์ ๊ฒฝ์ฐ, ๋ฉ์์ง ๋ด์ฉ ํ์ธ ํ ํน์ ์นํ์ด์ง ๋ฐ ์ง๋ ์์น, ๊ฑธํ๊ฑธ๊ธฐ ๋ฑ์ ํ์ํ ์ ์๋ค. ์๋ ํ๋ฉด์ URI ์ ๋ณด์ http://www.dokdocorea.com, geo:37.24,131.86, tel:111-222-333 ๊ฐ์ ๊ฐ๊ฐ ์ ์กํ ๊ฒฝ์ฐ์ด๋ค. โ 2010 Moduad 19
20.
์๋๋ก์ด๋ ํธ์ ํต๋ณด
์์คํ ํ๋ก์ ํธ ๊ฐ์ด๋ 8 ์ฃผ์ ๊ด๋ จ ๊ธฐ์ 8.1 ํธ์ ํต๋ณด (Push Notification)๋? 8.1.1 ํธ์ ํต๋ณด๋? ๏ฌ ํธ์ ํต๋ณด๋ ๋จ๋ง ์์คํ ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋์ ์ค์ด์ง ์์ ์ํ์์๋ ์๋ฒ๋ก๋ถํฐ โPushโ๋๋ ๋ฉ์์ง๋ฅผ Listenํ์ฌ ์์ํ ์ ์๋ ๊ธฐ์ ์ด๋ค. ๏ฌ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฐ์ํ๋ ์ฃผ์ ๋ด์ค ๋ฐ ์ด๋ฒคํธ ๋ฑ์ ์ฌ์ฉ์์๊ฒ ์ ๋ฌํด ์ค ์ ์๋ ์๋จ์ด๋ค. ๏ฌ ์์์ ๋ง์ด ์๋นํ๋ ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ์ง์์ ์ธ Polling์ ํ๋ Pull ๊ธฐ์ ์ ๋นํด ํจ์จ์ ์ธ ๊ธฐ์ ์ด๋ค. 8.1.2 ๋ชจ๋ฐ์ผ ํธ์ ํต๋ณด ์๋น์ค ๋ชจ๋ฐ์ผ ํ๋ซํผ ์ ์ฒด ํํฉ BlackBerry RIM 2002๋ ๋ถํฐ Push Email ์๋น์ค๋ฅผ ์์์ผ๋ก ์์ฒด์ ์ผ๋ก ํธ์ ํต๋ณด ์๋น์ค๋ฅผ ์ง์ iPhone OS (iOS) Apple 2009๋ iPhone OS 3.0๋ถํฐ Apple Push Notification Service (APNS)๋ฅผ ์ง์ Android Google Android 2.2 (Froyo)๋ถํฐ Cloud To Device Messaging (C2DM)์ ํตํด ์ง์ ์์ Windows Phone 7 Microsoft Microsoft Push Notification Service (MPNS) ์ง์๊ณผ ํจ๊ป ์ถ์ ์์ โ 2010 Moduad 20
21.
์๋๋ก์ด๋ ํธ์ ํต๋ณด
์์คํ ํ๋ก์ ํธ ๊ฐ์ด๋ 8.2 Push vs. Pull ๋คํธ์ํฌ ์์ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ํต์ ๋ฐฉ์์์ ์์ฒญํ๋ ์ฃผ์ฒด๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ค์๊ณผ ๊ฐ์ด Push ์ Pull ๋ฐฉ์์ผ๋ก ๋๋ ์ ์๋ค. 8.2.1 Push Technology (Server Push) ๏ฌ ๋ฉ์์ง ์ ์ก ํธ๋์ญ์ ์ด ์๋ฒ์์ ์์๋์ด ํด๋ผ์ด์ธํธ๋ก ์ ์ก๋๋ ํต์ ๋ฐฉ์์ด๋ค. ๏ฌ XMPP, SMTP, HTTP Server Push (HTTP Streaming), Long Polling ๋ฑ 8.2.2 Pull Technology (Client Pull) ๏ฌ ํด๋ผ์ด์ธํธ์์ ๋ฐ์ดํฐ ์ ์ก ์์ฒญ์ด ์์๋์ด ์๋ฒ๋ก๋ถํฐ ์๋ต์ ๋ฐ๋ ํํ์ ํต์ ๋ฐฉ์์ด๋ค. ๏ฌ HTTP, POP3, IMAP, RSS Feeds ๋ฑ 8.3 XMPP (eXtensible Message and Presence Protocol) 8.3.1 XMPP๋? ๏ฌ ์ธํฐ๋ท ์์ ๋ ์ง์ ๊ฐ์ ํ์ฅ ๊ฐ๋ฅํ ๋ฉ์์ง์ ์ํ์ ๋ณด(Presence)๋ฅผ ์ค์๊ฐ์ผ๋ก ํต์ํ๊ธฐ ์ํ XML ๊ธฐ๋ฐ์ ์คํ ํ์ค ๊ธฐ์ ์ด๋ค. ๏ฌ 1999๋ Jabber ์คํ์์ค ์ปค๋ฎค๋ํฐ์ ์ํด ๊ฐ๋ฐ ๋์๊ณ , 2000๋ ~2004๋ ์ ๊ฑธ์ณ IETF์ ์ํด ํ์คํ ๋์๋ค. ๏ฌ XMPP Standard Foundation (XSF)์ ํ์คํ ์์ ์ ์ํด ์ง์์ ํ์ฅ๋๊ณ ์์ผ๋ฉฐ, XMPP Extension Protocols (XEP)๋ก ๋ณ๋๋ก ํ์ฅ ์คํ์ ๊ด๋ฆฌํ๊ณ ์๋ค. ๏ฌ http://xmpp.org/ ์ธ์ดํธ์์ ์ ๋ณด๋ฅผ ์ป์ ์ ์๋ค. 8.3.2 XMPP vs. HTTP XMPP ํ๋กํ ์ฝ์ Push ๊ธฐ์ ์ ํต์๋ฐฉ์์ผ๋ก ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๋ก๋ถํฐ์ ์ ๋ณด๋ฅผ ์ ๋ฐ์ดํธํ๊ณ ์ ํ ๋, HTTP ๊ธฐ๋ฐ์ Polling ๋ฐฉ์์ ๋นํด ํจ์ฌ ํด๋ผ์ด์ธํธ์ ์์ ์๋ชจ๊ฐ ์ ๊ณ ํจ์จ์ ์ด๋ค. โ 2010 Moduad 21
22.
์๋๋ก์ด๋ ํธ์ ํต๋ณด
์์คํ ํ๋ก์ ํธ ๊ฐ์ด๋ 8.3.3 XMPP๋ ๋คํฅํ ๋ถ์ผ์์ ์์ฉ๋๋ ํ๋กํ ์ฝ ๏ฌ Instant Messaging (IM) ๏ฌ Multi-User Chat ๏ฌ Voice and Video Conferencing ๏ฌ Real-time Collaboration ๏ฌ Social Networking ๏ฌ Microblogging ๏ฌ Lightweight Middleware ๏ฌ Content Syndication 8.4 ์๋๋ก์ด๋(Android) 8.4.1 ์๋๋ก์ด๋๋? ๏ฌ ์ฒ์์ฒด์ , ๋ฏธ๋ค์จ์ด ๋ฐ ํต์ฌ ์์ฉํ๋ก๊ทธ๋จ์ ํฌํจํ๋ ํด๋๊ธฐ๊ธฐ์ฉ ์ํํธ์จ์ด ์คํ ๏ฌ Google์ ์ํด ๊ฐ๋ฐ๋๊ณ ์คํ ์์คํ (2008๋ ) ๏ฌ Linux ์ปค๋ ๊ธฐ๋ฐ์ ์ฒ์์ฒด์ ๏ฌ Dalvik ๊ฐ์๋จธ์๊ณผ Java ์ธ์ด ๊ธฐ๋ฐ์ SDK ์ง์ ๏ฌ Android Market์ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ โ 2010 Moduad 22
23.
์๋๋ก์ด๋ ํธ์ ํต๋ณด
์์คํ ํ๋ก์ ํธ ๊ฐ์ด๋ 8.4.2 ์๋๋ก์ด๋๋ ์งํ ์ค ๏ฌ Cupcake(v1.5) ๏ Donut(v1.6) ๏ รclair(v2.0,v2.1) ๏ Froyo(v2.2) ๏ Gingerbread(3.0) ๏ฌ ํ์ฌ Andorid 2.2 (Froyo)๊น์ง ๋ฐํ๋์์ผ๋ฉฐ, ์ด OS ๋ฒ์ ๋ถํฐ C2DM(Cloud to Device Messaging) ๊ธฐ์ ์ด ์ ์ฉ๋์์ผ๋ฉฐ, ์กฐ๋ง๊ฐ ๊ตฌ๊ธ์์ ์ ์ ์๋น์ค ์์ ์ด๋ค. 9 ๊ฐ๋ฐ ํ๊ฒฝ ํ๋ก์ ํธ ๊ธฐ๋ณธ ๊ฐ๋ฐ ํ๊ฒฝ์ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๋ชจ๋ Java ์ธ์ด๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ JDK 5.0 ์ด์๊ณผ Eclipse (3.5 ๊ถ์ฅ)๋ฅผ ํ์๋ก ํ๋ค. ์์ธ ๊ฐ๋ฐ ํ๊ฒฝ์ ๋ค์๊ณผ ๊ฐ๋ค. 9.1 ์๋ฒ ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ๋ถ ์ค๋ช ์์คํ ํ๋ซํผ Linux ๋๋ Windows ํ๋ก๊ทธ๋๋ฐ ์ธ์ด Java (JDK 1.5 ์ด์) IDE Eclipse 3.5 ๋น๋ ๋๊ตฌ Ant 1.7.1, Maven 2.0 Database HSQLDB ๋๋ MySQL Servlet Container Jetty 6.1 J2EE ์คํ Servlet 2.4, JSP 2.0 ํต์ฌ ํ๋ ์์ํฌ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ Spring 2.5, MINA 2.0, Hibernate 3.3.1, SiteMesh 2.4 9.2 ํด๋ผ์ด์ธํธ ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ๋ถ ์ค๋ช ๋๋ฐ์ด์ค ๋จ๋ง๊ธฐ ์ผ์ฑ ๊ฐค๋ญ์S ๋ชจ๋ฐ์ผ ํ๋ซํผ Android SDK r07 ํ๋ก๊ทธ๋๋ฐ ์ธ์ด Java (JDK 1.5 ์ด์) IDE Eclipse 3.5 ๋น๋ ๋๊ตฌ Ant 1.7.1 ํต์ฌ ํ๋ ์์ํฌ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ Smack 3.1 10 ๋ฐ์ ๋ฐฉํฅ 10.1 ์ํํธ์จ์ด ํ์ง ํฅ์ ๏ฌ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ SSL/TSL ๋ณด์ ์ฑ๋ ์ ์ฉ์ผ๋ก ์์ฉํ ์๋น์ค๊ฐ ๊ฐ๋ฅํ ์์ค์ผ๋ก ํ์ง ํฅ์. (XMPP ํ๋กํ ์ฝ์์ ๊ถ์ฅํ๋ ๋ฐฉ์์ ์ฑํ). โ 2010 Moduad 23
24.
์๋๋ก์ด๋ ํธ์ ํต๋ณด
์์คํ ํ๋ก์ ํธ ๊ฐ์ด๋ ๏ฌ Wi-Fi, 3G, HSDPA ๋ง ๊ตฌ๋ถ๊ณผ ์์๋ก ๋ณํ ์ ๋ชจ๋ฐ์ผ ๋คํธ์ํฌ ํ๊ฒฝ์์ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ์ ์ฐ๊ฒฐ ์ง์์ฑ์ ์ํ ํ์ง ํฅ์ ๋ฐ ๋ค์ํ ํ๊ฒฝ์์ ํ ์คํธ. 10.2 ์๋ฒ ๋ฐ ํด๋ผ์ด์ธํธ ์์คํ ํ์ฅ ๏ฌ ์๋ฒ ์์คํ ์ ํ์ฅํ์ฌ ์ฌ๋ฌ ๊ฐ์ ์๋๋ก์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ค์ ๋์์ ์ง์ํ๋ ํ๋ซํผ ์๋น์ค์ ์์ฉ๋ ์ ์์. ์ฌ๋ฌ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์์ ์ง์ํ๊ธฐ ์ํ ๊ฐ๋ณ ์ ํ์ผ์ด์ ์ธ์ฆ๊ณผ ์ฌ๋ฌ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํฅ์ ํ์. ๏ฌ ํด๋ผ์ด์ธํธ๋ ์๋๋ก์ด๋ OS ์ด์ธ์ ํ ๋ชจ๋ฐ์ผ OS ์ ํ๋ฆฌ์ผ์ด์ ์ ์ง์์ ์ํด ํด๋ผ์ด์ธํธ ๋ชจ๋์ ํ์ฅํ ์ ์์. 10.3 ๋ค์ํ ๋ถ์ผ์ ์์ฉ ๏ฌ ๋ฉ์์ง ํ๋กํ ์ฝ ํ์ฅ์ ํตํด ์ด๋ฏธ์ง, ์ฌ์ฒ๋, ๋น๋์ค ๋ฑ ๋ฉํฐ๋ฏธ๋์ด ๋ฉ์์ง ์ ๋ฌํ๋ ๋ฑ ๋์ฑ๋ ์๋๊ฐ ์๋ ๋ด์ค ์ ๋ฌํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฉ๋ ์ ์์. ๏ฌ ์ฌ์ฉ์์ ์์น์ ๋ฐ๋ฅธ ์ง์ญ ๊ด๊ณ ๋ฉ์์ง๋ฅผ ์ ๋ฌํ๋ ์์น๊ธฐ๋ฐ ์๋น์ค(LBS, Location Based Service)๋ฅผ ์ ๊ณตํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด์ฉ๋ ์ ์์. ๏ฌ SMS(Short Message Service)๋ฅผ ๋์ํ๋ ๊ฐ์ ์๊ฐ ์ค์๊ฐ์ผ๋ก ๋จ๋ฌธ ๋ฉ์์ง ์ ๋ฌํ๋ ์๋น์ค ๋ฑ์ ์์ฉ๋ ์ ์์. 10.4 ์คํ์์ค ์ปค๋ฎค๋ํฐ ํ๋์ ๊ธฐ์ฌ ๏ฌ SourceForge, Google Code, KLDP ๋ฑ ๋ค์ํ ์คํ์์ค ์ปค๋ฎค๋ํฐ๋ฅผ ํตํด ๊ตญ๋ด์ธ ๋ค์ํ ๊ฐ๋ฐ์ ์ฐธ์ฌ ์ ๋ ๋ฐ ์ด๋ฅผ ํตํ ํ์ง ํฅ์. ๏ฌ ๊ตญ๋ด ๊ฐ๋ฐ์๋ค ๊ฐ๋ฐ์๋ค์๊ฒ ์คํ์์ค๋ฅผ ํตํ ๊ฐ๋ฐ์ ์ญ๋ ํฅ์์ ๊ฝคํ๊ณ , ๋ค์ํ ์๋๋ก์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฉ๋ ์ ์๋ ๊ธฐํ๋ฅผ ์ ๊ณต. โ 2010 Moduad 24
Baixar agora