웹어셈블리 인 액션 - C++ 코드와 엠스크립튼을 활용한 실전 웹어셈블리
제러드 갤런트 지음, 이일웅 옮김 / 한빛미디어 / 2020년 10월
평점 :
장바구니담기




웹어셈블리가 나온지는 꽤 되었지만 아직까지는 실무에서 자주 사용되는 기술은 아니기 때문에 이번 기회에 새로운 기술에 대해서 배워보고자 이 책을 읽게 되었다. 특히 일반 자바스크립트만으로 개발했을때와의 차이가 궁금했다.


책 내용 자체는 처음 접하는 사람을 위해서 쓰여진 책이라 그런지 어렵지 않다. 하지만 처음 접해보는 기술이여서 그런지 몰라도 몇번씩 다시 읽으면서 이해하려 했던 부분들도 있었다. 특히 초반에 개발 세팅을 하는데 애를 좀 먹었는데, 이 부분만 해결되면 막히는 부분 없이 실습을 진행하면서 책을 읽을 수 있을 것 같다.


실습 자체는 C++ 로 하기 때문에 어느정도의 문법은 알아야 하겠지만 실습에 있어 C++ 로 짜여진 어려운 코드들은 거의 없기 때문에 책을 읽는 데 있어 문제가 되지는 않을 것이라 생각한다. 실습을 많이 하기는 하지만 책 자체는 이보다는 웹 어셈블리를 처음 접할때 어떻게 적용할 수 있는지에 집중해 있기 때문에 오히려 이런 부분들이 어려웠던 것 같다.


결론적으로 작성자처럼 웹 어셈블리에 대해서 배워보고 싶은 분에게 이 책을 추천하고 싶다. 웹 어셈블리를 시작하는데 있어 기초적인 부분들을 전체적으로 프런트부터 백앤드까지 한번 쭉 훝어주면서 내부적인 설명도 함께 해주기 때문에 처음 시작할 때 읽으면 좋을 것 같다는 생각이 들었다.




책에서는 처음에 당연히 웹어셈블리가 뭔지, 어디에 쓰이고 일반적인 자바스크립트와는 어떻게 다른지에 대해서 설명해준다. 이 책에서도 가장 강조하는 부분이 "웹 어셈블리가 자바스크립트를 대체 하는 것이 아니라 상호 보완적" 이라는 점이다. 개인적으로도 이 문구가 가장 공감이 되기도 햇다.


그 이후에는 웹어셈블리 구조에 대해서 설명해준다. 짧지만 가장 이해하기 어려웠던 부분이기도 했다. 그 다음부터는 이제 실습을 진행하는데 여러가지 케이스에 대해서 실습하니 많은 경우에 적용할 수 있지 않을까 싶다. 마지막에는 디버깅과 테스팅 기법까지 알려주면서 전체적인 내용을 끝마친다.


처음 접하지만 관심있게 보던 책이였어서 그런지 재미있게 읽은 책 중에 하나였던 것 같다. 작성자처럼 웹 어셈블리에 관심은 있지만 아직 접해보지 않은 분들이 읽는다면 좋을 것 같다.




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
자바 최적화 - 가장 빠른 성능을 구현하는 검증된 10가지 기법
벤저민 J. 에번스 외 지음, 이일웅 옮김 / 한빛미디어 / 2019년 4월
평점 :
장바구니담기




단순히 자바 문법이 아니라 조금 더 어려운 주제를 공부하고 싶어서 이 책을 읽게 되었었다. 물론 작성자의 경우에 자바를 현재 메인으로 사용하지 않지만 그래도 어떤식으로 성능 최적화를 할 수 있는지 개인적으로 궁금했다.


책은 솔직하게 말해서 술술 읽히는 그런 내용은 아니다. 처음부터 JVM 으로 시작해서 하드웨어, 운영체제, GC 등 하드한 내용들을 주로 다루고 있다. 그래서인지 개인적으로 JAVA 를 많이 써보지 않은 입장에서는 다소 어려웠던 책이였다. 


하지만 어려운 책임에도 불구하고 번역이 정말 깔끔하게 잘 되어있다. 어려운 내용들에 대해서도 용어도 먼저 설명해주고 있어 그래도 이해할 수 있도록 도와주곤 한다. 또한 다행히 컬러로 되어 있어 책을 읽는데 조금 더 집중할 수 있도록 해주었었던 것 같다.


결론적으로 자바를 문법적인 것만을 공부하다가 조금 어려운 내용을 공부하고 싶은 분들에게 추천하고 싶다. 저번에 읽은 실전 자바 소프트웨어 개발 과는 달리 오히려 이 책은 어느정도 공부를 해 본 사람들이 봐야 이해할 수 있지 않을까 싶다. 작성자 또한 현재는 솔직히 많은 부분이 이해가 된다고 할 수는 없지만 나중에 더 익숙해 졌을때 꼭 다시한번 봐보고 싶은 책이였다. 


번외적으로 여기 나오는 내용은 취업 면접에도 도움이 되지 않을까 생각도 하기는 했다.



책에서는 처음에 자바 성능과 최적화가 뭔지에 대해서 정말 간략하게 설명해준다. 당연히 이 책이 전체적으로 설명하는 내용이므로 무엇을 미리 알고 가야하는지에 대해서 알려준다고 생각하면 될 듯 싶다. 2장도 마찬가지로 자바에서 성능의 큰 부분을 차지하고 있는 JVM 내용인 많큼 이 부분도 꼭 알아야 할 부분인 듯 싶다. 3장은 어떻게 보면 2장의 연장선에 있다고 생각하면 좋을 듯 싶다. JVM 으로 해서 간단한 GC 내용을 설명해준다.


그 다음장에서는 이제 성능 테스트 기법을 알려주면서 성능 튜닝을 시작한다. 5장은 4장의 연장선상이라 생각해도 좋을 듯 싶다. 6장에서부터는 GC 에 대한 이야기로 시작해서 8장까지 이야기가 이어지고 있다. 그 뒷장에서도 계속해서 자바의 단순한 문법이 아니라 성능에 있어서 중요한 부분들에 대해서 다루고 있다.


개인적으로는 책을 읽으면서 이렇게까지 성능 튜닝을 해야하나? 혹시 성능튜닝하다가 오히려 프로그램을 망치지는 않을까? 하는 생각이 들기도 했다. 하지만 언젠가는 반드시 해야 할 작업이라 생각하고, 미리미리 준비해 두는 것도 좋을 것이라고 생각한다. 


"만약 자바가 느리다" 라는 말을 혹시나 많이 들어본 사람들은 이 책을 읽으면서 성능 튜닝을 어떻게 할 수 있는지 한번 확인해 보면 좋을 것 같다. 작성자의 경우에는 이 책을 읽으면서 그래도 자바에 대한 많은 궁금증이 해소되었었던 것 같다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
자기주권 신원증명 구조 분석서 - DID와 자격증명 분석부터 하이퍼레저 인디 블록체인 플랫폼 분석까지
윤대근 지음 / 제이펍 / 2020년 7월
평점 :
장바구니담기



블록체인 생태계에서 현재 가장 활발하게 진행되고 있는 두 가지 분야가 있다면 하나가 DID, 다른 하나는 DeFi 일 것이다. 그런데 이 두가지 분야는 개념 익히기도 어렵기 때문에 진입장벽이 높은 기술이라고 할 수 잇을 것 같다. 이 책은 그 중 DID(SSI) 를 상세하게 다루고 있다.


우선 이 책에서는 SSI에 대해서 정말 자세히 쉽게 설명해주고 있다. 하지만 절대 쉬운 책이 아니라는 점을 말씀드리고 싶다. 일단 블록체인이라는 개념 자체가 어려운 개념인데다가 SSI 는 거기에 한술 더 나아간 어려운 개념들이 포함되어 있기 때문이다. 그래도 개인적으로는 지금까지 보았던 다른 블로그 글보다 쉽게 쓰여있다고 생각한다.


저자도 이전에 하이퍼레저 패브릭으로 배우는 블록체인 이라는 책을 쓰셨었는데 그 책 또한 하이퍼레저에 대한 내용에 대해서 정말 상세히 알려주었었던 것으로 기억한다. 이에 못지 않게 자기주권 신원증명 구조 분석서 책도 내용을 하나하나 자세히 잘 설명해준다. 또한 책을 읽을 때 문맥때문에 안읽히거나 하는 경우는 거의 없을 것으로 생각한다.


하지만 이 책을 구매하고자 하는 분이라면 "내가 블록체인을 한번 쯤 본 적 있는가?", "개발을 해본 경험이 있는가?" 는 한번 생각해봐야 할 듯 싶다. 왜냐하면 다시한번 강조하지만 이 책이 SSI 에 대해서는 정말 쉽게 이해할 수 있도록 쓰여 있다고 하더라도 SSI 라는 주제 자체가 어렵고, 특히나 처음 접해보는 분야라면 개념 자체도 생소해서 이해하기 힘들수도 있겠다는 생각이 들기 때문이다. 또한 중간중간 개발자들이 사용하는 용어들이 나오는데 물론, 이 책에서 설명해주긴 하지만 지식 없이 읽기는 무리가 있지 않나 싶다.


또한 이 책에서 하이퍼레저 인디 에 대해서 알려주고는 있지만 실습을 깊게 하거나 예제를 많이 들면서 진행하는 방식이 아니기 때문에 단순히 코드를 통한 개발 하는 방법을 알고 싶은 분들은 다른 참고서를 찾아보길 바란다. (물론 아직까지 DID 에 관한 개발 서적은 없다시피 하다.) 작성자의 경우에는 개발도 개발이지만 SSI 에 대한 개념을 제대로 잡아보고 싶어서 이 책을 읽었기 때문에 매우 만족하고 읽은 책이였다.


책은 초반에 SSI 대한 간단한 개념과 왜 필요한지에 대해서 설명해주면서 시작한다. 여기서 강조하는 점은 SSI 기술 자체가 블록체인을 써야만 한다는 점이 아니라 블록체인을 활용하면 좀 더 편하게 SSI 를 구축할 수 있다는 점을 시사하고 있다.


그 후에 이제 SSI 의 구성요소 중 하나면서 오히려 더 친숙한 DID 에 대해서 설명해준다. 그 후에는 VC, VP 개념에 대해서 설명하고 이러한 SSI 프로젝트를 어떻게 사용되는지 예시를 들어준다. 여기 있는 세 개의 챕터가 정말 중요한데, 이 챕터를 이해하지 못하고 넘어간다면 다음장에서 이어지는 PeerDID, Hyperledger Indy 를 이해하는데 어려움이 많을 것이라 생각한다.


5장에서는 Peer DID, 즉 어떻게 보면 Private 한 DID 에 대해서 설명해준다. 이전 챕터까지는 public 한 환경에서 DID 를 구성했다면 Peer DID 에서는 어떻게 환경을 구성해야 하는지, 그리고 그 요소들은 무엇이 있는지 설명해준다.


그리고 드디어 마지막장에서는 SSI 플랫폼 중에서 가장 유명한 하이퍼레저 인디에 대해서 설명해준다. 만약 앞에서 설명한 개념들을 잘 이해하고 왔다면 Indy 플랫폼 설계를 설명하는 6장은 앞보다는 쉽게 읽힐 것이다. 다만, 이 부분에서는 약간의 코딩이 들어가니 개발자가 아니라면 6.2 장은 넘겨도 될 것 같다.


아무래도 작성자의 경우 블록체인 회사에서 근무하고 있기 때문에 다른 사람들보다 더 재미있게 빠져서 읽었을지도 모른다. 하지만 미래의 인증체계는 어떻게 바뀔지 모르기 때문에 블록체인 종사자가 아니더라도 SSI 에 대한 프로토콜(형식)은 알아야 하지 않을까 싶다.


이 책을 읽기 전까지는 DID 와 SSI 에 대한 개념이 머릿속에 난잡하게 엮여 있었는데 이 책을 읽고 나서 머리속에 있던 개념들이 정리 된 느낌이다. 또한 작성자의 경우도 잘 몰랐던 부분들도 더 상세하게 알려주고 있고 초반부터 SSI 에 "Why Blockchain" 이라는 부분도 제시해주기 때문에 더 깔끔하게 읽을 수 있도록 도와줬던 것 같다,


만약 블록체인이라는 산업에 근무하시는 분이라면 당연히 한번쯤 들어봤을 SSI(DID) 에 대해서 개념을 정리하고 더 자세히 알고 싶다면 꼭 이 책을 읽어 볼 것을 권하고 싶다. 또한 훝날 미래의 인증 시스템이 될 확률이 높은 신기술을 먼저 접해보고 싶은 분도 이 책 한권이면 전체적으로 개념을 정리할 수 있을 것으로 생각한다.




댓글(0) 먼댓글(0) 좋아요(3)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
실전 자바 소프트웨어 개발 - 4가지 프로젝트로 배우는 최신 자바 개발 기법
리처드 워버턴 지음, 우정은 옮김 / 한빛미디어 / 2020년 6월
평점 :
장바구니담기




스프링을 사용하지 않고 자바로 어떻게 개발할 수 있나 궁금했었다. 실전 자바 소프트웨어 개발 책의 목록을 보게 되면 프레임워크를 따로 쓰지 않으면서 개발해나간다는 것을 알 수 있다.


책 자체의 길이는 솔직히 많은 내용을 담기에는 분량이 작은 것이 사실이다. 그러다보니 디자인 패턴에 대해 자세히 설명한다기 보다는 너네가 배운 디자인 패턴을 이렇게 적용할 수 있어 라는 식으로 설명하는 느낌이였다. 즉, 자바도 배웠고 디자인 패턴도 배웠는데 이건 어떻게 사용해야 하지? 하는 사람들에게 필요한 책이라는 생각이 들었다.


책 내용 자체도 어려운 편에 속하지는 않는다. 하지만 위에서 이야기했듯이 디자인 패턴을 아무것도 모른다면 생략되어 있는 내용들이 많아 읽는 도중에 막힐 수도 있을 것 같았다. 그래도 책 자체가 어렵지는 않아서 빠르게 한번 훝어보고 싶은 사람에게 어울릴 것 같다.


결론적으로 막 자바를 끝내서 이제 뭘 공부할까 고민하는 사람들 혹은 앞에서 이야기했지만 단순히 스프링부터 공부하면서 다른 원칙들을 잊은 채 스프링에서 제공된 함수만을 쓰면서 원리를 잊어버리고 사는 분들에게 추천하고 싶은 책이다. 하지만 이미 자바를 몇년 써왔거나 회사에서 테스트코드를 위주로 디자인 패턴을 적용하면서 사용하는 사람에게는 시간낭비일 수 있을 것 같으니 추천하지 않는다.




책에서 4가지 프로젝트로 배우지만 각 챕터의 구성은 비슷하다. 먼저 실제로 어떤 요구사항이 들어왔고 어떤 기능을 개발해야 할지 리스트를 정리한다. 그러면서 이 요구사항에서는 어떤 디자인 패턴을 적용해서 개발하는 것이 좋을지 설명하면서 하나하나 개발해 나간다. 그러다보니 처음에는 간단하게 하나의 클래스에서 KISS(Keep it small and simple) 원칙만을 지키면서 개발해나가지만 그 이후에는 DRY 원칙으로 시작해서 SOLID 원칙을 어떻게 지켜나가야 하는지에 대해 개발한다. 또한 뒷장으로 가게되면 TDD 개발 방법론을 이야기해주면서 함수형 프로그래밍에 대해서 간략하게 이야기햐고 끝이 난다.


이 책을 읽다보면 아 이런식으로 디자인 패턴들이 적용되고 있고 "스프링" 이란 프레임워크도 이런 원칙을 지키고 있겠구나 하는 생각이 들게 만들었었다. 다만 조금 아쉬웠던 점은 앞에서도 이야기했지만 생략되어서 이야기된거 같다는 생각이 많이 들었다는 점이였다.즉, 개인적으로는 다시 한번 개념을 공부한다는 생각으로 읽으니 재밌게, 빠르게 한번 읽어볼 수 있었지만 어떤 사람들에게는 조금 아쉬울수도 있지 않을가? 하는 생각이 들었다.


혹시 이 책을 구매하고자 하는 분이라면 "내가 디자인 패턴을 한번쯤 공부해 본 적이 있었는지" 생각해보고 그렇지 않다면 이 책을 읽으면서 디자인 패턴 용어가 나왔을 때 함께 볼 수 있는 개념서 정도 하나 함께 읽으면 좋을 것 같다고 생각한다. 




댓글(0) 먼댓글(0) 좋아요(2)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
코틀린을 다루는 기술 - 코틀린답게 코딩하자!
피에르 이브 쏘몽 지음, 오현석 옮김 / 길벗 / 2020년 3월
평점 :
장바구니담기




평상시에도 코틀린으로 안드로이드를 개발하면서 대략 3년정도 코틀린을 써왔던 것 같다. 그래서인지 보통 내용과는 다를 것 같은 이 코틀린 책에 흥미를 가지게 되어 읽게 되었다. 


책은 첫장부터 정말 멋졌다. 처음에 코틀린 개요에 대해서부터 설명할 때부터 흔히 생각할 수 있는 그런 방식으로 설명하지 않는다. 즉, 기본 개념을 설명할때부터 코틀린 답게 사용하는 법을 알려주면서 시작한다. 책 이름인 코틀린을 다루는 기술에 정확히 들어맞는 내용이다. 


그러다보니 코틀린을 배우지 않은 사람들에게는 매우 어려울 듯 싶다. 또한 코틀린을 다루는 법에 대해서 알려주지만 기본적으로는 함수형 프로그래밍 방법에 대해서 대부분의 책 내용을 할애하고 있다. 물론 그 설명할 시 언어를 코틀린으로 설명할 뿐이다.(자바와 비교하는 구문도 많이 보인다.) 이 또한 만약 함수형 프로그래밍을 처음 접하는 사람이라면 이 책을 읽는데만 시간이 얼마나 걸릴지 잘 모르겠다. 작성자의 경우도 함수형 프로그래밍에 대해 아직 익숙하지는 않아서 이해하면서 읽는데 시간이 오래 걸렸던 것 같다.(리뷰 마감일에 거의 딱 맞춰서 읽었다.)


이 책을 진행할 때 특이한 구성은 책의 내용을 설명하고 연습문제가 있는게 아니라 책 내용을 설명하기 위해 연습문제를 계속해서 내준다는 점에 있다. 개인적으로는 책을 읽을 때 바로 결과를 보고 끝내는 것이 아니고 스스로 생각해볼 수 있는 기회를 줄 수 있어서 마음에 들었던 구성이었다. 그래서인지 책을 읽는데 조금 오래 걸렸던 것 같다.


다만 아쉬웠던 점은 코틀린 진영에서 유행하고 있는 코루틴에 대해서는 따로 다루고 있지 않다. 만약 코루틴까지 코틀린답게 작성하는 법을 다뤘더라면 정말 이 책은 완벽한 책이 되었을 것 같다는 생각이 들었다. 하지만, 이에 대한 내용이 따로 없더라도 정말 "내가 사용한 코틀린은 그냥 자바문법을 따라한 것 뿐이구나" 라는 생각을 계속 들게 만들 정도로 만족하면서 읽은 책이다. 


결론적으로 이 책을 구매하고자 해서 이 리뷰를 보시는 분이라면 무조건적으로 구매하기를 추천하고 싶다. 작성자의 경우도 아직 다 읽지도 않은 상태에서도 주변에 이 책을 계속 홍보하고 다닐 정도였다.




책에서 첫장에 당연히 책을 읽어야 하는 이유에 대해서 알려주고 있다. 다만 특이점은 단순히 "왜 코틀린을 써야하나?" 에 집중해서 쓰여있지 않고 "왜 코틀린을 코틀린답게 써야하나" 에 대해서 설명해주고 있다.


2장에서는 전체적인 코틀린 프로그래밍 개요에 대해서 설명하는데 결국 코틀린 문법을 간략하게 설명하는 장이다. 하지만 이 장 또한 다른 책들과 다른점은 처음에 평범하게 코딩을 배웠다면 사용할 코드 스타일을 적어놓고 리펙토링을 해가면서 코틀린 문법을 왜 이렇게 써야한는지에 대해서 대략적으로 설명해준다.


3장에서는 함수형 프로그래밍으로 들어가기 위한 준비를 하는 장이다. 물론 이 장에서 함수형 프로그래밍의 원론적인 개념에 대해서 설명하는 것이 아니라 함수 기반으로 되어 있는 코틀린 언어를 함수형으로 작성하는 법에 대해서 알려준다. 그렇게 읽다보면 자연스럽게 함수형 사고를 하고 있는 자신을 발견할 수 있을 것이다.


4장은 함수형 프로그래밍을 할때 (절대적으로) 필요한 재귀,공재귀,메모화 에 대해서 다루고 있다. 이쯤에서 읽으면 알겠지만 계속해서 함수형 기법을 설명해주면서 코틀린으로 함수형 프로그래밍을 하는 방법에 대해서 이어나가고 있다. 특이한 정은 공재귀와 재귀의 차이점에 대해서 정확히 짚어주려고 하는 점이다. 


5장에서는 리스트를 다루고 있다. 사실 함수형 프로그래밍을 할때의 장점이 리스트를 다루기 쉽다라는 점인데 이 부분에 대해서 코틀린에서는 어떻게 잡는지, 또한 코틀린의 List 가 어떻게 구성되어 있는지에 대해서 설명하면서 리스트를 다루는 방법에 대해서 알려준다.


6장에서는 널참조와 Option 에 대해서 설명하면서 함수형 프로그래밍에서 자주 등장하는 용어인 모나드 를 맛볼 수 있게끔 해준다. 특이한 점이 있다면 책 설명중에 모나드라는 말은 따로 안쓰다가 마지막에 "바로 이게 모나드에요" 라고 간단하게 말하고 넘어간다.


7장은 예외처리를 하면서 함수형 프로그래밍에서 에외를 처리하는 방법인 Either 에 대해서 배우게 된다. 또한 Exception 을 감싸고 있는 Result 에 대해서도 배운다. 그러면서 Result 를 잘 사용하는 방법에 대해서 구체적으로 알려준다. 


8장에서는 7장에서 배운 예외처리 방법을 가지고 리스트를 아름답게 사용할 수 있는 방법에 대해서 알려준다. 사실 이 장은 위해서 5~7 장을 배운 듯 싶다. 이전 장에서 배운 개념을 가지고 리스트의 성능부터 시작해서 다양한 방법으로 리스트를 다루는 방법을 설명한다.


그 이후에도 계속해서 함수형 기법과 코틀린을 가지고 함수형으로 더 코틀린답게 어떻게 코딩하는지에 대해서 설명해준다.


부록또한 그냥 지나치기는 어려웠다. 부록조차 다른 책이였더라면 한 부분을 할애해서 만들어도 괜찮을 정도다. 부록A 는 자바와 코틀린을 함께 사용하는 방법에 대해서 알려주는데 안드로이드 개발자라면 레거시 때문에 알아야만 하는 정보에 대해서 설명해준다. 부록B 는 코틀린 테스트 방법에 대해서 알려주는데 개인적으로 궁금했던 부분이라서 더더욱 마음에 들었던 부분이였다.




책을 다 읽고 나니 "와 이 책 정말 미쳤다." 라고 생각이 들었었다. 이 책을 단순 코틀린 책이 아니라 함수형 프로그래밍에 대해서도 알려주고 코틀린을 어떻게 써야 하는지에 대해서도 알려준다. 단순히 언어 지식에 관련해서 다룬 책들 중에서 오랜만에 마음에 드는 책이였다. 나중에 기회가 생긴다면 이 책으로 스터디를 한번 열어보고 싶기도 하다.


다만 혹시 코틀린에 대해서 아무것도 모르는 분들이라면 다른 책을 권하고 싶다. 하지만 한번이라도 코틀린을 다뤄 본 사람은 이 책을 반드시 읽어보길 바란다.



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