최신 Android Studio, Google Cloud Messaging 3.0(GCM)을 이용하여 Android 푸시 서비스 구현하기
서론
블로그에서 가장 많이 검색되는 글이 Node.js와 Google Play Service를 이용하여 안드로이드 푸시서비스 구현하기(GCM) 이다. 이 글은 2014년 1월에 작성한 글로 그동안 Google Cloud Messaging 서비스는 진화를 하여 더욱 편리하고 다르게 개발이 되고 있다. 오늘은 새롭게 바뀐 GCM 서비스를 개발하는 방법을 소개한다.
Android는 eclipse에서 Android Studio로 IDE를 바꾸었고, Ant 기반 빌드 방식을 Gradle로 변경하였다. 이에 따라 기존의 문서들을 참조해서 개발할때 혼란스러운 부분들이 있고 아직 이것을 반영한 자료들이 그렇게 많지 않기 때문에 이 글을 통해서 안드로이드 GCM 서비스를 개발하는데 도움이 되길 바란다.
Continue ReadingTistory에서 Jekyll을 이용하여 GitHub Pages로 블로그 이전
생일을 맞이하여 블로그를 새롭게 개편했다.
2012년 이전 글을 제외한 나머지 글들을 모두 Markdown 으로 포팅했다.
왜?
이번 포스팅에서는 기존의 블로그에서 Github Pages로 블로그를 이전한 이유에 대해서 이야기를 나눈다.
Continue Reading모바일 앱 안에서 변화하는 외부 URL 문제를 NginX의 rewrite로 해결하기
서론
모바일 앱을 개발하면 외부 링크를 사용하여 터치를 하였을 때 모바일 브라우저로 링크를 열게 하는 코드를 작성할 수 있다. 때로는 외부 링크가 http 스키마가 아닌 어플리케이션을 열기 위한 스키마가 될 수 도 있다. 인터넷에서 URL은 URI의 서브셋으로 고유의 리소스 아이덴티티를 가지는 것임에도 불구하고 상황에 따라 URL이 사라지거나 변경될 수 있다. 예를 들면, http://blog.saltfactory.net 이었던 URL이 서비스 변경으로 http://weblog.saltfactory.net 으로 변경될 수 있다는 것이다. 또는 서비스가 종료되어 더이상 존재하지 않는 URL이 되는 경우도 있다. 이런 문제를 해결하기 위해서 링크를 관리하는 방법이 필요했고 NginX를 사용하여 이 문제를 해결하는 방법을 소개한다.
Continue Reading개발용 PC와 운영체제 인코딩 설정 따른 톰캣 WAR 파일 한글 문제 해결
서론
Java를 이용하여 웹 프로젝트를 진행하면서 한번쯤은 캐릭터 문제를 겪게 된다. 이것은 프로그램을 작성할 때 한글(EUC_KR)을 함께 사용하기 때문이다. 내 PC에서 개발할 때는 문제가 없는데 특정 서버에 Deploy를 시키면 파일 안에 한글 주석이 이상한 문자열로 깨어지거나 HTTP 요청을 할 때 한글이 제대로 표현되지 않는 문제 등을 만날 수 있다. 이번 포스팅은 Java 프로그램을 작성해서 Tomcat 서버에 Deploy를 시키고 난 이후 war 파일이 풀렸을 때 war 안에 들어 있던 파일 속의 한글이 깨어지는 문제를 해결하는 방법을 소개한다.
Continue ReadingUbuntu에 Oracle XE 설치하기
서론
기존의 Redhat 계열의 리눅스 서버 운영체제를 Ubuntu 서버로 운영하기 위해서 여러가지 서비스를 새롭게 설치해야한다. 최근의 오픈소스 프로젝트로 만들어지는 패키지들은 특정 운영체제와 상관없이 대부분의 운영체제의 기본 패키지로 포함이 되어 있거나 새롭게 컴파일해서 설치할 수 있도록 배포하고 있다. Oracle은 오픈소스 프로젝트가 아니다. Oracle Express Edition으로 무료 소프트웨어를 배포하고 있지만 리눅스 환경에서 RPM 패키지 관리툴로 설치할 수 있도록 배포하고 있다. 기존의 Redhat 계열 리눅스 서버에서는 RPM으로 설치가 가능했지만 Ubuntu 서버로 변경하면서 Oracle XE를 설치하는 메뉴얼이 필요해 서 Oracle XE를 Ubuntu에 설치하는 방법에 대해서 소개한다. 설치하는 과정 중에 리눅스 커널 파라미터 설정과 공유메모리 설정 부분을 주의하지 않아 오류는 없지만 설치후 Oracle이 동작하지 않는 문제를 발견했었다. 이 문서에서 이와 같은 문제를 겪을 때 해결할 수 있는 방법을 소개한다.
Continue Reading