Top

안드로이드 데이터베이스 프로그래밍

  • 원서명Android Database Programming (ISBN 9781849518123)
  • 지은이제이슨 웨이
  • 옮긴이허윤규
  • ISBN : 9788960774568
  • 25,000원
  • 2013년 07월 31일 펴냄
  • 페이퍼백 | 252쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 모바일 프로그래밍

책 소개

데이터베이스를 활용한 안드로이드 애플리케이션을 작성하는 데 필요한 기본 지식과 다양한 활용 노하우를 학습할 수 있는 책이다. 프로그램의 성능을 향상시킬 수 있는 효과적인 쿼리 작성 방법과 SQLite 데이터베이스의 데이터를 UI로 연결하기 위한 방법, 구글 앱 엔진과 같은 외부 데이터베이스 예제 등을 통해 다양한 실전 활용 사례를 살펴본다.



[ 이 책에서 다루는 내용 ]

■ SharedPreferences와 SD 카드 저장소 같은 지역 데이터 저장소 형식
■ SQLite 데이터베이스의 개념, 사용자 정의 방법과 확장 방법
■ 데이터를 효율적으로 쿼리할 수 있는 다양한 SQLite 쿼리
■ 콘텐츠 프로바이더를 통해 SQLite 데이터베이스를 외부 애플리케이션으로 안전하게 노출하기 위한 방법
■ SQLite 데이터베이스를 사용자 인터페이스로 연결하는 방법
■ 구글 앱 앤진 같은 다양한 외부 데이터베이스와 이런 외부 플랫폼에 데이터를 저장하거나 쿼리하는 방법
■ 외부 데이터 저장소를 통해 데이터를 송수신할 수 있는 네트워크 요청 방법


[ 이 책의 대상 독자 ]

이 책은 데이터베이스와 다른 백엔드 설계 개념에 대한 경험이 있는 개발자와 모바일 애플리케이션에 적용하는 방법을 배우고 싶은 사람을 대상으로 한다. 모바일 애플리케이션과 안드로이드 플랫폼에 경험이 있지만, 백엔드 시스템과 데이터베이스 스킴의 설계/구현에 익숙하지 않은 사람에게도 이 책은 유용하다.
안드로이드 프로그래밍과 데이터베이스 구현에 경험이 있는 사람에게도 광범위한 안드로이드 데이터 저장소 메소드의 개념에 대한 이해도를 높여줄 수 있다


[ 이 책의 구성 ]

1장, ‘안드로이드 데이터 저장’에서는 안드로이드에서 사용 가능한 여러 가지 지역 데이터 저장소 메소드에 집중한다. 각 저장소 메소드에 대한 예제 코드와 각 메소드의 강점과 약점을 비교해본다.

2장, ‘SQLite 데이터베이스’에서는 좀 더 복잡하고, 좀 더 일반적으로 사용되는 로컬 데이터 저장소인 SQLite 데이터베이스에 집중해 사용자 정의 데이터베이스를 구현할 수 있게 인도한다.

3장, ‘SQLite 쿼리’에서는 SQL 쿼리 언어에 대한 기본적인 내용을 소개한다. SQLite 데이터베이스에서 사용할 수 있는 강력한 데이터베이스 쿼리를 생성하는 방법을 살펴본다.

4장, ‘콘텐츠 프로바이더’에서는 2장의 SQLite 데이터베이스를 확장해 콘텐츠 프로바이더를 사용함으로써 전체 안드로이드 OS에 자신의 데이터베이스를 노출하는 방법을 살펴본다.

5장, ‘Contacts 테이블 쿼리’는 안드로이드 OS에서 제공돼 가장 폭넓게 사용되는 콘텐츠 프로바이더인 Contacts 콘텐츠 프로바이더에 대해 알아본다. 또한 Contacts 테이블의 구조와 일반적인 쿼리 예제를 살펴본다.

6장, ‘UI 바인딩’에서는 데이터를 사용자 인터페이스로 연결하는 방법을 소개한다. 데이터는 일반적으로 목록 형태로 표시되므로 두 가지 종류의 리스트 어댑터를 살펴본다.

7장, ‘실용 안드로이드 데이터베이스’에서는 프로그래밍에서 살짝 벗어나 고수준 설계 관점에 집중한다. 지금까지 살펴본 모든 지역 저장소 메소드의 사용 방식을 설명하고, 지역 메소드의 문제점에 대해 집중적으로 살펴본 후 외부 데이터 저장소의 필요성을 언급한다.

8장, ‘외부 데이터베이스 탐험’에서는 외부 데이터베이스에 대한 개념과 일반적인 외부 데이터 저장소를 소개한다. 구글 앱 엔진(Google App Engine) 데이터 저장소를 설정하는 방법에 관련된 예제도 살펴본다.

9장, ‘데이터 수집과 저장’에서는 8장에서 살펴본 애플리케이션 데이터 수집 관련 개발 방법을 확장해 새로운 외부 데이터베이스에 추가할 수 있게 한다. 사용 가능한 API를 사용하거나 사용자 정의 웹 스크래퍼를 작성해 데이터를 수집하기 위한 방법을 소개한다.

10장, ‘종합 선물세트’에서는 제일 먼저 HTTP를 생성하는 방법을 살펴보고, 모바일 애플리케이션에서 HTTP 서블릿으로 HTTP를 요청하는 방법을 살펴보는 것으로 8장과 9장에서 살펴본 애플리케이션을 마무리한다. 10장은 이 책의 핵심과도 같다. 여러분이 모바일 애플리케이션을 자신의 외부 데이터베이스와 연결하고, 궁극적으로 HTTP 응답을 파싱하고 목록 형태로 표시하는 방법을 소개한다.

저자/역자 소개

[ 저자 서문 ]

오늘날 우리는 데이터 중심적이며 데이터 지향적인 세상에 살고 있다. 우리는 보고 구입한 모든 상품을 추적해 유사한 제품을 추천해주는 아마존 같은 회사가 있는 세상에 살고 있으며, 모든 검색 쿼리(query)를 저장해 훗날 더 나은 검색 쿼리를 추천해주는 구글 같은 회사가 있는 세상에 살고 있다. 또한 친구들과 공유한 모든 이벤트와 생각들을 저장해 수백만 사용자 각각에 대해 좀 더 알 수 있게 해주는 페이스북 같은 소셜 미디어 사이트가 있는 세상에 살고 있다. 이처럼 우리가 사는 세상은 점점 더 데이터 중심적인 세상으로 변화하고 있으며, 따라서 우리는 데이터 중심 관점으로 애플리케이션을 개발해야 한다.

여러분 주위를 돌아보라. 스마트폰이나 태블릿 같은 모바일 기기는 지난 수년간 폭발적으로 증가했다. 이 책은 구글 친구들이 안드로이드 OS에 만들어 놓은 다양한 메소드를 바로 접함으로써 데이터와 안드로이드를 탐험하는 것을 목적으로 한다. 이 책에서는 사용 가능한 모든 다양한 데이터 저장소 메소드를 소개할 뿐만 아니라 각 메소드의 강점과 약점에 대해서도 설명한다. 이 책을 통해 여러분이 효율적이고 잘 설계된 확장성 있는 데이터 중심 애플리케이션 만들 수 있기를 바란다.


[ 저자 소개 ]

제이슨 웨이 (Jason Wei)
수리 컴퓨터과학 전공과 통계학 부전공으로 2011년 스탠포드 대학을 졸업하고, 기계 학습(Machine Learning) 연구를 통해 경영과학 분야의 석사 학위를 받았다. 재학 중 첫 2년 동안 실리콘 밸리에서 벤처기업을 만들었으며, 두 번째 벤처기업인 빌쉬링크(BillShrink) 사에서 안드로이드를 처음 접했다.
그 후로 장난스러운 화면 처리 애플리케이션에서부터 중요한 금융 분석 모델링 도구에 이르기까지 유용한 애플리케이션을 다양하게 개발했다. 또한 API를 다루는 데 관심이 많으며, 구글과 마이젠고(MyGengo), 인덱스탱크(IndexTank) 같은 회사에서 주관하는 다수의 애플리케이션 개발 경진대회 수상 경험을 갖고 있다. 애플리케이션 개발뿐만 아니라 안드로이드 튜토리얼을 작성하고, 자신만의 개발에 관한 글을 써서 블로그(thinkandroid.wordpress.com)에 공유하며, 블로그를 통해 『Leanring Android Game Programing』 책의 기술 감수자로 초빙되기도 했다.
현재 뉴욕에서 계량(quantitative) 트레이더로 근무 중이다.


[ 옮긴이의 말 ]

내가 데이터베이스를 처음 접했던 시기는 아마 개인 홈페이지를 만들었던 때였을 것이다. 당시 홈페이지 방문자들이 방명록이라고 하는 게시판에 글을 남기면 그 글의 제목, 내용, 이름 등을 저장하기 위한 아주 간단한 데이터베이스가 만들어졌고, 이때 처음 SQL을 공부했던 기억이 어렴풋이 난다. 실제로 필요한 SQL문은 매우 간단한 한두 문장 정도였고, 이것이 나의 첫 데이터베이스 경험이었다.
이렇게 시작된 데이터베이스와의 만남은 이후 마이크로소프트 SQL 서버와 오라클 기반의 대용량 데이터베이스 처리까지 이어졌고, 처음엔 쉽게 접근했던 SQL문 튜닝에 하루를 꼬박 소요하기도 했었다. 재무/회계와 연관된 각종 테이블 간 관계와 부분집합에 대한 이해 없이는 수천만 건의 대상 집합 중 어느 특정한 단일 행의 결과 값을 빠른 시간에 가져오는 일은 정말 까다롭지만 흥미를 갖기에 충분했다.
실제로 모바일 세계에서는 이처럼 상당히 많은 양의 데이터를 처리하거나 복잡한 관계를 갖는 일이 많지는 않다. 하지만 데이터베이스의 특성을 모르고 작성한 프로그램과 데이터베이스의 특성에 따라 작성한 프로그램과의 성능 차이는 현저히 다를 수 있다.
이 책에서는 데이터베이스의 이해에 필요한 기본 지식과 SQL 쿼리, 안드로이드에서 필수적인 콘텐츠 프로바이더의 사용, 실제 활용 방법에 이르기까지 작지만 필요한 내용을 알차게 다뤘다. 안드로이드 모바일 애플리케이션 작성에 필요한 기본적인 데이터베이스 지식을 얻고 싶거나 다양한 데이터 저장 방식에 대해 알고 싶은 독자가 있다면 이 책을 추천한다.


[ 옮긴이 소개 ]

허윤규
분산 처리와 대용량 데이터베이스에 관심이 있으며, CORBA와 웹서비스 관련 프로젝트와 다수의 프로젝트 경험이 있다. 현재 삼성전자에서 모바일 서비스를 개발 중이며, 저서로는 『MS SQL Server 2000 for Beginner』, 번역서로 『Beginning ASP.NET using VB.NET』, 『안드로이드 NDK 프로그래밍』이 있다.

목차

목차
  • 1장 노드 개요
    • SharedPreferences의 사용
      • SharedPreferences의 일반적인 사용 사례
        • 사용자 애플리케이션의 첫 방문 체크
        • 애플리케이션의 마지막 업데이트 시점 확인
        • 사용자의 로그인 사용자 이름 저장
        • 애플리케이션의 상태 저장
        • 사용자 위치 캐시
    • 내부 저장소 메소드
    • 외부 저장소 메소드
    • SQLite 데이터베이스
    • 정리
  • 2장 SQLite 데이터베이스
    • 고급 SQLite 스킴 생성
    • SQLite 데이터베이스를 위한 래퍼
    • SQLite 데이터베이스 디버깅
    • 정리
  • 3장 SQLite 쿼리
    • SQLite 쿼리 생성 방법
    • SELECT문
    • WHERE 필터와 SQL 연산자
    • ORDER BY와 GROUP BY
    • HAVING 필터와 집합 함수
    • SQL과 자바 성능 비교
    • 정리
  • 4장 콘텐츠 프로바이더
    • 콘텐츠 프로바이더
      • 쿼리 메소드 구현
      • delete와 update 메소드 구현
      • insert와 getType 메소드 구현
      • 콘텐츠 프로바이더와 상호 작용
    • 실제 사용 사례
    • 정리
  • 5장 Contacts 테이블 쿼리
    • Contacts 콘텐츠 프로바이더의 구조
    • 연락처 쿼리
    • 연락처 수정
    • 권한 설정
    • 정리
  • 6장 UI 바인딩
    • SimpleCursorAdapters와 ListView
    • 사용자 정의 CursorAdapters
    • BaseAdapters와 사용자 정의 BaseAdapters
    • 리스트 반복 처리
    • CusorAdapters와 BaseAdapters 비교
    • 정리
  • 7장 실용 안드로이드 데이터베이스
    • 지역 데이터베이스 사용 사례
    • 데이터베이스를 캐시로 사용
    • 일반적인 애플리케이션 설계
    • 정리
  • 8장 외부 데이터베이스 탐험
    • 외부 데이터베이스의 종류
    • 구글 앱 엔진과 JDO 데이터베이스
    • GAE: 비디오 게임 예제
    • PersistenceManager와 쿼리
    • 정리
  • 9장 데이터 수집과 저장
    • 데이터 수집 방법
    • 웹 스크래핑 입문
    • GET/POST 방식을 위한 확장 HTTP 서블릿
    • CRON 작업 스케줄링
    • 정리
  • 10장 종합 선물세트
    • HTTP GET 요청 구현
    • 안드로이드 돌아가기: 응답 파싱
    • 최종 단계: UI로 연결(복습)

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

[p.29 : 9행]
e.commit();
->
e2.commit();