Loading...

[GP] Android에서 MQTT를 사용하는 방법

이 글은 저의 Github Page의 내용 중 일부를 담아온 것입니다. 안녕하세요. 요즘 취업 시즌이 한창이다보니, 블로그에 글쓰는게 또 게을러지게 되었네요. ㅜㅜ 오늘은 지난 포스트에 이어서, 프로그래밍 코드를 이용한 MQTT 메시지 교환 - 안드로이드 편을 포스트하고자 합니다. 혹시 아직 MQTT에 대한 개념이나, Broker를 설치하지 않으신 분들은 아래 링크를 통해, 이전 글을 반드시 구독해주신 후, 이 포스트를 참조하시기 바랍니다. 아직 MQTT에 잘 모르신다구요? 아래 버튼을 클릭하셔서 자세히 알아보시기 바랍니다. MQTT에 대해 알아보기 Eclipse Paho MQTT 프로토콜을 사용해 메시지 교환을 하기 위해서는 MQTT 통신이 가능한 라이브러리가 필요합니다. 그 중에서도 저희는 Java와..

2017. 8. 2. 12:16

[GP] Android CustomView를 만들어보자

이 글은 저의 Github Page의 내용 중 일부를 담아온 것입니다. 벌써 8월이 시작됐네요. 올해 장마는 무척 길었던 것 같습니다. 오늘은 안드로이드의 CustomView를 제작하는 간단한 방법을 적어보고자 합니다. 저는 사실 디자인에 많이 약합니다. 제가 현재 맡고 있는 졸업 작품에서도 클라이언트로 안드로이드 앱 개발을 담당하고 있지만, 앱 디자인에 코드를 여러 번 뜯어고쳤습니다. 처음에는 그다지 디자인에 많이 신경도 쓰지 않았고, Android, android-support, material design에서 기본적으로 제공해주는 View, Widget을 가져다가 쓰는 것이 전부이고, 그 이상은 생각하지 않았습니다. 하지만 제가 보기에도 제가 만든 앱의 디자인이 정말 초라하게 느껴집니다. 앱의 품질..

2017. 6. 23. 17:40

[GP] Android, 다른 쓰레드에서 UI 처리를 하는 방법

이 글은 저의 Jekyll 블로그의 내용 중 일부를 담아온 것입니다. 오늘 포스트는 어제에 이어서, 쓰레드에 대한 이야기를 계속해보려 합니다. 아무래도 UI 프로그래밍에 대한 이야기다보니, UI 프로그래밍에 많이 유명하다고 생각되는 Windows 쪽의 이야기를 많이 섞어보자 합니다. 읽으실 때, 이해가 조금 안되시는 부분도 있을테니 참고하시기 바랍니다. UI 리소스를 Sub Thread에서 직접 사용할 경우. 안드로이드 앱에는 UI가 존재합니다. UI라고 하는 것은 사용자들이 터치하는 버튼, 텍스트 박스 등의 컴포넌트를 말하는데요. 주로 간단한 애플리케이션에서는 이 UI를 메인 쓰레드에서 처리합니다. 하지만 앱이 커지게 되면, 쓰레드가 생기게 될 수 있고, 해당 쓰레드에서 UI를 처리할 수도 있습니다. ..

[GP] Android AIDL 을 사용한 Activity 와 Service 통신

이 글은 저의 Github Page의 내용 중 일부를 담아온 것입니다. 안녕하세요. 처음으로 Android 포스트를 쓰게 되었네요. 안드로이드 포스트를 커리큘럼별로 포스팅을 해볼까 라는 생각도 했었지만, 커리큘럼에 대한 내용은 다른 블로그에서도 많이 찾아볼 수 있는 내용이고 또 어렵지 않은 내용이기에 커리큘럼이기 보다는 자주 사용하면서도 쉽게 이해하기 어려운 부분을 정리해보고자 처음 포스트를 AIDL로 삼게 되었습니다. AIDL ? AIDL은 Android Interface Definition Language의 약자로, 인터페이스를 정의한 언어입니다. 본래는 Android IDL은 Corba의 IDL 기능을 그대로 묘사한 것이며 RPC 통신할 때 많이 사용합니다. 우리가 이 포스트에서 다룰 주제도, Ac..

2017. 3. 16. 23:12

Raspberry PI 3 Model B를 써보다

라즈베리파이 시리즈를 가지고는 있었지만, 장롱에 모셔두기만 했지, 관심을 가지지 않은지 한 2년 쯤 된 듯하네요. 최근 라즈베리파이 3 Model B를 구하게 되어, 간단한 개봉기와 사용기를 올려보고자 합니다. Raspberry Pi 3 Model B 입니다. 기존에 제가 가지고 있던 Raspberry PI 1 Model B와 크기는 똑같으면서 더 높은 성능과 더 많은 포트를 지니고 있는 녀석입니다. (카메라가 없어서, 제 폰인 Galaxy S6로 촬여한 사진입니다. ) Raspberry PI Model B 1 vs 3 비교 많은 사이트와 블로그에도 성능에 대한 글은 많이 있지만 간단하게 비교 분석해보자면, 아래와 같이 비교할 수 있습니다. Raspberry PI 1 Model B Raspberry PI..

2016. 1. 2. 19:59

Google Cardboard 2.0 짤막한 후기

Google CardBoard 2.0 구글 카드보드 2.0이 공개된 것은 2년 전, Google 개발자 컨퍼런스인 Google I/O 2014에서 공개된 개발작품입니다. Google Cardboard 사실 VR 제품은 예전부터 관심이 있었지만, 삼성의 튼튼하고 비싼 VR 제품을 보면, 사실 가격 부담이 너무 커서 구입하기가 꺼려지는 것은 사실입니다. 그래서 Google Cardboard를 직접 조립도를 보며 만들어보려고 시도는 해봤으나, 생각보다 쉽지 않았습니다. ㅠㅠ 그래서, 만들어진 제품을 조금 값비싸게 구매해보았는데, 구글 카드보드2.0 으로 약 10,000원 정도 구매할 수 있었습니다. 심플하게 생긴 카드보드는 잘 조립되어 이렇게 잘 내장되어 있습니다. 역시 처음에는 꺼내는 데, 주의가 필요합니다..

2015. 11. 8. 23:41

Android Studio 외부 라이브러리 추가하기

Android Studio를 사용한지 한 1주일 가량 쯤 된 것 같다. Eclipse와 친화적이어서 사용하는 데 큰 불편함은 없었지만 Android Studio에서 제공해주는 방법을 사용한 외부 라이브러리 추가하는 방법을 여기에 쓰고자 한다. 프로젝트 탐색기에 왼쪽 상단에서 정렬 방식을 Projects 방식으로 설정합니다. app 폴더에 libs 디렉토리 안에 jar 파일 등의 라이브러리를 넣어줍니다.그리고, 해당 jar 파일을 오른쪽 클릭하여 'Add As Library' 버튼을 클릭해줍니다. 모두 마치셨으면 [File] - [Project Structure] 로 이동합니다. Dependencies 탭에서 자신이 원하는 jar 파일이 추가가 되었으면 성공입니다. 마지막으로 자신이 해당하는 포로젝트의 B..

2015. 9. 13. 17:53

XMPP 프로토콜과 통합 메신저로 행아웃 연동하기

XMPP XMPP를 사용하는 대표적인 메신저 서비스는 행아웃이 아니고도 한 개가 더 있는데, 그것이 바로 Facebook Chat service 이다. 여러분들이 Facebook 홈페이지에서 혹은 Messages 앱을 사용하여 Facebook의 친구들과 채팅을 주고 받는 프로토콜 서비스 또한 이 XMPP로 이루어져 있다. 1999년에 개발되어 Jabber라는 이름을 갖고 있었으나 현재는 XMPP라는 이름을 사용하고 있고, 보안성과 플랫폼이 개방되어 있는 오픈 소스여서 현재 채팅 프로토콜 중에 가장 인기 있는 프로토콜 중에 하나다. XMPP의 장점 그렇다면 XMPP가 이토록 인기리가 있는 가장 대표적인 메신저가 사용하는 이유는 무엇일까? 1. 분산 처리 바로 첫 번째가 분산 처리이다. 분산 처리라는 것은 ..

2013. 11. 24. 14:58

Rasberry PI KANO

우연히 라즈베리파이의 문서를 검색하던 중 발견한 KANO입니다. What is KANO? KANO는 라즈베리파이 기반으로 사용할 수 있게 만들어진 한 세트 도구입니다. 링크에 들어가보면 내부 구성품으로 라즈베리파이 모델 B를 포함해 세트로 판매하고 있는데요. 기본으로는 모델 B를 구성하고 있으나 모델 A 제품도 사용이 가능해보입니다. 구성품은 위에 보시는 것처럼 키보드(터치패드 포함인 듯하네요) 등 각종 케이블과 라즈베리파이 본체가 있네요. 가장 탐이 나는건 키보드랑 스피커입니다만 나머지 구성품으로만 본다면 거의 교육용으로 만든 목적이라고 봐도 이상하지 않을 것 같네요. 가격은 $99로 저렴합니다. 제가 라즈베리파이 모델 B와 알루미늄 케이스를 포함하여 SD 카드, 방열판만 포함해도 \98,000이 들었..

2013. 11. 12. 23:08

초소형 PC, 라즈베리파이와 끄적끄적댔던 부질없는 이야기

여태 제대로 써먹어보지 못한 라즈베리파이를 두고 끄적끄적 대는 저의 블로그를 조금 쉬어보려고 합니다. 혹시 라즈베리파이라는 것을 알고 계신가요? 아마 컴퓨터 전공이신 학생 여러분께서는 '아두이노' 라는 것을 접해봤을 것입니다. 라즈베리파이는 바로 이 '아두이노'와 비슷한 초소형 하드웨어 중 하나 입니다. 제가 가지고 있는 라즈베리파이의 성능은 다음과 같습니다(라즈베리파이 모델 B) CPU ARMv6 700MHz Processor RAM 512MB (Shared GPU) GPU Broadcom VideoCore IV 모델, OpenGL ES 2.0 지원 H.264 지원 1080P 출력 지원 Ethernet 10/100Mbps 지원 RJ45 Other Audio 3.5잭, HDMI, NTSC, PAL 전원 ..

2013. 9. 14. 11:48

Android의 SELinux, SEAndroid

한 번 쯤 리눅스로 서버를 운영해본 분들이시라면, SELinux라는 것을 알고 계실 것입니다. 어떤 분에게는 골칫덩어리, 어떤 분에게는 아주 좋은 물건이기도 하지요. SELinux는 리눅스에서 최대 보안을 유지하기 위한 수단 중 하나라고 보셔도 무방합니다. 최근에는 안드로이드에 이 SELinux를 기반으로 개발된 SEAndroid가 점점 눈에 띄기 시작하고 있습니다. 이번에 나온 Android 4.3 또한 SEAndroid에 한 걸음 다가가는 추세로 보입니다. 설정 화면에는 SELinux 상태가 기본으로 내장되어 있고, 이 상태는 SEAndroid의 유무와 관련이 있어 보입니다. 본래 SEAndroid는 Android 4.2부터 계획 중이었으며 아직 완벽하지 않았으나 4.3에서 완벽하게 지원되는 것으로 ..

2013. 9. 11. 11:25

내가 다운로드 받는 앱은 악성 앱일까? 아닐까? (Sandbox)

요즘 들어 부쩍 안드로이드를 겨냥한 악성 앱들이 갈수록 늘고 있습니다. 필자는 최근 이틀 전 악성 앱을 포함한 문자를 두 건 이상 발견하였으며 그 중 한 문자가 제가 아는 사람에게 날라와 뿌려지고, 설치한 사용자들은 주소록이 몽땅 공격자에게 넘어가거나 해당 휴대폰이 공격자에 의해 ATO처럼 움직이는 현상이 발생하는 등 파장되었습니다. 물론 이런 apk 확장자로 온 문자 만으로도 악성 앱으로 오는 경우가 대부분이기 때문에, 다들 그렇게 인식하는 사람이 대부분입니다만 정말로 자기가 다운로드 받는 앱이 악성 앱인지 확인할 필요가 있다면, 아래처럼 확인하는 것을 추천드립니다. 위 앱은 최근 문자로 온 은행 앱을 위장한 악성 앱으로 앱을 설치하기 이전, 경고문을 나타내는 문구들입니다. 이 문구 하나만 읽어봐도, ..

2013. 8. 10. 12:21

Android Device Manager - 안드로이드 기기 위치 찾기

Google latitude를 통한 Google Maps를 이용해 위치 공유/추적 서비스는 2013년 08월 09일 Google에서 서비스가 중지 되었습니다. 이에 구글은 새로운 위치 추적 서비스인 안드로이드 기기 매니저라는 서비스를 정식 서비스화하고, 이는 국내에서도 서비스가 가능하니 굳이 언어를 바꾸지 않아도 위치를 찾을 수 있다는 장점이 있습니다. Android 기기 관리자 접속 Android 기기 관리자에 접속하셔서 로그인을 하시게 되면 자신의 안드로이드폰에 등록/동기화 된 구글 계정과 연동이 되어 자신의 디바이스를 표시합니다. 여러 개의 디바이스에 등록이 되어 있다면 복수 개의 디바이스를 목록으로 표시해줍니다. 기기를 연결 하는데는 짧게는 10초, 길게는 그 이상 소요됩니다. 이 서비스는 위치를..

2013. 8. 7. 22:46

안드로이드에서 SIP 계정을 사용하여 통화하기 (진저브레드 이상, 순정)

혹시 SIP 통화 서비스 라는 것을 들어보셨나요? 국내에서는 많이 알려져 있지 않지만 해외에서는 많이 알려져 있는 서비스입니다. SIP 통화 서비스는 일명 인터넷 전화로 기지국의 망이 아닌 Wi-Fi나 3G 네트워크를 통해서 사용하는 인터넷 전화 서비스 입니다. 우리가 좀 더 가까이 알고 있는 VoIP랑 같은 서비스라고 보시면 됩니다. 대표적인 것으로 Skype, 카카오톡의 보이스톡 기능이 VoIP를 사용합니다. 그런데, 혹시 자체 서버를 구축해서 사내의 서버에 접속해 사용하고자 한다면 서버의 이름과 포트번호, 그 서버에서 사용하는 계정과 패스워드로 접속을 해야겠지요? 안드로이드에는 별도로 앱을 설치할 필요 없이 기본으로 들어가 있는 전화 앱에서 바로 이 기능을 사용할 수 있답니다. 먼저 전화 앱에 들어..

2013. 8. 4. 15:31

Google latitude - 구글 위치 찾기 서비스

Google latitude의 서비스가 2013년 8월 9일 종료되었습니다. 대체 서비스(Android Device Manager) 알아보기 Google latitude는 사용자의 휴대폰 위치를 열람하거나 기록할 수 있는 서비스로, 분실폰 등 자신의 휴대폰의 위치를 확인할 수 있는 기능의 프로그램입니다. Google latitude 서비스는 Google Maps 앱을 이용하여 사용자의 휴대폰 위치를 실시간으로 추적하는 서비스로, 현재 국내에서는 사용할 수 없는 기능으로 알려져 있습니다. 하지만 사용할 수 없는 것은 아닙니다. 단 한가지, 바로 해당 폰의 언어를 바꾸는 것인데요. 혹시 영어를 사용 중이시라면, 알고 계신 분들도 많으실 것입니다. Google latitude는 휴대폰의 위치를 GPS 혹은 W..

2013. 8. 1. 11:48

Eclipse와 Genymotion을 사용한 Android 개발 환경 구축하기

Eclipse로 Android 개발 환경을 구축해보신 분들은 한 번 쯤은 AVD라는 것을 사용해봤을 것입니다. 오래 전부터 필자는 AVD가 너무 느리고 안정화가 되지 않은 듯하여 안드로이드 개발을 꺼려했지만 Windows 환경에서는 ADT의 추가 플러그인인 Intel x86 Accelator를 설치하면 조금 완화된 환경을 제공받는다고 얘기를 들은 바 있습니다. 하지만 필자가 사용하는 OS는 Ubuntu Linux이며 아직 Ubuntu에서는 이를 지원하지 않는 것으로 보입니다. 그렇다고 최신 환경을 제공해달라는 것도 아닙니다. AVD는 Android의 새 버전이 나올 때마다 바로바로 SDK가 나오지요. 그래서 저는 안드로이드 개발/디버깅을 해야한다고 한다면, 제가 쓰는 안드로이드폰으로 디버깅을 했습니다. ..

2013. 6. 3. 18:45

안드로이드 4.2.2 이상에서 개발자 옵션 활성화하기

오늘은 아주 간단한걸 해보고자 합니다. 저는 작년까지만해도 SHW-M250SW 갤럭시S2를 썼었는데, 몇 개월 전에 아버지께 물려드렸습니다. 그래서 현재 제가 사용하고 있는 폰은 오래 전 최고의 전설을 자랑한 HTC HD2를 사용하고 있습니다. HD2를 젤리빈 4.2.2로 올리다보니 GPU 드라이버가 제공되지 않아서인지 몰라도, 화면 전환이 자꾸 버벅거리는 현상이 있어 개발자 옵션을 찾아보니 어디에도 없는 것입니다. 알고보니 또 Google에서 Easteregg로 개발자 옵션을 바꿔놨더군요 ㄱ-;; 진저브레드 2.3 때, 숨겨진 로고로도 괜찮았는데, 개발자 옵션까지 Easteregg화 할줄은 생각을 못했네요...;; 어쨌든 4.2.2에서 개발자 옵션 활성화 하는 방법을 써보겠습니다. 먼저 시스템 설정에 ..

2013. 4. 16. 21:07

Google Glass의 모든 것!

구글의 스마트 안경 Google Glass.Google Glass는 작년 4월, Google I/O 2012에서 시연되었던 것이었습니다. 당시 봤을 때는 이 제품이 과연 실현이 될 수 있을까 했는데, 오늘은 신기하고 놀라운 장난감이 될지 모를 Google Glass에 대해서 써보도록 하겠습니다. 먼저 작년에 공개된 Google Glass Teaser 영상부터 보도록 하지요. 이 영상을 처음봤을 때는 전혀 신기해보이지 않았습니다. 그런데, 상상을 하면서 보면 새로운 세상을 볼 수 있을 것 같았는데요. 아는 사람이 봤을 때는 그저 기존의 기술을 이용한 제품일 것 같을지도 모르지만, 일반인들이 본다면, 감탄을 할지도 모르겠네요. ㅎㅎ Google I/O 2012에서 구글 창업자 '세르게이 브린' CEO가 시연..