예제 23

파이어베이스 애널러틱스를 이용한 모바일 데이타 분석 #1-Hello Firebase

파이어베이스 애널러틱스를 이용한 모바일 데이타 분석 #1-Hello Firebase조대협 (http://bcho.tistory.com) 얼마전에 구글은 모바일 백앤드 플랫폼인 파이어베이스를 인수하고 이를 서비스로 공개하였다.파이어 베이스는 모바일 백앤드의 종합 솔루션으로, 크래쉬 리포팅, 리모트 컨피그를 이용한 A/B 테스팅 플랫폼, 클라우드와 자동 동기화가 가능한 리얼타임 데이타 베이스, 사용자 인증 기능, 강력한 푸쉬 플랫폼 다양한 모바일 기기에 대해서 테스트를 해볼 수 있는 테스트랩 등, 모바일 앱 개발에 필요한 모든 서비스를 제공해주는 종합 패키지와 같은 플랫폼이라고 보면 된다. 안드로이드 뿐만 아니라 iOS까지 지원하여 모든 모바일 앱 개발에 공통적으로 사용할 수 있다. 그중에서 파이어베이스 애..

세번째 책이 나왔습니다.

빠르게 훑어보는 구글 클라우드 플랫폼 오늘 세번째 책이 나왔습니다. 이번에 출간된 책은 구글 클라우드에 대해서 간략한 사용 방법을 소개한 "빠르게 훑어보는 구글 클라우드 플랫폼" 이라는 책입니다.구글에 입사한지도 이제 3개월이 막 지났는데, 막상 사람들 이야기를 들어보니, 한글 자료가 없고, 기초적인 (SSH설정)에서 부터 막히는 분들이 많아서, 구글 한국 사용자 그룹분들과 함께 간략한 소개 서적을 만들었습니다. 한빛 미디어에서 보정 및 조판 작업을 도와주셨구요. (엔지니어 출신이신 이복연님이 꼼꼼하게 봐주신 덕분에 원고 품질이 많이 올라갔습니다.) 이책은 정보 공유 차원에서 무료 EBOOK 형태로 배포됩니다.http://www.hanbit.co.kr/realtime/books/book_view.html..

사는 이야기 2016.08.29

빠르게 훝어 보는 node.js - redis 사용하기

node.js에서 Redis 사용하기 조대협 (http://bcho.tistory.com) Redis는 NoSQL 데이타 베이스의 한 종류로, mongoDB 처럼 전체 데이타를 영구히 저장하기 보다는 캐쉬처럼 휘발성이나 임시성 데이타를 저장하는데 많이 사용된다. 디스크에 데이타를 주기적으로 저장하기는 하지만, 이 기능은 백업이나 복구용으로 주로 사용할뿐 데이타는 모두 메모리에 저장되기 때문에, 빠른 접근 속도를 자랑한다. 이 이유 때문에 근래에는 memcached 다음의 캐쉬 솔루션으로 널리 사용되고 있는데, 간단하게 키-밸류 (Key-Value)형태의 데이타 저장뿐만 아니라, 다양한 데이타 타입을 지원하기 때문에 응용도가 높고, node.js 호환 모듈이 잘 지원되서 node.js와 궁합이 좋다. 여러..

빠르게 훝어 보는 node.js - promise를 이용한 node.js에서 콜백헬의 처리

Promise를 이용한 node.js에서 콜백헬의 처리 조대협 (http://bcho.tistory.com) 앞의 글(http://bcho.tistory.com/1083) 에서 async 프레임웍을 이용한 콜백헬을 처리 하는 방법에 대해서 알아보았다.async 프레임웍 이외에, 콜백헬을 해결할 수 있는 프레임웍으로 promise가 있다.Promise는 원래 콜백헬을 해결하기 위한 프레임웍이 아니라, 프로그래밍 패턴중의 하나로 지연 응답을 통해서 동시성을 제어 하기 위한 목적으로 만들어졌다. 자바스크립트에서는 Jquery의 Deferred나, CommonJS에 구현되어 있고, ECMAScript5 표준에 포함되서 크롬,파이어폭스,인터넷익스플로러 9 버전등에 포함되어 있다.구현체가 많아서 설치해야 한다. n..

빠르게 훝어 보는 node.js - monk 모듈을 이용한 mongoDB 연결

monk 모듈을 이용한 mongoDB 연결 조대협 (http://bcho.tistory.com) mongoDB 기반의 개발을 하기 위해서 mongoDB를 설치한다. https://www.mongodb.org/ 에서 OS에 맞는 설치 파일을 다운로드 받아서 설치한다.설치가 된 디렉토리에 들어가서 설치디렉토리 아래 ‘./data’ 라는 디렉토리를 만든다. 이 디렉토리는 mongoDB의 데이타가 저장될 디렉토리이다. mongoDB를 구동해보자. % ./bin/mongod --dbpath ./data Figure 1 mongoDB 구동화면 구동이 끝났으면 mongoDB에 접속할 클라이언트가 필요하다. DB에 접속해서 데이타를 보고 쿼리를 수행할 수 있는 클라이언트가 필요한데, 여러 도구가 있지만 많이 사용되는 ..

안드로이드 채팅 UI 만들기 #2 - 나인패치 이미지를 이용한 채팅 버블

안드로이드 채팅 UI 만들기 #2 나인패치 이미지를 이용한 채팅 버블 조대협 (http://bcho.tistory.com) 지난 글에서는 ListView를 이용하여 스크롤이 가능한 텍스트 기반의 간단한 채팅창을 만들어보았다.이번글에는 채팅 메세지에 이미지로 채팅 버블을 입히는 방법을 알아보도록 한다. 채팅 버블 이미지를 입히는 방법이나 원리는 간단한데, 채팅 메세지를 출력하는 TextView에 백그라운드이미지를 입혀서 출력하면 된다. 그런데 여기서 문제가 생기는데, 채팅 메세지 버블의 크기는 메세지의 글자수에 따라 가변적으로 변경되기 때문에, 일반적인 이미지를 백그라운드로 넣어서 가로로 늘이거나 줄이게 되면 채팅창이 이상하게 가로로 늘어날 수 가 있다.. (아래 그림에서 가로로 늘렸을때 말꼬리 부분 삼각..

안드로이드 웹뷰(Webview)의 이해와 성능 최적화 방안

간단한 웹뷰 컴포넌트의 이해와 최적화조대협(http://bcho.tistory.com) 들어가기에 앞서서 이글은 안드로이드 프로그래밍 개발을 공부하면서 공부한 내용을 정리한 글입니다. 제가 아직 안드로이드에는 전문성이 없는 초보자 수준이기 때문에, 수준이 높지 않으니, 내용을 참고만 하시기를 바라며, 더 나은 프로그래밍 방법등이 있음을 미리 알려드립니다. Webview(웹뷰) 컴포넌트에 대해서 웹뷰는 안드로이드 프레임웍에 내장된 웹 브라우져 컴포넌트로 뷰(View)형태로 앱에 임베딩이 가능하다. 비교해서 생각하자면, 안드로이드 앱안에, HTML iframe을 넣어놓은 것이라고나 할까?단순하게, 웹 페이지를 보기위해도 사용하지만, 안드로이드 앱 안에서 HTML을 호출하여 앱을 구현하는 하이브리드 형태의 앱..

안드로이드에서 REST API 호출하기

REST API를 이용하여, 날씨를 조회하는 간단한 애플리케이션 만들기 조대협 (http://bcho.tistor 네트워크를 통한 REST API 호출 방법을 알아보기 위해서, 간단하게, 위도와 경도를 이용하여 온도를 조회해오는 간단한 애플리케이션을 만들어보자이 애플리케이션은 경도와 위도를 EditText 뷰를 통해서 입력 받아서 GETWEATHER라는 버튼을 누르면 네트워크를 통하여 REST API를 호출 하여, 날씨 정보를 받아오고, 해당 위치의 온도(화씨) 출력해주는 애플리케이션이다. 날씨 API 는 http://www.openweathermap.org/ 에서 제공하는데, 사용법이 매우 간단하고, 별도의 API인증 절차가 필요하지 않기 때문에 쉽게 사용할 수 있다. 사용 방법은 다음과 같이 쿼리 스..

하이버네이트 쉽게 입문하기 (기초)-환경설정,입력조회 개발

하이버네이트 입문하기 (기초 #1) MyBatis만 사용하다가 근래에 들어서 Hibernate를 봐야하는 일이 생겨서, 늙은 나이에, Hibernate를 처음부터 보고 있다. 한국에서는 거의 MyBatis가 대세를 이루지만 해외의 경우 높은 생산성등을 이유로 Hibernate가 거의 대세를 이룬다. 그러나, 한국에서 안사용하는 이유 처럼, Hibernate는 자체적으로 쿼리를 생성하고, OR Mapper로써, 객체들을 DB에서 로딩할때, 레퍼런스된 객체등을 로딩하는등, 제대로 특성을 이해하고 사용하지 않으면 장애를 일으키는 경우가 많지 않기 때문에, 해외에 비해서 한국에서는 많이 사용되지 않는다. (SI에서 기피) 이글에서는 하이버네이트에 대한 간단한 사용법에 대해서 소개하고자 한다. 하이버네이트는 자바..

빠르게 훝어 보는 node.js - #12 Socket.IO 4/4 - 채팅방 기능 추가하기

빠르게 훝어보는 node.js#12 - Socket.IO (4/4)조대협 (http://bcho.tistory.com) 채팅 프로그램에 방(room/그룹)의 기능을 추가하기다음은 앞에서 만든 1:1 귓속말이 가능한 채팅에 “채팅방” 기능을 추가한 버전이다. var express = require('express'); var routes = require('./routes'); var http = require('http'); var path = require('path'); var app = express(); app.use(express.bodyParser()); app.use(express.cookieParser('your secret here')); app.use(express.session());..