본문 바로가기
[Review]/Book

[도서 리뷰] 텐서플로 라이트를 활용한 안드로이드 딥러닝

by 해피빈이 2021. 8. 22.

> 진행에 앞서

나의 직업상 안드로이드는 매우 친숙하고 가장 두려움이 없는 영역이다. 반면에 머신러닝에 대한 부분은 학습이 쉽게 되지 않아서 어려운 영역중 하나라고 생각한다.

이러한 두가지 영역을 같이 다룰 수 있는 주제가 바로 안드로이드에서 텐서플로 라이트를 활용하는 것이다.

약 일년 전부터 이 주제에 대해서 궁금해하고는 있었기 때문에 가벼운 테스트로 접근까지는 했었으나 파이어베이스의 가격정책도 함께 고려되는 상황이었기 때문에 쉽게 반영하기는 어렵다고 생각하고 있었다.

그러던 중 이런 책을 발견하게 된다.

 

> 책에 대한 간단한 정보

 

이 책은 Tensorflow Lite에 대한 책이다. 안드로이드에 적용하기 좋은 것이 바로 텐서플로 라이트이기 때문에, 안드로이드를 빼놓고서 텐서플로 라이트를 이야기 하기가 어려웠을 것이며, 반대로 텐서플로 라이트를 빼놓고서 안드로이드의 머신러닝을 이야기하기는 어려웠기에 두가지를 다룬 책으로 보여진다.

 

앞 표지

> 인상깊은 부분들

 

책의 구성은 심플하다

책의 구성은 심플한 편이다. 그래서 구성은 매우 이해하기 편했다.

일단 환경 구축에 대한 부분에서 시작해서, 안드로이드 앱 개발에 대한 설명, 그리고 딥러닝 모델 개발에 대한 설명으로써 가볍게 기본을 다져준다.

그리고 이렇게 다진 기본으로 딥러닝 모델을 활용하여 안드로이드 앱 개발을 어떻게 해 나갈 것인지 풀어낸다.

실습을 함께 진행하기 때문에 좋은 부분이지만, 이것만으로 충분하지 않을 수 있기에 성능 향상 및 최적화까지 다룸으로써 좀 더 확실한 방향을 제시하는 데 도움을 주고 있다고 생각한다.

 

안드로이드의 딥러닝 개발과 관련한 전체적인 개발 프로세스

안드로이드에서 텐서플로 라이트를 활요하기 위한 전체적인 개요를 다이어그램으로 보여준다.

큰 그림이 궁금할 수 있기 때문에 아주 간단한 그림이지만, 꼭 필요한 부분이다. 이러한 부분 때문에 앞으로의 전개가 막막하지는 않았다.

 

텐서플로 라이트 모델 개발에 대한 워크플로

전체적인 그림 외에도 세부적으로 들어가서 텐서플로 라이트 모델에 대해서 워크플로우도 나타내었다.

이러한 묘사로 인해, 앞으로 모델을 어떻게 만들어서 기기에 배포할 것인지도 막막하지 않게 도와주었다. 딥러닝에 대한 깊은 이해가 없이도 작업 자체를 들어갈 수 있도록 만드는 중요한 요소라고 생각한다.

 

도움이 되는 모델 및 데이터셋에 대한 사이트 목록

직접 아나콘다를 설치하고 그 위에 파이썬 및 텐서플로를 설치한다고 하여도, 실제 서비스 가능한 모델 생성을 하기 위해 학습하는 것은 어려운 일이다. 이것을 이미 도울 수 있도록 데이터셋을 형성한 사이트가 있었으며, 그러한 사이트를 이곳에 기록하여 놓았다.

연습에서 그치지 않고 실제로 작은 서비스라도 진행하기 위해서는 꼭 필요한 지식이라고 생각이 든다.

 

이 책의 대상이 되는 독자와 이 책의 목표를 명시해 놓은 뒷표지

주요 내용 및 추천사를 포함한 내용을 뒷 표지에 담아놓았다. 모바일을 활용하여 딥러닝을 어떻게 다룰지 궁금한 사람들을 위해 다루었다고 적혀있다.

특히 추천사 중 생소한 코드를 마치 페어프로그래밍 하듯이 한 줄 한 줄 이해시켜 준다는 말이 와 닿았다.(그렇다고 아주 친절하지는 않지만, 실습 내용은 대부분 그런 방식으로 적혀있었다.)

 

 

나의 주피터 실습 화면

이 책을 읽으며, 실습 위주의 책이기에 주피터노트북을 직접 설치하고, 진행하였다.

끝까지 진행하지는 못했지만, 다행히도 큰 오류 없이 진행이 가능했으며, 그렇기에 위처럼 직접 pixabay에서 가져온 이미지가 잘 분석되는 것을 확인할 수 있었다.

주피터노트북을 말로만 들었는데, 이렇게 활용해 보아 좋은 기회라고 생각이 들었으며, 이 경험으로 좀 더 친숙해진 느낌이다.

 

 

> 괜찮은 부분

1. 주제 선정의 시기 적절성

안드로이드와 텐서플로라이트라는 주제는 상당히 유니크하지만 필요한 주제라고 생각이 들었다. 인터넷에서의 자료도 여러 자료가 있지만, 깊은 이해를 요하는 분야가 포함되어 있기에 생각보다 적절한 자료를 찾기도 어려웠다. 그런 상황에서 시대에 맞는 주제라고 생각이 들었다. 많은 기술이 융합되었을 때 가치가 배가되어 올라가듯이, 이 두 기술도 마찬가지의 상황으로 처해있다고 생각한다. 나를 포함하여 이 책을 보는 모바일 개발자가 딥러닝에도 함께 관심을 가지고 친숙해졌으면 하는 바람이 있다.

 

2. 매우 깔끔한 구성

앞에서도 언급했지만, 책의 구성은 매우 간단하다. 처음 도입을 제외하곤, 안드로이드에 대한 기본지식+딥러닝에 대한 기본 지식을 익힐 수 있도록 하였으며, 그 내용 또한 복잡하지 않다. 그리고는 그 두가지를 활용한 앱을 만들어 볼 수 있도록 하며, 그것을 가볍게 고도화 할 수 있는 것으로 결론에 이르도록 하였다. 책 자체가 두꺼운 책은 아니지만, 구성 역시 복잡하지 않기에 편하게 읽혀서 매우 높은 만족감을 주었다.

 

3. 도표의 적절한 활용

설명을 위해 도표를 적절히 활용했다. 특히 플로우와 관련된 부분은 맥락 이해에 도움이 되었으며, 각 컴포넌트 구성을 이해하기에는 스택형식으로 그려서 표현한 그림이 이해에 도움이 되었다. 칼라 구성이라고 모두 꼭 필요하다고 생각하지는 않지만, 이 경우에는 적절히 활용했기에 강조할 부분도 강하게 강조가 되었으며, 그 중심으로 말하고자 하는 바를 바로 캐치하기가 편했다. 저자는 평소에도 설명할 때 그림으로 잘 표현하는 분이라는 생각이 들었다.

 

> 아쉬운 부분

1. 대상 독자 선정에 대한 의문

이 책이 바라보는 독자가 어떤 독자인지는 사실 좀 의문이 들었다. 안드로이드 입문자가 바라보기에는 사실 안드로이드에 대한 기본 설명이 충분한 편은 아니었기 때문이다. 그래서 차라리 안드로이드는 어느정도 기본 지식이 있는 사람이 본다는 가정하에 텐서플로 라이트에 대한 설명을 좀 더 할애했으면 좋았겠다는 생각이 들었다. 케라스나 모델 개발 등에 대한 지식이 단순이 실습을 따라가는 수준을 넘어서기에는 설명이 충분하지 않다고 생각되었기 때문이다.(나 스스로도 아직 이해가 덜 된 상태로 겨우 따라간 느낌이다.) 그래서 두마리 토끼를 잡으려다가 두마리 다 맛만 보고 지나간 느낌이 들기도 한다.

 

2. 자바 기준으로 된 안드로이드 설명

이 책은 안드로이드 소스 진행시 자바를 기준으로 설명하고 있다. 하지만 현 시점에서 최근 발행된 많은 책이나 자료는 코틀린을 기반으로 하는 경우가 많기 때문에 최근 출시된 책임에도 자바로 적혀있는 것은 이해가 잘 되지 않았다. 코틀린으로 진행할 경우 코드도 더 간결해지기 때문에 설명에도 불필요한 부분을 줄일 수 있으며, 최신 라이브러리를 사용하기에도 좋을텐데, 진행하면서도 굳이 자바로 진행했어야 했는지에 대한 의문이 남았다.

 

3. 스크린 샷 활용시 다크모드로 인한 시인성 떨어짐

설명 자료로 활용하는 부분 중 안드로이드 스튜디오와 관련된 캡처부분이 여럿 존재하였다. 이 부분에 대한 테마를 Darcula로 설정하여 진행한 부분이 눈에 띄었는데, 이렇게 진행할 경우 시인성이 떨어지는 것이 아쉬웠다. 실제 프로젝트 진행할 때에는 본인도 눈의 편안함을 위해서는 Darcula를 활용하지만, 책의 경우 흰색 글씨만 있는 것이 아니기에 대비가 강한 색을 사용하는 글씨를 제외하고는 잘 보이지 않는 부분도 존재하였기에, 흰 색의 테마로 캡쳐화면을 활용했더라면 좀 더 눈에 띄도록 할 수 있지 않았을까 생각이 들었다.

 

> 개인적인 평점

- 가격: 8 / 10

- 내용: 7 / 10

- 디자인: 8 / 10

- 구성: 9 / 10

 

> 정보

저자: 임태규

출판사: 한빛미디어

가격: 27,000원

전체 페이지: 368페이지

 

** 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

반응형

댓글