관심있는 것들 정리

[리뷰]웹어셈블리 인 액션 본문

이것저것 긁적긁적

[리뷰]웹어셈블리 인 액션

내공강화 2020. 10. 25. 11:23

요즘뿐만이 아니라 수년전부터 웹 기술의 발전은 정말 빠르다는 것을 체감하며 살고 있다. 특히 HTML5로 넘어오고 난 후 더더욱이다. 
다양한 기술들이 Javascript에 접목되고, 웹 브라우저가 하나의 플랫폼으로써 여러가지 기능을 하는 것을 볼 때는 참 놀라웠는데,  웹어셈블리가 나오는 것을 보고, 이런 부분까지도 웹 기술에 접목이 드는 구나 하는 생각이 들었다.

이번에 리뷰를 한 "웹어셈블리 인 액션" 은, 막연히 이런 것도 있구나 라고 생각해오던 웹어셈블리에 대해, 
어떤 기술인지, 어떤 식으로 응용을 해 볼 수 있는 지 감을 잡을 수 있게 해주는 초보자를 위한 책이었다고 생각한다.

물론 초보자를 위한 책이기는 하지만, 이 책은 HTML, Javascript 기술과 C/C++에 대한 이해가 필요하다. 
C/C++의 경우 아주 기초적인 수준만 있으면 이해할 수 있다. Javascript 부분은 조금의 지식은 필요하다. HTML 역시 기초적인 수준 정도의 지식만 있으면 이 책을 이해할 수 있을 것이다. 

Manning 출판사의 "in Action" 시리즈가 대부분 그렇듯이, 이 책도 앞에서 이야기한 지식 정도만 있으면 하나씩 따라하면서 내용을 익히기에 무리가 없다. 내용을 아주 깊이 들어가지 않으면서도, 책에서 제시하는 예제를 이해할 정도의 내용에 대한 기반지식과 그림 그리고 코드 별 주석 등이 자세히 기술되어 있다. 

전체적인 구성은 웹어셈블리에 대한 최소한의 지식 및 이를 어떻게 구현하는 지에 설명 후 간단한 예제로 감을 잡고, 그리고 POS 예제를 이용해 좀 더 복잡한 상황에 대해 반복해서 실습을 한다. 그리고 나서 동적 링킹에 대해 다루며, 디버깅에 대해서 다루고 있다. 챕터 시작 및 예제마다 그림으로 어떤 내용을 어떻게 구현할 것이라는 것을 그림으로 알려주고 그에 대해 코드를 어떻게 구현하고 어떻게 컴파일을 하는지 하나하나 설명을 해 주고 있어, 어려움없이 전체 내용을 읽어나갈 수 있다. 하지만 독자에 따라서는 이 책이 어렵다고 느껴지는 분도 있을 수 있다. 이 책이 웹어셈블리라는 기술을 이용해 C/C++과 자바스크립트간 연동을 어떻게 할 수 있고 어떻게 디버깅을 해서 활용할 수 있다 설명하기 때문이다. 저자가 기본 지식에 대해 친절히 설명을 하고 있지만, 그럼에도 책의 내용이 이해가 되지 않는다면, 관련 백그라운드 지식을 먼저 공부하고 책을 보는 것도 좋을 것 같다. 개인적으로는 한빛미디어에서 출판되었던 백창우님 저 "유닉스 리눅스 프로그래밍"(지금은 절판되었다)이 이런 부분에 대한 설명이 잘 되어있다고 생각한다.

이 책의 단점은, 먼저 초보자를 위한 책이기 때문에, 복잡한 응용에 대한 예시를 제시하지는 않는다. 또 책에서 이런 부분에서 응용할 수 있다 라는 친절한 설명을 제시하지만, 독자에 따라서는 어떻게 응용해야 할 지 알 수 없기 때문에, 이 부분에 대해서는 다른 책들을 좀 더 살펴보아야 할 것이다. 그리고 책의 단점이라기 보다는 웹어셈블리가 성숙한 기술이 아니다보니 계속해서 바뀌는 부분이 있을 수 있어, 책에서 가이드한 것과 같이 예제를 따라서 수행해 볼 때 엠스크립튼 툴킷 버전을 잘 설정해서 시험을 해야 한다는 것도 불편한 점이다. 실제 프로젝트에 이를 시도해 보려면, 내가 사용하려는 툴킷이 지원하는 기능과 웹브라우저들이 어느정도 기능을 지원하는 지 등에 대해 꼼꼼한 체크가 필요할 것이다.

개발자의 숙명인지 모르겠지만, 현업에서 사용하는 기술에 대해서도 지속해서 새로운 기술 및 도메인 지식 익혀야 하고, 다른 분야의 지식도 꾸준히 따라잡기 위한 노력이 필요하다고 생각한다. 이러한 부분이 힘들다고 생각될 수도 있다. 하지만 서로 다른 방향이라 생각되었던 부분들을 연결하여 활용할 수 있는 기술이 생겨나서, 이를 익히고 어떻게하면 현업에 이러한 기술들을 응용해 볼 수 있을까 고민해 보는 것은 또 다른 재미라는 생각이 든다.

반응형