안드로이드 스튜디오로 개발하는데 있어 기존 방식과 약간 다른 부분이 있어 해당 부분들을 정리해 보려고 한다. 앱 버전 및 SDK 버전 설정 예전에는 어플 버전을 설정하기 위해 manifest.xml 파일에 versionCode와 versionName을 지정하면 되었다. 또한 지원하는 안드로이드 버전을 설정하기 위해서는 use-sdk 태그에 minSdkVersion과 targetSdkVersion을 지정했다. 그러나 안드로이드 스튜디오에서 생성한 프로젝트는 아무리 manifest.xml을 수정해도 적용되지 않는다. 그 이유는 바로 Gradle Script가 우선 적용되기 때문이다. 위 그림에서 build.gradle이란 파일을 열어 보면 앱 버전이나 SDK 버전을 설정할 수 있는 스크립트가 있다. 바로 이..
자바 URL과 URLConnection 클래스 자바에는 java.net.URL 클래스를 통해 URL 주소를 인식할 수 있으며, 프로토콜, 도메인, 포트, 경로 등을 지정할 수 있다. URLConnection을 통해 자바에서 웹페이지에 접속하기 위해서는 URL 주소를 java.net.URL 클래스로 변경할 필요가 있다. 다음 두 가지 방법으로 URL 클래스를 생성할 수 있는데, 일반적으로 문자열을 받아서 처리하는 2번째 방법을 많이 사용한다. URL url = new URL("http", "blog.acronym.co.kr", 80, "537"); URL url = new URL("http://blog.acronym.co.kr/537"); 해당 URL에서 페이지 정보를 가져오기 위해서 다음과 같이 URLC..
최근 핫이슈들을 살펴보기 위해서 네이버, 다음의 실시간 검색어를 자주 살펴본다. 모바일에서도 포탈 사이트에 접속하지 않고 바로바로 확인하기 위한 앱들을 살펴봤는데대부분 텍스트 위주의 순위라 결국 다시 포털 사이트에 접속해서 무슨일인지 확인 해야 하는 아쉬움이 있었다. 이미지로 한번에 살펴보면 더 낫지 않을까?그리고 궁금하면 포털 사이트로 들어가면 될 것이고.. 그래서 '실시간 검색' 앱을 만들어봤다. 실시간 검색어와 이미지는 매 1분마다 업데이트하도록 구성했다. 네이버와 다음의 실시간 검색어를 아래처럼 이미지로 확인할 수 있다. 안드로이드 사용자는 구글 플레이를 통해 다음 링크를 눌러서 다운로드하면 된다. https://play.google.com/store/apps/details?id=kr.co.acr..
안드로이드에서 웹서버로 통신할 때 주로 사용하는 포맷이 JSON이다. 웹에 접속해서 데이터를 가져오는 방식은 안드로이드 네트워크 연결하기 (Network On Main Thread Exception 처리) 을 참고하기 바란다. 이렇게 가져온 데이터가 JSON 타입일 경우, 안드로이드에서 이를 처리해서 배열에 저장해 보자. 웹에서 가져온 데이터를 JSONArray로 변환하고, For문을 중첩해서 돌리면서 각 항목의 값을 가져오는 것이다. 그리고 String[][] 2차원 배열에 가져온 값을 저장하는 형태로 매우 간단하다. 소스를 한번 살펴보자. try { JSONArray jArray = new JSONArray(result); String[] jsonName = {"name","age","exam"}; ..
안드로이드에서 네트워크 연결하기 위해 자바에서처럼 코딩하면 십중팔구는 다음과 같은 오류 메시지를 만난다. android.os.NetworkOnMainThreadException 메시지를 살펴보면 Main Thread에서 네트워크를 호출하면서 발생한 오류라고 나온다. 즉, 안드로이드에서 Main Thread에서는 네트워크 연결을 하지 못하도록 한 것이다. 아마도 안드로이드 앱에서 네트워크 호출하면서 에러가 발생한 것을 사용자들이 안드로이드의 오류로 인식하기 때문에 그런 듯 하다. AsyncTask 쓰레드 클래스 이해 그럼 안드로이드에서는 어떻게 네트워크에 연결할 수 있을까? AsyncTask라는 쓰레드 클래스를 상속받아 네트워크 연결하는 부분을 만들면 된다. AsyncTask는 상속시 3개의 Generic..
PHP4등 하위버전에서 JSON을 사용하는 방법에 대해서는 PHP4에서 JSON 설치하기 에서 살펴봤다. 이번에는 실제 DB의 내용을 가져와서 JSON 파일을 만드는 방법을 정리해 본다. JSON은 HTML에서 Ajax로 통신하거나 안드로이드, 아이폰과 같은 모바일과 통신하기 위해서 주로 사용한다. 많이 사용하는 형태인 DB의 데이터를 가져와서 JSON으로 출력하는 부분을 정리해 보자. 데이터와 JSON 출력형태 사용할 DB 데이터는 다음과 같다. 예제를 보여주기 위해 임시로 만든 테이블이다. 이 데이터를 가져와서 출력할 JSON 타입의 문자열은 다음과 같다. 데이터를 묶는 것을 보여주기 위해서 middle_exam과 final_exam을 하나로 합쳤다. [ {"name":"mini","age":18,"..
PHP에서 JSON 타입의 메시지를 만들려면 json_encode(), json_decode() 함수를 사용하면 된다. 그러나 이 메소드는 PHP 5.2부터 지원하기 때문에 PHP5.1 이하에서는 사용할 수 없는 문제가 있다. PHP4에서 이 함수를 호출하면 다음과 같은 오류 메시지가 나온다. call to undefined function: json_encode() 서버 호스팅과 같이 직접 서버를 보유하고 있다면 버전업으로 간단히 해결할 수 있겠지만 과거부터 웹 호스팅을 쓰고 있었다면, 더욱이 아쉬운 부분일 수밖에 없다. PHP4에서 JSON 설치 어차피 PHP에서도 내장함수로 만들어서 배포한 것이기 때문에 json_encode(), json_decode() 함수를 직접 구현하면 될 것이다. 하지만, ..
이전에 MAC에서 Apache 실행하기를 살펴봤다. 이제 Apache에 PHP를 연동하는 것을 적용해보자. MAC에는 Apache와 PHP가 이미 설치되어 있기 때문에 별도의 설치과정 없이 설정만 하면 된다. PHP 활성화 PHP를 활성화하기 위해서 apache 설정파일인 httpd.conf를 수정하면 된다. 먼저 httpd.conf 파일이 있는 곳으로 이동하고, 관리자 권한으로 해당 파일을 수정하면 된다. # cd /etc/apache2 # sudo vi httpd.conf Vi 편집기에서 "/php5" 검색으로 php5가 있는 곳으로 이동한다. LoadModule php5_module libexec/apache2/libphp5.so 부분이 '#'으로 주석 처리 되어 있는 것을 확인할 수 있다. 간단하..
Apache, PHP, MySQL을 윈도우나 리눅스에서는 APM 설치로 한다. 맥(Mac)에서는 어떻게 할까? Apache와 PHP는 맥에 기본으로 설치되어 있어 간단한 설정만으로 띄울 수 있다. MySQL은 맥용을 다운로드해서 Package를 실행해서 설치하면 된다. 맥용 MySQL을 설치하면 "시스템 환경설정"에 MySQL 아이콘이 생겨 쉽게 시작하고 중지할 수 있다. 맥용 MySQL을 제거하기 위해서는 MAC에서 MySQL 삭제하기 참고하자. Mac용 Apache 설정 먼저 아파치부터 알아보면, 앞서 이야기한대로 Mac에는 아파치가 기본으로 설치되어 있다. 예전에는 "시스템 환경설정 > 공유"에 들어가면 아래와 같이 "웹 공유"가 있어 쉽게 설정할 수 있었다. 하지만 10.8 버전의 Mountain..
Mac에서 MySQL 설치 후, 삭제하는 방법에 대한 정리입니다. 한번에 삭제하는 명령이 없으니 콘솔에서 아래 명령어를 하나씩 실행하면 됩니다. sudo rm /usr/local/mysql sudo rm -rf /usr/local/mysql* sudo rm -rf /Library/StartupItems/MySQLCOM sudo rm -rf /Library/PreferencePanes/My* rm -rf ~/Library/PreferencePanes/My* sudo rm -rf /Library/Receipts/mysql* sudo rm -rf /Library/Receipts/MySQL* sudo rm -rf /var/db/receipts/com.mysql.* sudo vi /etc/hostconfig ->..