2017. 8. 27. 23:06 독서 영역/Hanbit Readers
728x90

 

<나도 피아노 폼나게 잘치면 소원이 없겠네> - 한빛라이프

 

이번에 리뷰하게 된 도서는 IT도서를 벗어나서 메마른 감성을 녹여줄 음악 도서인 피아노 교재 책으로 선택했다.

 

이 도서를 선택하게 된 동기는 예전에 피아노를 독학하고 싶어서 전자피아노는 구매해놓았지만 진열만 되고 있는 수준이었다. 하지만 이 도서 제목을 보고 "나도 폼나게" 피아노 치고 싶다는 마음이 뜨겁게 올라와 선택하게되었다. 제목과 표지가 한 몫 한 것 이다.

 

 

그럼 이 책에 독자층은 어떻게 되는지 궁금하지 않나?

나와 같은 완전 초보자인 사람들도 피아노를 폼나게 칠 수 있는 것이 사실일까?

 

독자층은?

1. 악보를 볼줄 알지만, 임의로 코드 반주를 넣는게 힘든 사람.

2. 피아노를 다년간 쳐왔지만, 한단계 더 발전하여 폼나게 연주하고 싶은 사람.

3. 스피커로 들은 음악(곡)을 악보 없이도 스스로 카피해 연주하고 싶은 사람.

 

 

어랏 ...

독자층을 읽다보니 피아노 완전 초보자를 위한 책은 아니라는 것을 알게 되었다.

책에서는 피아노 완전 초보자인 경우 이전 시리즈인 <나도 피아노 잘 치면 소원이 없겠네>를 볼것을 추천하고 있다.

 

그래서 결국 나는... 와이프의 도움을 받아 함께 책을 보고 연습하게 되었다.

 

와이프 의견 : 이 책이 코드반주법을 다루는 책으로써 초보자가 코드를 먼저 알지 못하면 이 책을 응용하기에는 어려운 부분이 있다. 그런데 일반 코드(C, G, F 등)를 알고 있는 사람이라면 책에 나온데로 코드를 응용하면서 재미를 느낄 수 있을것 같다. 하지만 코드를 모르는 초보자가 보기에는 무리가 있는 책이다.

 

 

책을 통한 경험들

 

코드를 배우자!

머리말을 보다보니 마음에 드는 설명이 있었다.

있어 보이는 연주를 하기 위해서는 코드를 연주하는게 가성비가 좋다는 표현이 마음에 들었다.
한곡에 쓰인 코드가 10개가 넘지 않기 때문에 기본 코드와 코드를 응용한 메이저, 마이너, 7코드 등을 기억하여 연주할 수 있다면 폼나게 칠 수 있다고 한다!

기본코드, 메이저, 마이너, 7코드까지는 외우고 응용하는데 노력을 하면 될 것 같았지만 그 외에 하프디미니시 코드 마이너 세븐 플랫파이브 코드(m7b5) 등은 이름부터 복잡하고 응용하기에는 쉽지 않았다. (정말 화성악 공부하는 사람들 아니고서는)

 

<피아노 코드표>

 

 

한글 음이름에서 영어 음이름으로.

초등학교 때 음악시간에 배웠던 도레미파솔라시도를 다라마바사가나다로 장조, 단조로 배웠는데 저자는 가능하면 영어 음 이름으로 익히는 것이 훨씬 더 직관적이고 외우기쉽다라고 한다. 내림 나장조, 다장조 이런말을 C Major Key, B Minor Key 등과 같이 말이다.

사실 이제 성인이 된 이상 한글음이름은 거의 쓰지 않는 것 같다. 그러니 영어 음이름과 친숙해져야 겠다.

 

<3도 음정>

 

 


책을 보면서 좋았던점 또는 개선할 점은?

책에 전체적인 구성은 책을 보고 따라하는데 무리없이 편집되어있어서 좋았다.

특히 사진과 동영상(QR코드) 첨부가되어있어서 바로바로 실전 연습을 하는데 큰 도움이 되었다.
건반에 올려진 손 모양 사진과 유튜브의 강좌를 통하여 글로만 되어있을 때보다 이해하는데 수월했다.

만약 눈으로만 보고 실제 피아노로 쳐보지 않는다면 아마도 늘지 않을 것이다.

 

또한 중간중간 독자들이 궁금해할만한 용어들을 정리해놓아서 내용을 이해하는데 도움이 되었다.

 

특별하게 개선할점은 모르겠는데, 와이프 의견으로 용어정리가 조금 더 있었으면 하고 한 곳에 모아서 보여주는 것도 괜찮을 것 같다는 의견이 있었다.

 

 

마무리를 해보며...

일단 내가 피아노 초보자인 내가 읽기에는 기초 선수지식이 필요한 것 같다. 하지만 어느정도 기반 지식이 있는 분들이 보신다면 코드를 배워서 폼나게 칠 수 있을 것 같다는 생각이 든다!!

 

이론도 이론이지만 결국 연습만이 살길이다~

 

<연습곡 - City of Stars>

728x90
posted by acedon
2017. 7. 20. 20:59 독서 영역/인사이트
728x90


 




이번에 리뷰하게 된 도서는 "안드로이드 프로그래밍 Next Step"이라는 활용서이다.

활용서라고 말한 부분은 이 도서가 안드로이드 기초부터 소개하는 도서가 아닌 실제 개발을 진행하면서 도움이 될만한 내용들로 구성되어 있기 때문이다. 


도서 제목도 책을 보고나니 "Next Step"이라고 칭한 부분이 이해가되며 기초단계에서 한단계 점프업을 할 수 있게 되는 느낌을 받을 수 있었다.




이 도서의 독자층은?

  • 안드로이드 앱을 만든 경험이 있는 개발자를 대상으로 함
저자의 소개글 중
" 앱을 개발하면서 자신이 정말 제대로 만들고 있는지, 문제를 올바르게 해결하고 있는지 의문을 가지고 있다면 이 책이 도움이 될 것이다"라고 한 부분에서 과연 어떨지? 기대가 되는 부분이었다.

사실 저자는 독학으로 프로그래밍을 배우고, 현재는 네이버에서 근무한다고 하는데 독학으로 배운사람의 내공은 정말 어마무시하다는 것을 개인적인 경험을 통하여 알고 있기에 다시 한번 기대가 되었다.



어떤 내용을 다루나?
    • 앱에서 생기는 문제는 주로 컴포넌트를 잘 다루지 못한 부분에서 발생한다.
      라는 저자의 경험을 가지고 어떻게 해결해나갈 수 있는지에 대하여 설명하고 있다.
      • 목차는 아래와 같은 내용들로 구성되어 있다.
        • 1장, 안드로이드 프레임워크
        • 2장, 메인 스레드와 Handler
        • 3장, 백그라운드 스레드
        • 4장, Context
        • 5장, 액티비티
        • 6장, 서비스
        • 7장, 콘텐트 프로바이더
        • 8장, 브로드캐스트 리시버
        • 9장, Application
        • 10장, 시스템 서비스
        • 11장, 구현 패턴


    좋은 느낌?

    일단 "Next Step"도서는 확실히 번역서가 아닌 국내 저자가 쓴 글이라 그런지 글이 어색하다거나 하진 않았다.
    그리고 안드로이드 프레임워크 소스를 가지고 설명하며 원리 파악을 시켜주려는 부분이 좋았다.
    아래는 액티비티 생명주기를 친절하게 소개하고 있다. (사실 이 책에는 생각보다 이미지가 별로 없다. 몇개 없는 그림중에 하나이다. 하하)

    또한 아직은 초보자 수준인 내가 볼 때 아직 겪어보지 못한 문제들이지만 간접체험을 하면서 생각을 넓힐 수 있는 계기가 된 것 같다. 

     

     




    더 좋은 방법은 없을까?


    코드를  설명하는 방식에서 다른 방안은 없을지 고민을 해보게 된다. 물론 현재 방식 코드에 번호를 표시해놓고 글로 그 번호를 지칭하면서 설명하는 방법도 괜찮다. 다만 코드가 이전페이지에 있다면 왔다갔다하면서 책을 봐야 했기에 더 좋은 방법을 찾아볼 필요가 있겠다. 그리고 간혹 코드에는 ... // 로 축약되어있는데 코드 설명이 들어간 부분들도 있었다. 내 상상으로 그 코드를 구현해보는 재미가 있긴 하다. (하하)




    끝으로 ...


    "안드로이드 프로그래밍 Next Step"도서는 한마디로 요약해보자면

    <<사수 개발자가 들려주는 경험담 및 노하우>> 라고 할 수 있을 것 같다.

    지금까지 본 내용들을 모두 이해하진 못했지만 분명히 필요할 시기가 닥친다면 이 책을 다시 꺼내들 것 같다!

    728x90
    posted by acedon
    2017. 6. 25. 03:46 독서 영역/Hanbit Readers
    728x90



    이번에 리뷰하게 된 도서는 "Effective DEBUGGING(부제 : 디버깅 지옥에서 탈출하는 66가지 전략과 기법)"이란 무시무시한 비법이 들어있을것만 같은 그런 책이다.

    일단 이 책을 처음 받자마자 느낀점이 2가지가 있다.

    첫번째, "책이 매우 얇다"라는 것이다. 255페이지라는 분량임에도 불구하고 일반책들의 2/3정도 두께이다.
    두번째, "표지의 감촉이 매우 달랐다"라는 것이다. 여지껏 만져본 책 표지에서는 느낄 수 없었던 그런 느낌? 우레탄 느낌이라고 해야 하나? 매우 감촉이 좋았다. 다만, 지문자국이 너무 많이 남는다는 것은 함정!


    자, 제목처럼 효과적인 디버깅을 위한 방법 66가지 전략과 기법이 매우 궁금해진다. 

    먼저 이 책의 독자 대상은?
    • 경험이 풍부한 개발자 대상
    라고 되어 있지만 
    경험이 풍부한 개발자>라면 아마도 66가지의 내용중 2/3는 이미 알고 있거나 실천하는 방법일 것이라 생각한다.
    경험이 풍부하지 않은 개발자>라면 신세계 또는 들어보았던 방법들로써 매우 유익할 것 같다고 생각한다. 


    <Effective DEBUGGING>의 구성은?
    총 8가지 범주에서 활용할 수 있는 66가지 디버깅 기법들을 소개하고 있다.
    • 고차원 전략
    • 범용적인 디버깅 기법
    • 범용 도구를 활용한 기법
    • 디버거 활용법
    • 프로그래밍 기법
    • 컴파일 시간 기법
    • 실행 시간 기법
    • 멀티스레드 코드 디버깅하기
    챕터 1~8까지 주어졌지만 순서대로 읽을 필요는 없으며 필요하거나 관심가는 분야부터 읽으면 될 것 같다.



    내가 선택한 Effective DEBUGGING 방법은?

    자 그럼 이 책에서 소개하고 있는 66가지 중 직접 경험하고 공감갔었던 방법들을 선별해보았다.


    • 아이템1. 모든 문제를 이슈 추적 시스템으로 관리하기
    • 아이템9. 성공적인 디버깅을 위한 마음가짐
    • 아이템10. 효율적으로 문제 상황 재현하기
    • 아이템11. 코드 수정 후 결과 확인까지의 시간 최소화하기
    • 아이템18. 원격 디버깅 환경 구축하기
    • 아이템26. 버전 관리 시스템으로 버그 원인과 히스토리 추적하기
    • 아이템32. 루틴 사이의 호출 흐름 추적하기
    • 아이템35. 코어 덤프 다루기
    • 아이템39. 동료 검토하기
    • 아이템42. 단위 테스트 사용하기
    • 아이템51. 정적 분석 도구 활용하기
    • 아이템55. 오류가 발생한 즉시 프로그램 중단하기


    경험상 선별된 위 12개의 방법들의 내용은 책을 읽어보시면 다들 공감하실 것이라 예상된다.

    "아이템9. 성공적인 디버깅을 위한 마음가짐"이라는 방법이 효과적인 디버깅을 하기 위한 가장 1순위가 아닐까 싶다. 

    "아이템39. 동료 검토하기"에서는 "고무 오리 기법(Rubber duck technique)"이라는 것을 소개한다. 어떤 의미인지 풀어보면; 자신이 작성한 코드를 다른 사람에게 설명하는 방식으로 문제를 분석하고 찾는 기법으로써 의심되는 코드 또는 포인트를 동료에게 차근차근 설명하다보면은 자신이 실수하고 있던 부분을 스스로 발견하게 된다는 내용이다.

    아이템39번 같은 경우는 정말 공감한다.

    누군가에게 설명하려고 하면 자신의 코드를 조금 더 냉정하게 바라보게 된다.

    그 때 자신의 실수를 확인할 수 있는 것이다. 놀랍다 놀라워!



    책을 덮으며...

    이 책의 저자는 35년 이상의 경험을 가지고 책을 썼다고 한다. 

    분명히 이 책에서 설명하고 있는 66가지 방법 이외에 수많은 방법들이 있을 것이다.

    아마도 그 중에서 이 66가지 정도는 이해하고 실천 또는 활용하기를 바라는 핵심포인트만 나열했을것이란 생각이 든다. 물론 책의 66가지 방법이 다양한 IT분야에서 활용할 수 있는 방법은 아닐 수 도 있다. 하지만 실질적인 방법은 되지 않더라도 충분히 시야를 넓혀줄 수 있는 그런 내용임은 틀림이 없다. 


    개인적인 생각으로는

    이 책은 경험많은 개발자분들이 읽으신 후 후배 개발자분들에게 조언해주는 방법도 매우 좋을 것 같다는 생각으로 글을 마친다.  

    728x90
    posted by acedon
    2017. 6. 18. 18:26 독서 영역/Hanbit Readers
    728x90



    이번에 리뷰하게 된 도서는 "비즈니스 블록체인"이다. 

    일단 책을 받은 후 첫 느낌은 "무거운 느낌이 드는 주제"이구나를 책 표지부터 느낄 수 있었다. 

    어두운 바탕에 블록체인을 표현한듯 보이는 블록들과 그 블록들을 연결하는 수많은 점들이 예사롭지 않았다.


    <비즈니스 블록체인>도서 구성은?

    • 블록체인 정의
    • 블록체인의 직면한 문제점
    • 블록체인 활용방안
    • 블록체인의 목표(도달점)

    도서의 구성은 블록체인이 무엇인지 전혀 알지 못하는 사람이라도 차근차근 읽을 수 있도록 구성되어있다.



    사실 블록체인이라는 말은 그다지 많이 들어보지 못했을 것이다. 

    하지만 비트코인이라는 단어는 아마 몇 번씩은 다들 들어보았을 것이라 생각이 든다.

    비트코인이라는 사례에서 블록체인은 비트코인의 기반 기술이라고 볼 수 있다.


    그럼 블록체인이 무엇이고 어떤 특징이 존재하기에 비트코인의 기반기술로 사용되었는지 이 책을 통하여 확인해볼 수 있다.


    본문을 읽기전에 프롤로그의 내용이 매우 인상깊어 몇 구절 나열해 본다.


    프롤로그 내용 중

    아직까지 블록체인이 당신에게 충격적인 것으로 다가오지 않았다면, 확신하건대 그런 순간이 곧 올 것이다.

    블록체인은 그 시작과 끝이 신뢰라 해도 과장이 아니므로 신뢰층이라 불러도 무방하다.

    블록체인은 세대를 거듭해 뿌리 내린 우리 사회의 지배구조, 생활방식, 비즈니스 모델 그리고 국제 기구들을 향해 변화를 촉구하는 거대한 촉매제다.



    "블록체인"이 뭐에요??


    블록체인은 정해진 틀이 없다고 저자는 말하고 있다.

    그리고 다양한 성격을 가지고 인터넷을 기반으로 다양한 형태를 취할 수 있다고 한다.


    이런 블록체인을 저자는 3가지 측면에서 정의를 내리고 있다.


     기술적 측면 

     공개적으로 열람 가능한 분산 원장을 유지하는 백엔드 데이터베이스

     비즈니스 측면

     중개자 없이도 개인간(P2P)의 거래, 가치, 자산 등을 이동시킬 수 있는 교환 네트워크

     법적 측면

     블록체인은 거래를 검증해주므로 종전의 신뢰 보증 기관을 대체하는 수단



    이 3가지 측면을 기반으로 책에서는

    블록체인의 역할, 마주한 문제점들(기술적 진입 장벽, 사업적인 장벽, 법적 장벽), 그리고 앞으로 나아가야할 방향들에 대해서 많은 이야기를 쏟아내고 있지만 결국 한가지 키워드로 그 모든 내용이 집약되게 된다.


    핵심 키워드로써 "탈중앙화"를 이야기할 수 있을 것 같다. 


    블록체인의 존재의 이유가 이 탈중앙화 기술을 구현하는 것이라고 봐도 무리가 없을 것 같다.

    위에서 언급한 3가지 측면과 블록체인의 많은 특징들로 인하여 탈중앙화를 이뤄낼 수 있을 것 같다는 생각이 든다.


    예로 금전거래 시 모두가 신뢰하는 중개자(은행)를 통하여 거래가 이뤄지는데 블록체인을 통하면 그 신뢰를 대신 해줄 수 있기에 이제는 중개자가 필요 없게된다는 말이다.



    먼 미래에는 블록체인을 통하여 탈중앙화를 이룰 수 있을지 모르고, 탈중앙화로 인하여 어떤 새로운 패러다임이 등장할지는 모르지만 그게 꼭 필요한가? 라는 생각도 해보게 된다.


    이번 <비즈니스 블록체인>이라는 도서를 통하여

    블록체인이 만들어 갈 세상을 엿볼 수 있었던 좋은 계기가 된 것 같다!




    728x90
    posted by acedon
    2017. 5. 21. 23:11 독서 영역/Hanbit Readers
    728x90


    종이접기 책으로 오해할 수 있을법한 표지를 소유한 "직접 설계하고 개발하는 IoT 백신"을 소개한다.

    표지는 정말 아기자기 하지만 반면에 책 내용은 "백신"이라는 주제를 다루고 있는 반전 매력을 가진 책이다.


    불과 몇년 전만 해도 "IoT" 또는 "사물인터넷"이라는 단어가 매우 낮설었을 것이다.
    최근들어 IoT 라는 단어를 심심치 않게 듣기도 하고 뉴스나 방송을 통하여 접하고 있기 때문에 낯설지 않게 느껴진다.

    IoT를 간단하게 설명해보자면?
    이제 우리 생활에 사용되는 가전제품들이 궁극적으로는 모두 연결되는 세상을 가리켜 "IoT세상"이라고 할 수 있을 것 같다. 연결된다 라는 의미는 바로 인터넷을 통하여 서로 통신을 할 수 있다는 이야기다. 
    현재 대표적인 예를 들어 보자면 "핸드폰"을 이야기할 수 있겠다.

    조금만 더 시간이 흐른다면 냉장고나 세탁기, 자전가, 신발 등 다양한 제품들이 인터넷에 연결되어 수많은 정보들을 주고 받게 될 것이다. 이런 정보들은 특히나 예민한 "개인정보"들이 될 것인데 이 정보들을 보호하기 위해서는 지금 이 책(IoT백신)에서 설명하는 백신을 통하여 보호해야 할 것이다.


    서론이 길었다. 하하.
    "직접 설계하고 개발하는 IoT백신"의 특징을 몇 가지 이야기 해보겠다.

    이 책은 목적성이 뚜렷하다. 
    IoT용 백신을 만드는 것이다. PC용 백신이 아닌 IoT 디바이스간 해킹에 대한 보호를 위한 백신을 만들기 때문에 한정된 자원에 대해서 많은 고민을 하면서 실습을 진행하게 된다.
    물리적인 IoT장치를 가지고 있지 않더라도 가상머신 2대를 이용하여 개발 및 테스트를 진행할 수 있다.

    실용적인 설계를 추구한다.
    저자가 외국인이 아니고 백신업체에서 많은 경험을 가지고 있는터라 경험을 풀어내는 내용들이 한국에서 개발하고 있는 입장에서 보았을 때 와닿는 부분들이 많았다. 번역서가 아니라 생각보다 저자가 표현하고자 했던 내용들을 왜곡 없이 접할 수 있는 것은 장점 중에 하나인것 같다.
    또한 다양한 설계 방법들이 있지만 저자의 경험을 바탕으로 "프로토타입" 개발프로세스로 진행하는데 생각보다 유용하다는 생각이 들었다.
    또한 설계 시 UML을 사용하지만 틀에 얽매이기보다는 적재적소에 알맞게 사용하는 방법들에 대해서 이야기 하는 부분이 마음에 들었다.

    개발 라이프 사이클을 경험할 수 있다.
    백신 개발을 하기 위하여 요구사항 분석부터 설계 구현 테스트까지 전체적인 개발 라이프 사이클을 경험할 수 있도록 구성되어 있다. 다른책들과의 차이가 있다면 테스트 부분에 직접 QA팀의 입장에서 테스트케이스를 도출하고 테스트를 진행하는 사항까지도 꼼꼼히 설명하고 있는 부분을 들 수 있겠다. 책을 한번 훑고 난다면 개발이 어떻게 시작되고 끝맺음이 되는지 알 수 있는 좋은 계기가 될 것 같다.

    리눅스 커널을 접할 수 있다.
    리눅스 커널이라고 하면 어렵고 손대기 힘든 미지의 세계라고 생각들기 마련이다.
    IoT백신을 제작하면서 리눅스 커널 내부를 접할 수 있게 되고, 애플리케이션 및 리눅스 드라이버도 만들어 볼 수 있는 계기가 된다. 또한 직접 운영체제인 리눅스 커널 이미지를 제작하여 내가 만들 커널로 사용한다는 것은 생각만해도 짜릿하지 않은가?
    리눅스 드라이버를 공부하고 싶어도 무엇부터 공부해야 할지 막막할때가 많을텐데 백신을 직접 제작해보면서 드라이버를 접할 수 있기 때문에 생각보다 좋은 시작 포인트가 될 것 같다는 생각이 든다.


    위와 같이 책을 읽으면서 좋은 느낌들을 받았다.
    하지만 아쉬운점도 눈에 띄었다.

    책을 읽는 도중에 추가적인 설명이나 자료에 대해서 저자가 운영하는 홈페이지에서 확인 할 수 있도록 안내하고 있다. 그런데 이 홈페이지를 가보면 아직 제대로 된 정보가 업데이트 되어있지 않았다. 분명히 책에는 해당 홈페이지에서 정보를 확인할 수 있다고 되어있지만 실상 홈페이지에 접속해보면 내용이 없어서 매우 당혹스러웠다. 이 책은 이제 시리즈로 작성된다고 하는데 이 부분에 대해서는 빠른 조치가 필요할 것 같다. 


    이 책을 덮은 후 다시 한번 생각을 정리해보니
    IoT백신이라는 주제도 흥미로웠고, 국내 저자가 들려주는 생생한 경험담도 좋았다.
    그리고 리눅스 커널 및 드라이버 개발에 관심이 있는 학생들이라면 처음 입문하는데 많은 도움이 될 것이라 생각된다.





    728x90
    posted by acedon