스파크를 활용한 실시간 처리 - 실시간 데이터 처리를 위한 고수준 스트리밍 API 마스터하기
제러드 마스.프랑수아 가릴로 지음, 김인범 옮김 / 한빛미디어 / 2021년 4월
평점 :
장바구니담기


스파크를 활용한 실시간 처리 - 한빛미디어


‘크기가 무한한 유형의 데이터 셋’, 이는 스트림의 정의이다. 이 책의 서두에서 스트림 처리는 무한한 데이터를 처리하는 규율 및 관련 기술의 집합이라고 설명한다. 경계가 없다는 뜻인 무한이라는 것을 이론적으로는 생각할 수 있지만, 현실적으로는 불가능하다. 그러나 공간의 개념에서 무한 데이터는 존재할 수 없지만, 시간 축에서 바라보는 데이터의 흐름은 무한의 개념이 가능해진다. 이 책을 보고 나서야 단순히 대량의 데이터 처리라고 생각했던 스트림에 대한 개념이 시간 개념의 데이터 스트림이라는 것을 알게 되었다.

                             


                  

경계가 명확한 대량의 데이터는 배치 처리로 처리하는 것이고, 경계가 불명확한 (Unbounded data 데이터는 스트림 처리라는 것 또한 이 책을 보고 나서야 알게 되었다. 우리가 서로 생각하고 있는 용어의 의미를 합의하고 이 시간이 진행되어야 한다며 충분한 사전 지식과 용어 설명에 시간을 아끼지 않았던 어떤 세미나가 생각났다. 어떤 발표 또는 어떤 책을 쓰게 된다면 이 책의 1장처럼 써야겟다는 생각이다. 혹 이 책을 접하게 된다면 꼭 1장을 정독하기를 바란다.

 

이 책은 단순히 인메모리 스트림 처리에 대한 사용법에서 그치지 않고 독자로 하여금 어디까지 스파크를 활용할 수 있는지를 보여준다. 특히 (이론적으로는) 무한한 스트림을 처리하기 위해 분산 처리 모델을 제시하고 예를 들어 실제 어떻게 동기화를 하는지 드러낸다. 아울러, 스트리밍 처리의 구조에서 이벤트 시간을 기반으로 어떻게 처리하고 중복을 막는지도 설명한다.

 

책의 중반에 이르러서야 본격적으로 아파치 스파크를 설명하는데 그만큼 앞 부분에서 스트림 처리에 대한 충분한 설명을 감당해낸다. 아파치 스파크에 대한 활용에서 모니터링과 성능 튜닝까지 설명하니 초, 중급 개발자를 넘어 시니어 개발자도 이 책을 꼭 일하는 곳에 비치해두기를 바란다.

 

최근 주식 거래가 활발해지면서 알고리즘과 데이터, 머신러닝 등을 활용한 트레이딩에 관심이 많은데, 이 책을 만나게 된 것이 행운이라는 생각이 든다. 조금 아쉬운 부분은 이미지나 도표, 그래프 등이 부족해서 시각적인 자료를 통해 이해를 돕는 부분이 부족한 것이 스파크를 처음 접하는 이들에게는 다소 힘들 수 있겠다는 생각이 든다. 데이터 처리에 대한 충분한 이해를 바탕으로 접근할 수 있을 때 이 책이 전문서적으로서 힘을 발휘할 수 있겠다.

 

"한빛미디어 <나는 리뷰어다활동을 목적으로 책을 제공받아 작성된 서평입니다."


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
효율적 개발로 이끄는 파이썬 실천 기술 - 파이썬에 숨겨진 힘을 이용해 개발 효율을 높이자!
스야마 레이 지음, 김연수 옮김 / 제이펍 / 2021년 4월
평점 :
장바구니담기


책의 제목에 기초’, ‘기본’, ‘원리가 적히면 가볍게 읽어볼 수 있지만, ‘실무’, ‘기술이라 적혀 있으면 절대 만만하게 보고 시작할 수 없다. 어느 정도의 기초를 가지고 덤벼야 한다. 이 책은 리뷰하는데 꽤 많은 시간이 필요했다. 우선 모든 문법 책(권법 무술의 비법서도 마찬가지다.)의 첫 장에는 이 책이 무엇을 설명하며 누구로부터 시작되었는지에 대한 재미없는 역사로 채워져있다. 1장은 가볍게 넘긴다.

대부분 책에서 알려주는 개발 환경 설정은 이미 시간이 흘러 빠르게 변한 환경을 반영하지 못한 채 구시대의 설치 방법을 표현해주는 경우가 많다. 특히 윈도우 사용자가 많으니 윈도우 환경에서의 설치를 기준으로 하겠다며 알려주고 끝나는 황당한 경우도 많았다. 이 책의 칭찬할 점은 개발자들이 많이 활용하는 Mac OS와 일반인들의 윈도우, 개발 변태들의 리눅스 환경까지 모두 설명한다는 점에서 100 점이다. 거기에 가상의 컨테이너인 도커 이미지를 통한 개발 환경 설정은 2021년을 지나가고 있는 현 시점에서 완벽한 가이드 역할을 한다. 예전에는 H/W 또는 O/S에 종속된 환경 설정으로 인해 시작부터 초심자들이 질려 버리기 일쑤였다. 자 이렇게 2장이 마무리 되고 본격적인 기술을 익히게 된다.

파이썬 언어에 입문하는 단계로 처음에 흥미 위주로 유투브 영상을 찾았다. 짧은 시간에 마치 모든 것을 다 알려준다는 식으로 문법을 설명하지만 기본적인 문법을 설명한 이후 심화과정을 들어가야 하는데, “이제 다 배웠으니 여러분의 꿈을 펼쳐보세요.” 라는 식이 많았다. (어디서 약을 팔어???), 그래서 패스트캠퍼스와 인프런을 통해 파이썬 강의를 유료로 구입하여 학습하였다. 그러나 모두의 이해 수준이 각각 다르듯 강사의 설명도 제 각각이고 무엇보다 장시간 하루종일 모니터 앞에 앉아 있어야 하는 것이 여간 곤혹스러운 일이었다.

이 책을 다 읽고 보니 책에 각 챕터를 구분하는 빨간 라인이 보였다. 각 단계별로 조금씩 심화 과정으로 진입하는데, 활자로 정확히 현재 무엇을 학습하는지 키워드가 명확하다 보니 필요한 경우 유투브나 유료 동영상 강의에서 필요한 부분을 선택적으로 집중 학습하기 좋았다. 마치슈퍼 마리오게임을 하는 기분이 들었다. 각 스테이지의 목표가 정확하고 골에 다다르고 챕터가 끝날 때 악당 쿠퍼를 쓰러트리는 재미를 느끼면서 성취감이 들었다. 이 책은 13 챕터를 진행하면서 다음의 내용을 얻을 수 있다.

우선 3,4 장은 파이썬 언어가 가진 기초 문법과 제어 흐름이다. 이는 모든 프로그래밍 언어의 공통이니 어렵지 않게 통과 할 수 있다. 다음 5, 6장은 함수, 클래스, 인스턴스 부분이다. 이때부터는 사실 프로그래밍적인 사고가 반드시 필요한 부분이여서 초심자에게는 어려울 수 있다. 파이썬 언어에 제한을 두지 말고 다양한 자료를 통해 함수, 클래스, 인스턴스 그리고 아울러 오브젝트라는 키워드까지 모두 탐구해보길 바란다. 그리고 나서 이 책에서 설명해주는 파이썬의 문법을 익히기를 권한다. 초심자는 기초 지식없이 기술을 기능으로 익히게 되면 추후 이해의 부재가 주는 손해가 막심하다. 조금 더디더라도 부디 이해하고 기술을 익히자.

다음 7장은 그렇게 만들어 본 코드를 조립하기 위해 필요한 모듈, 패키지, 네임스페이스, 스코프에 대해서 배우게 된다. 이는 다른 사람 또는 어느 훌륭한 개발자가 만들어 둔 코드가 여러분의 코드를 조력할 수 있게 해주는 마법을 만나게 해준다. 8장에서는 파이썬 언어에 맞게 특화된 내장 함수와 특수 메소드들을 익히 된다. 이 부분은 사실 나도 글로 배울 때는 어려워서 다양한 동영상 학습 자료를 참조하여 학습하였다.

책이 모든 것을 담아낼 수 없다. 결국 움직여야 하는 것은 당신이다.

9장에서는 파이썬의 고급 기술 들어가시겠다. 여기부터는 흥미를 이끌어 조회수로 먹고사는 유투브에서는 찾기 힘든 깊이 있는 기술 내용이 시작된다. 제네레이터, 데코레이터, 콘텍스트 매니저, 디스크립터를 만나게 된다. 책에서 머물지 말고 인터넷에 있는 다양한 자료를 검색해서 꼭 본인 것으로 만들자. 기초 문법 조금 알고 뺑뺑이 (흐름제어) 할 수 있다고 그 언어의 전문가가 아니니 말이다. 10장에서는 동시처리와 병렬처리를 설명한다. 스레드 설명을 넘어 고급 기술인 코루틴을 소개하고, 실무 단계에서 꼭 알아야 하는 http server/client 처리를 어떻게 하는지 직접 보여준다. 실무에 앞서 해당 부분을 아는 것과 모르는 것은 큰 차이가 있을 테니 꼭 추가 자료로 학습하기 바란다.

11, 12장은 파이썬 개발자 뿐 아니라 모든 개발자에게 필요한 내용임에도 일반적인 기초 문법책에서는 잘 다루지 않는 내용이다. 어떤 상황이든 변화되는 상황에서도 안정적인 개발 환경을 구축하고, 개발된 내용을 신뢰하기 위한 테스트를 진행하는 것에 대한 실천이 담보되어야 하는 내용을 자세히 담아냈다. 사실 꽤 두꺼운 다양한 문법책에서 이러한 부분을 빼놓으니 개발자 중에 간혹 내 컴퓨터에서는 잘 되는데?” 라거나, “개발 일정이 바쁜데 테스트를 왜 지금 해?” 라는 말을 심심치 않게 듣는다. 그러나 책에서 이렇게 당위성을 담아주니 반갑지 않을 수 없다.

마지막으로 13장에서는 간단한 이미지 처리 프로그램을 직접 구상하고 작성하면서 동시에 버전관리 Git을 보여준다. 그리고 패키징과 테스트 코드, 테스트 자동화와 확인 그리고 완성된 프로젝트의 실행까지 과정을 설명한다. 실무에 비하면 너무나 간단한 프로젝트지만 실무 프로젝트에서 해야 하는 과정의 정석을 그대로 담았다.

컴퓨터 프로그래밍을 배우는 것은 가능하다면 즐겁게 그러나 빠짐없이 배워야 한다 생각하다. 어느 부분이 부족하면 실무 또는 실전에 들어가 고생하는 모습을 많이 보았던 탓이다. 이 책이 파이썬의 기초부터 실무 단계까지 모두 압축적으로 담겨 있다 보니 다소 파이썬을 처음 접하는 이에게는 어려움으로 다가올 수 있겠다. 그러나 이 책이 기초를 넘어 개발자의 기본기를 탄탄히 해주는데는 이만한 입문서가 또 없겠다 싶다. 단계가 올라갈수록 어려워지는 것은 게임이나 프로그래밍이나 매한가지다. 하나 분명한 것은 이 책이 매 챕터마다 주는 성취감은 감출 수 없기에 여러분도 나와 같은 고통(?)을 한 번은 꼭 이겨내고 깔끔하고 담백한 개발자가 되는 계기가 되기 바라며 또 권한다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
그림으로 공부하는 IT 인프라 구조 - 개정판 그림으로 공부하는 시리즈
야마자키 야스시 외 지음, 김완섭 옮김, 오다 케이지 감수 / 제이펍 / 2020년 12월
평점 :
장바구니담기


그림으로 공부하는 IT 인프라 구조 ( 개정판 ) - 제이펍

예전에는 프로그래머가 프로그램을 작성하는 일에 집중할 수 있었다. 프로그램이 수행하게 될 역할 또는 논리를 잘 풀어 코드에 담아내는 일을 잘하면 프로그래머로서 자격이 충분했다. 아울러 한정된 자원(CPU, Memory)을 최소한으로 사용할 수 있도록 할 수 있다면 훌륭한 프로그래머라 할 수 있었다. 그러나 최근에는 하드웨어 성능에 전적으로 의존했던 서버의 영역과 데이터베이스의 영역이 놀라울 만큼 빠르게 발전한 하드웨어와 그 하드웨어에서 구동되는 다양한 가상화 기술로 인해 SW로 얼마든지 성능과 규모를 늘리고 줄일 수 있게 되었다. 소프트웨어 개발자들은 이제 하드웨어의 제약에서 벗어나 웹서버와 DB서버를 자유자재로 활용할 수 있게 되었다. 심지어 DB 서버에 대한 전문적인 지식을 지녀야 유지 할 수 있던 DB 서버조차도 쉽게 만들 수 있는 시대가 되었다.

시대의 흐름에 맞추어 당대 기술자들이 꼭 알아야 할 내용을 책 한 권에 담아 책으로 출간해주는 제이펍은 프로그래머에겐 보물섬과 같다. 이번에 소개할 책은 제이펍에서 개정판으로 재 출간한 그림으로 공부하는 IT 인프라 구조 개정판이다. 이 책은 동 제목의 책이 5년여만에 개정되어 출간된 책이다. 1 년이면 너무나 많은 변화가 생기는 IT 업계에서 5년의 시간은 결코 짧지 않으나 내용면에서 최신의 내용을 충실하게 담으려는 노력을 확인할 수 있었다.

IT 관련 책 수요가 한정되어 있어 무한정 책을 찍어낼 수는 없는 터, 그러한 환경에서 명서들은 업계에서 소문이 나기 시작하면서 늦게 책을 구하려는 경우가 생긴다. 그러나 절판 이후에는 서점에서 더 이상 구할 수 없는 안타까운 경우가 종종 생긴다. 대표적으로 제이펍에서 10 여 년 전 출간한 대규모 서비스를 지탱하는 기술이라는 책은 현재 중고 서점 시세가 무려 십 수 만원에 달해 책 가격의 5배가 넘는 가격으로 형성되어 있다. 이제는 소프트웨어와 하드웨어 기술자가 별도로 나뉘지 않고 모든 영역을 알아야 서비스가 운영되는 터, 이 글을 읽게 된다면 만들고 운영하게 될 인프라에 대한 모든 항목이 바이블처럼 담긴 이 책을 꼭 서재 한 켠에 담아두기를 바라는 바이다.

아무리 프로그램을 잘 만들어 내는 프로그래머도 그 프로그램을 운영하고 서비스를 제공할 수 있도록 인프라 위에서 작동되는 시스템으로 만들어 낼 수 없다면 엔진은 만들었으나 자동차를 만들어 낼 수 없는 기술자와 다를 바 없게 된다. 또한 인프라에 대한 각각의 레이어 (이 책에서는 사용자, 웹서버, 어플리케이션 서버, DB서버, 저장소로 분리하였다.) 별로 기본적으로 알고 있어야 할 내용들로 채워져 있으므로 막연히 해당 레이어의 전문가가 해결해 주길 바라기 보다 스스로 관련 용어와 기술 스택을 익혀 충분히 감당해 볼 만한 영역으로 만들어 낼 수 있게 되기를 기대해본다.

아키텍쳐에 대한 이론과 실체를 동시에 보여주면서도 데이터의 흐름을 시각적으로 보여주는 이미지 자료들로 하여금 독자의 이해를 돕는다. 또한 물데네전세표응이라고 외우기만 했던 OSI 7 Layer 를 기반으로 각 계층별 데이터의 이동과 실전에서의 대응 방법을 자세히 담아냈다. 사실 이 책 혼자만 보고 싶은 생각도 들 정도이니 혹시 이런 리뷰 기회가 없어 절판 이후에 책의 존재를 알게 되었다면 어찌 되었을지 생각만해도 아찔하다.

IT 업계에서 일을 하게 되면 흔히 시스템이 다운되었다고 표현되는 서비스 중단 사태가 얼마나 큰 일로 다가오는지 생각만해도 끔찍할 것이라 생각한다. 후반부에서는 흔히들 말하는 무중단 서비스를 위해 어떤 인프라를 갖추어야 하는지에 대해 상세히 담아냈다. 개발자는 시스템의 성능과 안정성을 늘 생각해야 하는데, 시스템 유지에 가장 원초적인 전원 공급에서부터 물리적인 서버, 저장소, 웹 서버, 어플리케이션 서버, 그리고 네트워크 장비와 사이트의 이중화, 마지막으로 상태 확인을 위한 감시와 사고를 대비한 백업 부분까지 설명한다. 그리고 마지막으로는 성능을 향상할 수 있는 팁을 소개한다.

막연하게 알고 있는 인프라에 대해 명확하게 알기 바라고  문제가 발생했을 때 바로 문제되는 부분에서 대처가 가능할 수 있도록 지식을 쌓는 가장 쉬운 방법이 이 책이지 않을까 싶다. 최근의 추세는 가상화 또는 클라우드에서 모든 서비스를 제공하는 경우가 워낙 많다. 그러나 물리적이지 않다 한들 서버와 그 인프라를 구성하는 요소들도 결국은은 이전과 같거나 비슷한 구성으로 확장, 유지되고 있기에 필요한 지식 기반과 명령어, 관리, 통제에 대한 경험은 늘 필요하고 익혀야 한다 생각한다.

아직 프로그램의 문법 단계이거나 인프라를 구성하는데 관여하지 않는 신입 개발자라면 이 책을 통해 서비스가 어떤 인프라 구축을 통해 제공되는지 학습하는 계기가 되길 바라고, 시스템을 구축하고 서비스를 제공하는 경험이 풍부한 개발자라면 인프라를 개선하고 근래의 경향을 파악할 수 있는 기회를 얻기를 바라는 마음이다.

다시 말하지만, 프로그래머는 프로그램만 잘 작성한다고 완성되지 않는다 생각한다. 어쩌면 비교적 덜 대중적인 인프라와 서비스 분야에도 이렇게 책이 출간되는 것에 안도감을 느낀다. 문법 책 10 권 보다 이 책 한 권이 더 나을 수 있다. 10 년 뒤에 보자.



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
다양한 예제로 배우는 CSS 설계 실전 가이드
한다 아츠시 지음, 김연수 옮김 / 제이펍 / 2021년 2월
평점 :
장바구니담기


다양한 예제로 배우는 CSS 설계 실전가이드 - 제이펍

 

 

나는 흔히 말 하는 백엔드 개발자이다. 업계 통념, 아니 현실적으로 프론트 영역은 정말 답이 나오질 않을 정도로 잼병이다. 업계라고 하면 안되겠다. 그냥 내가 그러하다. CSS 를 정말 제대로 공부하고 싶어도 대부분 HTML5 책에 부록처럼 일부 끼워져 있거나 필요할 때마다 인터넷 검색을 통해 찾아 쓰면 된다는 추천이 많아 진지하게 배워보지 않았다. 이 책을 백엔드 개발자가 보게 된다면 프론트 엔드 개발자를 이해하게 될 것이고, 프론트 엔드 개발자가 보게 된다면 단순한 사용법을 지나 설계의 영역을 경험아니 매운 맛을 보게 되리라 감히 짐작해본다.



이 책에 대한 리뷰를 신청함에 백엔드 개발자의 입장에서 CSS 의 매운 맛을 보겠다 했다.

 

CSS Structure 를 담당하는 HTML Decorations 을 담당하는 정도로만 알고 있고, 실제 프로젝트에서는 inline 방식을 필요시 눈치 껏(?) 사용하는 정도에 그쳤었다. 이 책을 읽으면서 가장 맘에 들었던 것은 CSS 가 백엔드 개발자에게만 낯설고 어려운 것이 아니라 프론트 개발자에게도 혼돈스러운 영역이라는 점을 명확히 고백한다는 점이다. 점점 더 규모가 커지고 복잡해지는 웹 프로젝트에서 CSS 가 감당해야 하는 부분이 커지게 되면서 발생하는 문제들을 알려준다.

 

CSS 사용법을 알려주는가 싶더니 딱 내가 알고 있는 수준인 셀렉터(선택자) 사용법에 대한 내용으로 단 4 페이지 분량으로 끝난다. 사실 백엔드 개발자가 이 정도만 알고 있어도 다행이다 싶다. 프론트 개발자라면 앞 부분 20 페이지는 그냥 넘기기 바란다. 그대들의 고통을 진심 이해하는 바이다.

 

좋은 CSS 에 대한 네 가지 기준을 제시한다.

 

예측 가능해야 하며, 재사용이 가능해야 한다.

유지보수가 가능해야 하며 확장이 가능해야 한다.

 

이것은 프로그래밍 코드에 대한 설명과 다를 바 없다는 생각이 문득 든다. 그렇다. 이 책의 제목이 왜 “CSS 설계인지 2 장에서 명확히 보여준다. 프로그래머가 입문을 할 때 문법을 떼고 기술자로 성장하면서 가장 먼저 익히는 것이 선형적이며 절차적인 수준의 프로그래밍에서 벗어나 객체 지향 언어의 이해와 효과적인 구현에 대한 지혜를 담은 여러 구현 방법을 익히게 되는데 (백엔드 개발자의 용어 사용을 자제하고 설명한다.) 프론트 영역에서도 유사한 방법으로 CSS 를 구성하고 유지하고 활용하고 있음을 알게 되었다.

 

그저 HTML 을 꾸미는데 역할을 하는 줄 알았던 CSS 가 잘 구성된 구조와 역할 분리에 따른 다양한 설계기법에 대한 소개는 그저 혼란스럽고 복잡하게만 생각한 CSS에 편견을 충분히 무너트렸다.

레이아웃을 잡고 재사용이 가능하도록 모듈화하고, 모듈이 모여 템플릿을 만들어 내는 과정이 담겨있다. 개인적으로 CSS 에 대한 연습이나 단순한 학습의 영역을 뛰어넘어 프로젝트 또는 조직에서 CSS 를 어떻게 관리하고 설계하고 활용할 것인지에 대한 가이드 역할을 하는 책으로 보인다.

 

책장에 꽂혀 있는 많은 Web 개발과 html, css 에 대한 그 어떤 책에서도 만나보지 못한 내용들이 담겨있다. 어쩌면 너무나 당연하게 생각한 문제, “CSS 는 모두 전역이다.” 를 어떻게 감당하고 이겨내고 관리하고 활용하는지에 대한 수준 높은 가이드 북이라 생각한다.

 

여전히 프론트의 영역을 두려워하는 백엔드 개발자, CSS 의 설계 영역과 가이드를 자신의 것으로 만들어 팀을 이끄는 역량을 갖고자 하는 프론트 개발자 모두에게 추천하는 바이다.

 

얼마 전, Node Js 라는 녀석을 공부했고, NPM 을 알게 되면서 프론트 영역의 훌륭한 라이브러리들을 실시간으로 받아내는 놀라움을 경험하고 있다. 흔한 기술이겠지만, 백엔드 개발자에겐 신세계다. 언젠가 받게 될 라이브러리에 이 책을 읽고 성장한 프론트 개발자 그대의 이름을 볼 수 있게 되기를 바란다.

 


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
실무에 바로 적용하는 안드로이드 프로그래밍 - 제4판 아이 러브 모바일 (I♥Mobile) 39
크리스틴 마시캐노 외 지음, 심재철 옮김 / 제이펍 / 2021년 3월
평점 :
장바구니담기


실무에 바로 적용하는 안드로이드 프로그래밍 (4) -제이펍

이 글을 읽는 분은 대부분 개발자이고, 이미 많은 시도를 했을 것으로 생각한다. 스마트폰이 우리의 삶에 깊이 관여하기 시작했을 때부터 개발자라면 누구나 한 번은 번뜩이는 아이디어로 만든 앱을 만들고 싶었을 것이다. 책장에 이미 다섯 권은 족히 넘을 법한 안드로이드 책이 있는데, 이 책이 왜 필요할까 싶었다. 그러나 내용을 접하고 읽어가면서 처음으로 이 책은 과거가 아닌 지금을 말해주고 있구나 싶었다. 사실 이미 많은 사람들이 본다고 하는 앱 개발 관련 서적은 대부분 교재로 사용되어서 많이 팔린 책이거나 이미 버전업이 되 버린 안드로이드 운영체제를 따라가지 못하는 경우가 대부분이다. 그러나 이 책은 지금 현 시점에서 앱 개발자가 새롭게 배워야 할 내용과 개발자로서 앱 개발을 처음 시도하는 입장에서도 반드시 수행해야 할 기본기를 놓치지 않는다. 은 탄환이 어디 있을까 싶지만 적어도 이 책 한 권에서 무엇을 익힐 수 있는지 두가지 독자 방향에서 신중히 적어볼까 한다.

우선 초급자의 입장이다. 혹은 앱 개발을 시도해 본 경험이 있으나 번번히 실패한 쓰라림을 가진 사람이라면 이 책을 보자. 우선 현 시점에서 자바를 기반으로 하는 안드로이드 개발 서적을 붙잡고 있다면 과감히 책을 내려 놓고 이 책을 들도록 하자. 안드로이드 개발은 코틀린으로 하는 것이 맞다. 또한 예전 버전의 안드로이드 스튜디오 개발 툴을 설명하는 책을 갖고 있다면 내려 놓자. 개발자에게 생산성을 향상 시켜주는 다양한 기능을 사실상 포기하는 것과 다를 바 없기 때문에라도 최근에 사용되는 안드로이드 스튜디오 (개발툴)을 사용하도록 하자. 혹시 젯브레인사의 개발툴을 이미 능숙하게 사용하고 있다면 금상천화다.

불과 얼마전까지도 안드로이드 개발을 포기하게 만드는 것 중 가장 큰 허들은 익숙치 않은 XML 언어로 UI를 그린다던지, 화면 전환이나 프로그램 간 데이터 전송과 유지 문제였다. 또한 생명주기라고 하는 극악무도한 ㅎㅎ 앱 구동에 필수적으로 익혀야 했던 난해함들이었다. 이 책에서는 툴 사용법, 클래스 생성, UI생성, 생명주기 순으로 차근 차근 진도를 나가게 된다. 초급자도 정확한 지도를 가지고 출발할 수 있도록 돕는 책이다. 물론 후반부는 중급자 이상에게 흥미로운 부분들로 채워진다.

다음으로 중급자의 입장에서 이 책을 본다면, 정확히 397 페이지부터 여러분의 눈을 확 끌어 당기리라 생각한다. 사실 어떤 강의나 교재, 또는 학습의 단계도 처음 부분은 쉽게 쓰든 어렵게 쓰든 초급자들에게 맞추어져 있다. 그래서 중간 이후로 가면 레벨 조절이 실패하기 마련인데, 중급자라면 초급을 대상으로 하든 중급 이상을 대상으로 하든 난이도 보다는 내용에 집중해주기를 바란다. 개발자라면 웹이든 앱이든 일반 데스크톱 상대로 하는 어떤 프로그램이든, 초기에는 문법을 배우고 그것을 구성하는 클래스 또는 파일, 그리고 업무를 효율적으로 사용하게 되는 패턴까지 학습하게 되는데, 사실 가장 목이 마른 것은 그래서 뭘 만들려고 하는 순간 결정적으로 뒷배를 책임져주는 아키텍처는 무엇이고 어떻게 배워야 하는건지 궁금해 할 것이다. 당신이 뼈 속까지 개발자라면 말이다. 데이터를 어떻게 다루고 그것을 어떻게 보여주며 어떻게 처리할 것인가의 문제는 결국 프로그래머라는 직업을 가진 이들의 평생 숙제 아닌가 말이다.

이 책에서 비교적 최근의 아키텍트 구성인 MVVM Jet Pack 구성을 보여준다. 기존에 없던 패턴은 아니겠지만, 이러한 패턴에 대한 스스로의 정확한 정의 또는 인지가 없으면 MVC 와 같은 패러다임에 갇히는 수가 생기거나 새로운 아키텍트의 장점을 전혀 누리지 못하는 상황이 벌어질 수 있다. 책에서도 600 페이지가 넘는 많은 내용으로 충분히 설명하고 있지만, 코틀린 언어 사용에 숙련되어 여러분의 수준을 끌어올리는 학습을 원하거나 안드로이드 아키텍처에 대한 깊은 이해와 실습을 통한 학습은 https://edu.nextstep.camp/ 사이트를 이용하기를 권하는 바이다.

다음으로 놀라운 점은 아직까지도 갑론을박이 많은 TDD ( Test Driven Development )에 대한 테스트 유용성에 대한 논란을 잠재우러 왔다는 듯이 작정하고 테스트 섹션을 마련했다는 점이다. 사실 어떤 기능이나 새로운 버전의 SDK의 사양은 어디서 배우든 익히면 그만이지만, 개발자로서 개발에 앞서 혹은 개발 중 테스트 코드 작성에 대한 내용은 두 말할 필요없이 중급 이상 개발자들에게 반드시 필요한 내용이지 않을까 싶다. 최근 구직 구인 트렌드를 보더라도 테스트 코드 작성에 익숙한 개발자를 찾고, 테스트 코드를 작성하는 회사를 찾는 개발자가 늘고 있다.

마지막으로 언급하고 싶은 내용이 있다. 어쩌면 앱 개발자의 계륵과도 같은 하이브리드 앱 또는 크로스 플랫폼을 통해 앱을 만들 수 있다는 달콤한 유혹들을 많이 받을 것으로 생각한다. One-Source-Multi-Using 은 아주 강한 매력임은 분명하다. 그렇지만 장기적인 관점에서는 네이티브 앱 개발을 절대 멀리하지 말고 한번은 이 책을 통해 반드시 격어 보기를 바라는 마음이다. 이에 대한 추가 설명은 유투브에서 드림코딩 이라는 채널을 운영 중인 엘리님의 동영상을 시청하는 것을 권유하는 것으로 대신 할까한다. https://youtu.be/2AS0WAOX8_8

어떤 것을 배우기로 맘 먹는 일은 어렵다. 그러나 그 것을 제대로 배우기에 도움되는 책을 만나기는 더욱 어렵다. 20214월을 시작하는 지금, 벚꽃과 함께 만나게 된 이 책을 통해 안드로이드 앱을 만들어 보고자 한다. 내년 벚꽃 필 무렵에는 혼자가 아니길 바라며 소개팅 앱을 만들어야겠다. 만들거다.

"제이펍(Jpub) <IT 전문서 리뷰어> 활동을 목적으로 책을 제공받아 작성된 서평입니다."



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo