안드로이드 프로그래밍 Next Step : 제대로 된 앱을 만드는 컴포넌트 활용 노하우

안드로이드 프로그래밍 Next Step_표지

 

수많은 안드로이드 프로그래밍 책 중 단 하나의 책

인터넷 서점에서 ‘안드로이드’로 검색해 보면 268건(yes24, 2017.5.24. 기준)의 결과가 나옵니다. 버전 문제만 아니라면 더 이상 새로운 책이 필요 없을 것처럼 충분히 많아 보입니다.

네, 충분히 많습니다. 그걸 인정하지만 이렇게 또 한 권의 안드로이드 책을 출간하였습니다. 일반적인 안드로드 책과는 다른 구성, 다른 내용으로 이루어졌기 때문에 268개의 책과 비슷하지는 않습니다. 또 하나의 책이 아닌, 단 하나의 책이 나온 것입니다.

 

안드로이드에 입문하다

만들고 싶은 앱을 구상하는 시간은 정말 행복합니다. 이런 기능, 저런 기능을 넣고 이렇게 만들면 어쩌면 이 앱. 대박이 날지도 모릅니다!

app-1816211_960_720

 

입문서가 꽤 두껍네요….. 음… 하지만 괜찮습니다! 대박 나는(날지도 모르는) 앱을 만드는 데 이 정도 노력은 해야죠.

베개보다 높은 책을 옆에 끼고 개발을 시작합니다. 그런데 개발의 과정은 멀고 험난하네요. 앱을 만들기도 전에 열정이 다 소진될 것 같습니다. 그래도 조금만 참읍시다. 인내와 끈기로 겨우 완성한 앱. 이제 해피 엔딩일까요?

열정과 노력을 갉아 먹고 탄생한 앱에서는 어찌된 일인지 온갖 문제가 발생합니다. 공부했던 책을 뒤져 보지만 앱 하나 만들어보고 끝내는 입문서의 특징상 문제를 해결하는 방법에 대해서는 나오지 않습니다. 개발자 가이드를 읽고, 구글을 검색하니 단발적인 문제는 해결할  수 있네요. 하지만 이러한 과정을 계속 거치다보면 앱에는 점점 군더더기가 많아집니다.

 

누덕

 

첫 술에 배 부를 수야 없다는 생각에 앱을 여러 개 더 만들어 보지만 실력은 제자리.. 늘어가는 건 꼼수뿐입니다.

 

문제는 컴포넌트야!

제대로 된 앱을 만들기 위해서는 결국 안드로이드의 기본 원리를 정확히 알고 제대로 활용해야 합니다. 그러기 위해서는 안드로이드 내부 구조를 정확히 이해하고 있어야 합니다. 그래야 컴포넌트를 적재적소에서 정확히 활용할 수 있고, 유지보수가 쉬우면서도 진화할 수 있는 제대로 된 앱을 만들 수 있습니다.

puzzle-1721464_1920

 

‘예습 복습 철저히, 열심히’ 공부하라는 말처럼 들리나요? 알겠는데 어떻게 하냐구요? 안드로이드 내부 구조를 설명하는 책, 강의를 봐도 못 알아 먹겠다구요?

 

자, 이제 시작해 볼까?

puzzle-parts-283294_1920

이 책은 안드로이드의 기본 원리를 이해하고 이를 올바르게 적용하는 것에 중점을 둡니다. 그러면서도 실무적인 내용을 담았는데, 다른 책에서는 가볍게 다뤄지는 내용이라도 현장에서 중요하게 쓰이는 것에 많은 분량을 할애하였습니다. 입문서가 아니라서 쉽게 볼 수 있는 책은 아닙니다. 하지만 분량이 그다지 많지 않으니 처음에는 이해가 잘 안 되더라도 한번 쭉 읽어보고 몇 번 반복해 보시기 바랍니다. 진짜 제대로 된, 단단한 앱을 만들 수 있을 것입니다.

 

내 얘기 같다면 이 책을 주목해 보자

 

– 앱을 개발하면서 자신이 정말 제대로 만들고 있는지, 문제를 올바르게 해결하고 있는지 의문을 갖는 분
– 안드로이드 컴포넌트를 어떤 식으로 활용할지 잘 모르겠는 분
– 실제 예를 단순히 따라하기보다는 개념이 어떻게 적용되는지를 알고 싶은 분
– 실제 업무에서 알아야 할 다양한 크리티컬 이슈를 알고 싶은 분
– 군더더기 없는 정확한 소스를 작성하고 싶은 분
– 안드로이드 버전, 단말의 종류 등 환경 변화에 능동적으로 대처할 수 있는 앱을 만들고 싶은 분
– 안드로이드 앱 개발을 설명하는 책도 보고, 안드로이드 프레임워크를 설명하는 책도 봤지만 프레임워크를 앱 개발에 잘 적용하려면 어떻게 해야 하는지 도무지 모르겠는 분

 

이 책은 다음 서점에서 구입하실 수 있습니다.

Yes24 | 알라딘 | 인터파크 | 교보문고

 

 

RxJava를 활용한 리액티브 프로그래밍: RxJava의 개념과 사용법, 실무 적용까지

표지_small

 

현대적인 프로그래밍 환경에서 비동기 프로그래밍을 어떻게 할 것이냐는 꽤 중요한 문제이고 다양한 기술이 개발되어 경쟁 중인데요. 몇 년 전부터 리액티브 프로그래밍이라는 이벤트 기반 비동기 프로그래밍 방식이 주목을 받고 있습니다. 리액티브 프로그래밍은 여러 언어로 다양한 구현이 개발되어 쓰이고 있는데 지금 소개할 RxJava는 자바 세계의 대표적인 리액티브 프로그래밍 구현입니다.

 

rxjava

 

RxJava의 탄생과 발전

2007년, 마이크로소프트에서 에릭 마이어(Erik Meijer)가 중심이 되어 처음엔 Rx(Reactive Extension)를 탄생시켰고 2년 후에는 Rx.NET으로 발전했습니다. 이후 Rx는 자바스크립트, C++ 등의 다양한 언어에서도 구현을 시작했습니다.

RxJava는 넷플릭스를 통해 발전했습니다. 2011년에 마이크로소프트에서 넷플릭스로 이직한 자파 후세인(Jafar Husain)은 회사 내에 Rx 포교(?)를 시작했고, 미들티어 API 작업을 담당한 벤 크리스텐센(Ben Christensen)을 전도(?)하는 데 성공했습니다. 당시 넷플릭스의 미들티어는 자바로 구현되어 있었고 여기에 Rx 프로그래밍 모델을 수용하기로 결정했습니다. 약 3년에 걸쳐 RxJava를 만드는 동안 대부분의 작업은 Github에 공개되었고, 수많은 컨트리뷰터의 참여를 통해 성공적인 결과물을 얻었습니다. 이 과정에서 넷플릭스의 전폭적인 지지와 지원이 있었음은 물론이구요.

blog_3

출처: https://www.slideshare.net/jongwookkim/ndc14-rx-functional-reactive-programming

 

2016년이 되면서 Rx의 인기와 사용 빈도가 급증했습니다. 넷플릭스 API를 사용하는 모든 트래픽은 RxJava를 사용하고 있으며 결함 대응 라이브러리인 히스트릭스(Hystrix)도 모든 내부 트래픽을 격리할 때 RxJava를 사용합니다. SoundCloud나 Square, NYT, Seatgeek 등의 회사들도 RxJava를 이용해 성공적인 안드로이드 구현 영역을 구축하고 있고, 안드로이드 앱에도 RxJava를 사용하면서 RxAndroid 확장 라이브러리에도 이바지하고 있습니다.

 

이 책의 내용

『RxJava를 활용한 리액티브 프로그래밍』은 RxJava의 개념과 사상부터 사용법, 실무 적용까지 RxJava를 전반적으로 다루고 있습니다. 넷플릭스에서 RxJava 개발에 참여한 벤 크리스텐센과 실무에서 RxJava를 적용한 풍부한 경험이 있는 토마스 누르키비치(Tomasz Nurkiewicz)가 집필한 이 책은 리액티브와 RxJava에 대한 깊이 있는 개념 설명과 다양한 예제를 담고 있습니다. 서버 관리와 안드로이드 앱 개발 영역에서 어떻게 RxJava를 활용하는지를 예제를 통해 보여주고 또한 최근 나온 2.0 버전이 기존 버전과 어떤 점에서 다르고 왜 바뀌었는지도 추가적으로 설명하고 있습니다.

 

이 책에서 다루는 내용은 다음과 같습니다.

– ‘콜백 지옥’에 빠지지 않으면서 다수의 비동기 소스에 반응하는 프로그램 작성

– 쏟아지는 데이터를 Observable로 대처하는 방법

– 리액티브 스타일로 작성된 프로그램을 디버그하고 테스트하는 방법

– 프로그램을 작성할 때 병렬성과 동시성을 효과적으로 활용하는 방법

– RxJava 버전 2로 이행하는 방법

 

이 책은 실제로 RxJava를 구현하고 사용하면서 수많은 경험을 쌓아온 저자가 보여주는 RxJava의 개념과 용도, 특히 리액티브 프로그래밍에 대한 심층적인 탐구 결과물이다. 리액티브를 알고 싶다면 이 책을 읽는 것보다 더 좋은 방법은 없다.

— 에릭 마이어(Erik Meijer), Applied Duality의 대표이자 창업자

 

기존의 절차적인 명령형 프로그램에 익숙한 개발자에게는 RxJava의 API가 낯설게 느껴진다. Observable/Observer와 같은 용어가 쉽게 머릿속에 들어오지 않고 혼란스러울 것이다. 예제 코드는 간결하지만 실무에서 만드는 코드에는 어떻게 적용할지 연상이 안 될 수도 있다. 이 책은 RxJava를 이해하고 적용하는 데 좋은 길잡이가 될 만하다. RxJava의 기본 개념에서 실무에 응용하는 기법까지 폭넓게 설명하고 있다. RxJava의 API가 막연하고 어렵다고 느낀 개발자가 이 책을 다 읽고 나면 유용한 도구 하나를 손에 쥐게 되었다는 느낌을 받을 것이다.

— 정상혁, 네이버

 

이 책의 대상 독자

『RxJava를 활용한 리액티브 프로그래밍』은 중·고급 프로그래머를 대상으로 하고 있습니다. 자바에 상당히 익숙해야 하지만 리액티브 프로그래밍에 대한 사전 지식은 필요 없으며, 많은 내용이 함수형 프로그래밍과 관련이 있지만 미리 알아야만 하는 필수 개념은 아닙니다.

기존의 절차적인 명령형 프로그램에 익숙한 개발자에게 RxJava는 낯선 개념들이 많을 수도 있습니다. 저자인 벤 크리스텐센도 처음 Rx 방식을 쉽게 이해할 수 없었다고 하니까요. 하지만 기본 개념과 사용법을 익히고 나면 Rx의 편리함은 포기할 수 없을 것입니다. Rx는 애초에 개발자들의 필요에서 출발하고 발전했습니다. 복잡성을 줄이고 간결하게 프로그래밍하고자 한 것이죠. 『RxJava를 활용한 리액티브 프로그래밍』을 통해 리액티브 프로그래밍에 도전해보세요! 그리고 리액티브의 장점과 편리함을 경험해보세요!

 

이 책은 다음 서점에서 구입하실 수 있습니다.

Yes24 | 알라딘 | 인터파크 | 교보문고