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

 최근 개발 기초 공부를 다시 하려던 와중에 눈에 띈 책이었습니다. 특히 코딩테스트 연습을 하면 '아는건데 기억이안난다' 라던가 ' 이걸 해결해주는 알고리즘이 있었는데 뭐였더라?' 하는 경우가 많았는데 이책을 통해서 극복 해 볼 수 있을까 해서 책을 선택하게 되었습니다.

결론부터 말하자면 어느정도 극복 되었습니다. 보통 알고리즘이라고 하면 떠오르는 정렬 부터 시작해서 콜렉션, 트리, 그래프 등 알고리즘들으 잘 아루르면서 설명 해 주고 있습니다.  다만 책의 대상독자에게도 말하듯이 처음 알고리즘을 접하시는 분들보단 CS지식이 어느정도 있고 자료구조에서 알고리즘 맛보기정도는 해보신 분들에게 추천드립니다. 

 알고리즘을 설명하면서 거기에 필요한 자료구조도 어느정도 알려주고 있어서 책을 읽을때 굳이 다른 자료를 찾아볼 필요가 없던것도 장점이었습니다. 

 책의 예제코드가 파이썬으로 되어있는데, 파이썬에 익숙하지 않은 저로서는 조금 어려울 뻔 했으나 라인바이라인으로 설명을 잘 해주고있어서 무리 없이 넘어갈 수 있었습니다. 다만 파이썬 코드에 익숙하신 분들이라면 훨씬 더 이해가 쉬웠을거라는 생각이 드네요.

코팅테스트 준비 혹은 저처럼 기본 공부를 한번 더 해야겠다는 생각을 하신 분들에게 추천드릴만한 책입니다.

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

 

TLDR;
 구관이 명관이다. 디자인 패턴 책 중에 이 책이 최고인지는 모르겠지만 상위권에 속하는 책임을 확신한다.

 

헤드퍼스트 디자인패턴. 개발자(혹은 개발자를 지망하는사람)치고 이 책을 모르는 사람이 있을까 싶다. 나 역시 '디자인패턴' 이라는 키워드를 안 이후에 여러 검색과정을 거처서 '헤드퍼스트 디자인패턴'을 구매하고 읽었다. 그게 벌서 10년전 정도이다. 한빛미디어의 나는 리뷰어다 도서중 헤드퍼스트 디자인패턴 개정판이 나왔을때 나는 망설임 없이 바로 신청했다.

 안그래도 디자인패턴 복습을 좀 하고싶었는데 개정판이 나왔다니. 선택을 안할 수 없었다. 내용은 워낙 탄탄하니 말할것도 없긴 하지만 도서 리뷰이다보니 잠시 언급 해 보자면 가장 기본적이고 단순한 패턴부터 시작해서 실무에서 많이 사용하는 패턴으로 점진적으로 나아가는 방식이다. 개발을 좀 해봤다면 초반부분의 패턴들의 예제에서 이상함(비효율성)을 느끼게 되는데 그부분들은 후반에 나오는 패턴에서 개선 할 것이라는 언급이 있기때문에 독자로 하여금 불안함을 생기지 않도록 해 준다.

이번에 책을 다시 읽으면서 가장 좋았던점은 이전 버전의 단점이 보완되었단 점이다. 이전 버전의 경우 책의 구성이 좀 번잡하다는 생각이 들어서 집중하기 약간 어렵단 생각이 들었었다. 물론, 대화형 으로 풀어나간다던가 내용에 나오는 화살표 설명(?) 들이 설명에 많은 도움이 되긴 하지만 당시엔 너무 번잡하다는 생각을 지울 수 없었다. 하지만 이번 개정판에서는 훨씬 정갈하고, 분리된상태로 편집이 되어 있어서 책을 읽는데 집중을 하기가 좋았다. 헤드퍼스트 특유의 설명방식을 잘 살리면서 깔끕하게 정리를 해 준 덕분에 내용상의 차이는 크게 없지만, 훨씬 읽기 좋고 이해하기 좋은 책이 되었다.

디자인 패턴을 처음 공부하기 위한사람이나, 나처럼 복습하기위한 사람 모두에게 아주 추천할만한 책이다. 

 

반응형

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

어디선가 web3.0에 가장 어울리는 언어가 elixir라는 이야기를 들었다. (안타깝게도 이유는 기억나지 않는다). 그래서 이번에 나는 리뷰어다에서 처음 배우는 엘릭서 프로그래밍을 받고 매우 기분이 좋다. elixir는 얼랭(erlang)의 생태계를 계승하는 언어이고 생성된 코드는 EVM(Erlang Virtual Machine)에서 동작하게된다.

엘릭서는 다음과 같은 특징을 가진다.

  • 모든것이 expression이다
  • 메타 프로그래밍을 지원한다.
  • 프로토콜이라는 메카니즘으로 다형성을 지원한다.
  • 엑터모델(메시지 전달방식)을 지원한다
  • 루프 대신 재귀와 고차원 함수를 강조한다.
  • Lazy와 async collections를 지원한다.

대략 위와같은 특징을 가지고있고, 다들 알겠지만 함수형 프로그래밍 언어이다.
위와 같은 특징으로 인하여 발생되는 사항으로는 기존의 프로그래밍언어(주로 객체지향 언어)를 사용할때와는 완전히 다른 사고를 가지고 개발을 진행 해야한다는 것이다.
사실 책을 읽어보기 전 까진 이런 사실도 모르고있었다. 개인적으로는 책의 맨 처음 나오는 할당문 개념에서부터 기존의 코딩 방법과의 차이점을 느꼇고
책에서 이해하기 쉽도록 설명을 해주고 다양한 예시를 보여줘서 그리 어렵지 않게 이해할 수 있었다.

처음배우는 엘릭서 프로그래밍은 새로운 개념, 방식의 언어에 쉽게 적응할 수 있도록 내용을 구성하고있고, 중간 중간 나오는 연습문제가 특히 도움이된다.
책의 구성은 엘릭서의 문법과 더불어 유용한 라이브러리의 사용법, 실제 적용해볼 수 있고, 사용해보기 좋은 프로젝트 예제 등이나와있기에 처음 입문하는 책으로 매우 좋은 구성을 가지고있다.

비단 엘릭서 뿐만 아니라 함수형 프로그래밍이 처음인 개발자라면 처음 배우는 엘릭서 프로그래밍으로 함수형과 엘릭서에 입문을 하는것도 좋은 방법이라는 생각이 든다.

물론 본인이 책한권 읽었다고 엘릭서에 대한 많은것을 알게됐다기보다는 특징과 사용법을 어느정도 알게 된 것 이지만, 이제 기초는 다저진듯하고 재미있는 프로젝트를 구성해봐야겠다.

반응형

+ Recent posts