메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

한빛랩스 - 지식에 가능성을 머지하다 / 강의 콘텐츠 무료로 수강하시고 피드백을 남겨주세요. ▶︎

안드로이드 멀티스레딩: 비동기 메커니즘으로 날렵하고 안정적인 앱 만들기

한빛미디어

번역서

절판

  • 저자 : 안데르스 예란손
  • 번역 : 한대희
  • 출간 : 2015-02-27
  • 페이지 : 308 쪽
  • ISBN : 9788968481703
  • 물류코드 :2170
  • 초급 초중급 중급 중고급 고급
0점 (0명)
좋아요 : 42

안드로이드 앱을 위한 비동기 처리 기법의 모든 것


멀티스레딩은 뛰어난 사용자 경험을 제공하는 안드로이드 앱을 만드는 데 필수적이다. 주니어 안드로이드 개발자가 시니어 개발자로 발돋움하기 위해서라도 반드시 공부하고 넘어가야 하는 고급 주제이기도 하다. 이 책은 안드로이드 플랫폼에 특화된 여러 비동기 메커니즘을 설명하며, 앱에 가장 적합한 기법을 고를 수 있게 가이드라인을 제시한다. 베테랑 저자가 설명하는 지침과 조언을 숙지하면 날렵하고 안정적인 앱을 수월하게 만들 수 있다.

 

플랫폼이 성숙되면 빠지지 않고 등장하는 고급 주제 중 하나가 멀티스레딩이다. 안드로이드 기기가 8코어까지 나오면서 모바일에서도 스레딩 기법의 중요성이 높아졌다. 앱의 성능과 반응성을 높이는 데 핵심적이기 때문이다. 하지만 스레딩은 코딩의 복잡성과 런타임 에러 가능성도 증가시키는 것도 사실이다. 여러 기법이 있고 안드로이드 API 레벨에 따라 차이가 있다 보니, 어떤 비동기 기법을 어떻게 사용할지에 대한 명확한 지침이 요구되는 실정이다.
본서는 견고하고 신뢰할 수 있는 멀티스레드 안드로이드 앱을 제대로 만드는 방법을 알려준다. 로더, Executeor, 비동기 핸들러, AsyncQueryHandler 등 안드로이드에서 사용할 수 있는 여러 비동기 메커니즘을 살펴보고, 반응성이 높으며 잘 구조화된 멀티스레딩 앱을 만드는 데 적합한 구현 방법까지 다룬다. 안드로이드 플랫폼에 특화된 스레딩 기법을 기다렸던 독자들에게 큰 도움이 될 것이다.

 

 

  • 자바 및 안드로이드 플랫폼에서의 멀티스레딩 기초를 이해한다.
  • 프로세스 내부 및 프로세스 간 스레드 통신을 배운다.
  • 메모리 누수의 위험을 줄일 수 있는 전략을 사용한다.
  • 기본 스레드의 생명주기를 관리한다.
  • 핸들러 스레드를 사용해 백그라운드에서 태스크를 순차적으로 실행한다.
  • 자바 Executeor 프레임워크를 사용하여 스레드를 관리 및 취소한다.
  • AsyncTask 및 IntentService를 통해 백그라운드 태스크 실행을 처리한다.
  • AsyncQueryHandler를 통해 콘텐츠 프로바이더에 접근한다.
  • 로더를 이용해 UI에 새로운 데이터를 업데이트한다.

 


【대상 독자】

  • 멀티스레딩 스킬 향상을 꾀하는 안드로이드 개발자
  • 앱 성능 향상이 이슈인 기존 안드로이드 개발자
  • 시니어 개발자로 발돋움하길 원하는 주니어 안드로이드 개발자

 

안데르스 예란손 저자

안데르스 예란손

소프트웨어 아키텍트, 개발자, 교육자다. 엔지니어링 물리 공학박사며 일생을 소프트웨어 산업계에서 경력을 쌓고 있다. 2001년부터 산업자동화 시스템 분야에서 활동하다 2005년 모바일 기기에 뛰어들었다. 모바일 플랫폼으로서의 안드로이드 OS의 무궁한 가능성을 내다보았으며, 2008년 스마트폰 시대가 열린 이래 제조사, 금융기관, 스타트업 등에 도움을 주고 있다.

한대희 역자

한대희

TmaxCore, Infraware에서 직장생활을 하였으나 배움의 부족함을 느끼고 서른 살에 카이스트 전산학과 석사과정에 입학하였다. 졸업과 동시에 미국으로 건너가 안드로이드 개발을 시작했으며 현재는 실리콘밸리에 있는 ZeroDesktop에서 근무하고 있다. bookdori81@gmail.com

CHAPTER 1 안드로이드 구성요소와 멀티프로세싱의 필요성
    1.1 안드로이드 소프트웨어 스택 
    1.2 응용프로그램 아키텍처 
        1.2.1 Application 객체 
        1.2.2 구성요소 
    1.3 응용프로그램 실행 
        1.3.1 리눅스 프로세스 
        1.3.2 생명주기 
    1.4 성능을 위해 구조화된 응용프로그램 
        1.4.1 스레드를 통해 반응성 있는 응용프로그램 만들기 
    1.5 마치며 


PART I 기초


CHAPTER 2 자바의 멀티스레딩
    2.1 스레드의 기본 
        2.1.1 실행 
        2.1.2 싱글스레드 응용프로그램 
        2.1.3 멀티스레드 응용프로그램 
    2.2 스레드 안전 
        2.2.1 암시적 잠금과 자바 모니터 
        2.2.2 공유 자원 접근의 동기화 
        2.2.3 예제: 소비자와 생산자 
    2.3 태스크 실행 전략 
        2.3.1 동시 실행 설계 
    2.4 마치며 

CHAPTER 3 안드로이드 스레드
    3.1 안드로이드 응용프로그램 스레드 
        3.1.1 UI 스레드 
        3.1.2 바인더 스레드 
        3.1.3 백그라운드 스레드 
    3.2 리눅스 프로세스와 스레드 
        3.2.1 스케줄링 
    3.3 마치며 


CHAPTER 4 스레드 통신
    4.1 파이프 
        4.1.1 기본 파이프 사용 
        4.1.2 예제: 작업자 스레드에서 문자 처리 
    4.2 공유 메모리 
        4.2.1 시그널링 
    4.3 블로킹 큐 
    4.4 안드로이드 메시지 전달 
        4.4.1 예제: 기본 메시지 전달 
        4.4.2 메시지 전달에 사용되는 클래스 
        4.4.3 메시지 
        4.4.4 루퍼 
        4.4.5 핸들러 
        4.4.6 큐에서 메시지 제거 
        4.4.7 메시지 큐 관찰 
    4.5 UI 스레드와 통신 
    4.6 마치며 


CHAPTER 5 프로세스 간 통신
    5.1 안드로이드 RPC 
        5.1.1 바인더 
    5.2 AIDL 
        5.2.1 동기식 RPC 
        5.2.2 비동기식 RPC 
    5.3 바인더를 이용한 메시지 전달 
        5.3.1 단방향 통신 
        5.3.2 양방향 통신 
    5.4 마치며 


CHAPTER 6 메모리 관리
    6.1 가비지 컬렉션 
    6.2 스레드 관련 메모리 누수 
        6.2.1 스레드 실행 
        6.2.2 스레드 통신 
    6.3 메모리 누수 방지 
        6.3.1 정적 내부 클래스 사용 
        6.3.2 약한 참조 사용 
        6.3.3 작업자 스레드 실행 중지 
        6.3.4 작업자 스레드 유지 
        6.3.5 메시지 큐 정리 
    6.4 마치며 


Part II 비동기 기법


CHAPTER 7 기본 스레드의 생명주기 관리
    7.1 기본사항 
        7.1.1 생명주기 
        7.1.2 인터럽트 
        7.1.3 잡히지 않은 예외 
    7.2 스레드 관리 
        7.2.1 정의와 시작 
        7.2.2 유지 
    7.3 마치며 


CHAPTER 8 핸들러 스레드: 고수준 큐 메커니즘
    8.1 기본사항 
    8.2 생명주기 
    8.3 사용 사례 
        8.3.1 반복되는 태스크 실행 
        8.3.2 관련 태스크 
        8.3.3 태스크 연쇄 
        8.3.4 조건부 태스크 삽입 
    8.4 마치며 


CHAPTER 9 Executor 프레임워크를 통한 스레드 실행 제어
    9.1 Executor 
    9.2 스레드 풀 
        9.2.1 미리 정의된 스레드 풀 
        9.2.2 커스텀 스레드 풀 
        9.2.3 스레드 풀 설계 
        9.2.4 생명주기 
        9.2.5 스레드 풀의 중단 
        9.2.6 스레드 풀 사용 사례와 위험성 
    9.3 태스크 관리 
        9.3.1 태스크 표현 
        9.3.2 태스크 보내기 
        9.3.3 태스크 거부하기 
    9.4 ExecutorCompletionService 
    9.5 마치며 


CHAPTER 10 AsyncTask로 백그라운드 태스크를 UI 스레드에 묶기
    10.1 기본사항 
        10.1.1 생성과 시작 
        10.1.2 취소 
        10.1.3 상태 
    10.2 AsyncTask 구현 
        10.2.1 예제: 이미지 다운로드 
    10.3 백그라운드 태스크 실행 
        10.3.1 응용프로그램 전역 실행 
        10.3.2 다양한 플랫폼 버전에서 실행 
        10.3.3 커스텀 실행 
    10.4 AsyncTask의 대안 
        10.4.1 AsyncTask가 너무 평범하게 구현된 경우 
        10.4.2 루퍼가 필요한 백그라운드 태스크 
        10.4.3 지역 서비스 
        10.4.4 execute(Runnable) 사용 
    10.5 마치며 


CHAPTER 11 서비스
    11.1 비동기 실행을 위해 서비스를 사용해야 하는 이유 
    11.2 지역, 원격, 전역 서비스 
    11.3 생성과 실행 
    11.4 생명주기 
    11.5 시작 서비스 
        11.5.1 onStartCommand 구현 
        11.5.2 재시작을 위한 옵션 
        11.5.3 사용자 제어 서비스 
        11.5.4 태스크 제어 서비스 
    11.6 바운드 서비스 
        11.6.1 지역 바인딩 
    11.7 비동기 기술 선정 
    11.8 마치며 


CHAPTER 12 인텐트 서비스
    12.1 기본 사항 
    12.2 인텐트 서비스를 사용하는 좋은 방법 
        12.2.1 순차적으로 정렬된 태스크 
        12.2.2 브로드캐스트 리시버에서 비동기 실행 
    12.3 인텐트 서비스와 서비스 
    12.4 마치며 


CHAPTER 13 AsyncQueryHandler를 이용한 콘텐트 프로바이더 접근
    13.1 콘텐트 프로바이더에 대한 간략한 소개 
    13.2 콘텐트 프로바이더의 백그라운드 처리에 대한 정당성 
    13.3 AsyncQueryHandler 사용 
        13.3.1 예제: 연락처 확장 리스트 
        13.3.2 AsyncQueryHandler 이해 
        13.3.3 한계 
    13.4 마치며 


CHAPTER 14 로더를 이용한 자동 백그라운드 실행
    14.1 로더 프레임워크 
        14.1.1 LoaderManager 
        14.1.2 LoaderCallbacks 
        14.1.3 AsyncTaskLoader 
    14.2 CursorLoader를 이용한 쉬운 데이터 로딩 
        14.2.1 CursorLoader 사용하기 
        14.2.2 예제: 연락처 리스트 
        14.2.3 CRUD 지원 추가 
    14.3 커스텀 로더 구현 
        14.3.1 로더 생명주기 
        14.3.2 백그라운드 로딩 
        14.3.3 콘텐츠 관리 
        14.3.4 캐시된 결과를 전달 
        14.3.5 예제: 커스텀 파일 로더 
        14.3.6 여러 개의 로더 처리 
    14.4 마치며 


CHAPTER 15 비동기 기술의 선택
    15.1 간단하게 하라 
    15.2 스레드와 자원 관리 
    15.3 반응성을 위한 메시지 전달 
    15.4 예상치 못한 태스크 종료를 피하라 
    15.5 콘텐트 프로바이더에 쉽게 접근 

  • 첫번째 리뷰어가 되어주세요.
  • 결제하기
    • 문화비 소득공제 가능
    • 배송료 : 2,000원배송료란?

    배송료 안내

    • 20,000원 이상 구매시 도서 배송 무료
    • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

    무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

    닫기

    리뷰쓰기

    닫기
    * 상품명 :
    안드로이드 멀티스레딩: 비동기 메커니즘으로 날렵하고 안정적인 앱 만들기
    * 제목 :
    * 별점평가
    * 내용 :

    * 리뷰 작성시 유의사항

    글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

    1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
    2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

    오탈자 등록

    닫기
    * 도서명 :
    안드로이드 멀티스레딩: 비동기 메커니즘으로 날렵하고 안정적인 앱 만들기
    * 구분 :
    * 상품 버전
    종이책 PDF ePub
    * 페이지 :
    * 위치정보 :
    * 내용 :

    도서 인증

    닫기
    도서명*
    안드로이드 멀티스레딩: 비동기 메커니즘으로 날렵하고 안정적인 앱 만들기
    구입처*
    구입일*
    부가기호*
    부가기호 안내

    * 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

    * 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

    * 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

    닫기

    해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
    장바구니로 이동하시겠습니까?

    자료실

    최근 본 상품1