'2017/06'에 해당되는 글 2건

  1. 2017.06.25 Effective Debugging - 한빛미디어
  2. 2017.06.18 비즈니스 블록체인 - 한빛미디어
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