이전

리뷰 (5)

한줄평
평점 분포
  • 리뷰 총점10 40%
  • 리뷰 총점8 60%
  • 리뷰 총점6 0%
  • 리뷰 총점4 0%
  • 리뷰 총점2 0%
연령대별 평균 점수
  • 10대 0.0
  • 20대 0.0
  • 30대 7.0
  • 40대 9.0
  • 50대 9.0

포토/동영상 (3)

리뷰 총점 종이책
웹.. 어셈블리 너 뭐니?
"웹.. 어셈블리 너 뭐니?" 내용보기
C++도 어느정도 할 줄 아는 개발자로서... 그기술을 웹에 적용할 수 있는 웹 어셈블리.. 한번쯤은 읽고 배워보고 싶었던 도중 읽었다.(역시나 C++은 어려워...)웹어셈블리란 js는 태생적으로 느리기 때문에 나오는 asm.js를 뛰어넘어 C, C++등으로 코드를 짜고 바이너리로 컴파일, 웹브라우저 환경에서 호출할 수 있고 실행할 수 있는 기술이다. C++를 이용해 웹어셈블리를 이용해 "애플
"웹.. 어셈블리 너 뭐니?" 내용보기

C++도 어느정도 할 줄 아는 개발자로서... 그기술을 웹에 적용할 수 있는 웹 어셈블리.. 한번쯤은 읽고 배워보고 싶었던 도중 읽었다.


(역시나 C++은 어려워...)



웹어셈블리란 js는 태생적으로 느리기 때문에 나오는 asm.js를 뛰어넘어 C, C++등으로 코드를 짜고 바이너리로 컴파일, 웹브라우저 환경에서 호출할 수 있고 실행할 수 있는 기술이다. 



C++를 이용해 웹어셈블리를 이용해 "애플리케이션" 하나 뚝딱 만드는 예제에 동적링킹이나 이걸 왜 쓰는지에 대한 설명이 잘 되어있는 책이다. 


옮긴이의 말마따나 "웹 어셈블리는 브라우저 또는  Node.js 환경에서 네이티브에 가까운 속도로 코드를 실행할 수 있으니 속도가 중요한 웹 애플리케이션에서 매우 주목하는 기술로 각광받고 있습니다. " 라는 말만큼 주목할만한 기술이지만 이 책에서는 중요하게도  이 예제들을 학습하면서 드는 의문인 "그래서 이게 자바스크립트로만 짠 애플리케이션과 비교했을 때 어느정도의 성능향상이 있는데?" 궁금증에 대한 답은 하지 못하는 책인 것같다. 그런 성능적인 비교가 있었으면 더욱 완벽한 책이였을 것같다.



장점


101쪽을 보면 모듈과 상호작용할 자바스크립트를 작성하고 브라우저에서 검증로직을 실행한다라는 것을 도식화한 그림이 있는데 매우 깔끔하다. 공간을 많이 차지하지 않으면서도 누구든지 알아들을 수 있는 그림을 배치한게 좋다. 


이외에도 그런 형태로 그림을 다 만들었는데 매우 좋았다. 



191쪽을 보면 코드를 화살표에 곁들여 설명한다. 주석이 아닌 이런식으로 설명하는 부분이 좋다.



235쪽을 보면 initialData객체의 변수명을 intialProductData라고 바꾸어야 한다며 하는데 장인정신이 엿보인다. 너무나 좋다. 



마지막 짤막한 모카를 이용한 테스트... 너무나 좋다. 


단점


컴파일을 하는데 있어서 이걸 자동화한 스크립트나 그런것을 만드는 부분은 없을까? 있었으면? 하는 의문이 계속 남는다 230쪽도 그렇고.... 누가 저렇게 컴파일 할 때 매일 저 명령어를 일일이 치면서 할까? 자동화 쉘스크립트 하나 만들어서 하는 부분이 있었으면.

w*******e 2020.10.23. 신고 공감 1 댓글 0
리뷰 총점 종이책
웹어셈블리 인 액션
"웹어셈블리 인 액션" 내용보기
웹어셈블리는 웹 개발의 새로운 지평을 열게 될 잠재력 높은 기술로 주목받는다. <웹어셈블리 인 액션>은 웹어셈블리를 처음 접하는 개발자를 위한 입문서로, 자바스크립트에 의존하지 않고도 브라우저 기반의 고성능 애플리케이션을 만들 수 있는 방법을 알려준다.네이티브 웹어셈블리 모듈을 작성하고, 자바스크립트 컴포넌트와 상호작용하고, 웹 워커와 pthread를 활용해 성능을 최
"웹어셈블리 인 액션" 내용보기



웹어셈블리는 웹 개발의 새로운 지평을 열게 될 잠재력 높은 기술로 주목받는다.

<웹어셈블리 인 액션>은 웹어셈블리를 처음 접하는 개발자를 위한 입문서로, 자바스크립트에 의존하지 않고도 브라우저 기반의 고성능 애플리케이션을 만들 수 있는 방법을 알려준다.

네이티브 웹어셈블리 모듈을 작성하고, 자바스크립트 컴포넌트와 상호작용하고, 웹 워커와 pthread를 활용해 성능을 최대한 높이는 지식을 습득할 수 있다.

필요한 함수와 특성, 기법을 쉽게 찾아볼 수 있도록 섹션을 깔끔하게 정리하는 방법도 배운다.

프런트엔드 개발의 핵심 기술로 자리매김 할 웹 어셈블리 기술을 미리 준비하면 어떨까?

물론 초보자를 위한 책이기는 하지만, 이 책은 HTML, Javascript 기술과 C/C++이 필요하고 C/C++의 경우 아주 기초적인 수준만 있으면 이해할 수 있다.

주요 내용으로는 런타임에 다수의 모듈을 동적 링킹, 모듈과 자바스크립트 사이의 통신, 웹어셈블리 텍스트 포맷을 활용한 디버깅, 웹 워커와 pthread의 스레딩 기법을 다룬다.

C/C++ 개발자 혹은 자바스크립트, 프런트엔드 개발자들에게 매우 적합하다.

1부 웹어셈블리 들어가기는 웹어셈블리가 어떤 기술인지, 어떻게 작동하는지 설명하고, 앞으로 이 책에서 웹어셈블리 모듈을 컴파일할 때 사용할 엠스크립튼 툴킷의 사용법을 간략히 살펴본다.

웹어셈블리란 무엇이고 이 기술로 어떤 문제를 해결할 수 있는지 알아보고, 사용 가능한 프로그래밍 언어에 대해서도 이야기한다. 이어서 웹어셈블리 모듈의 내부 구조를 들여다보고 각 섹션의 역할을 살펴보고, 웹어셈블리 모듈 컴파일 시 사용 가능한 엠스크립튼 툴킷의 다양한 출력 옵션과 웹어셈블리 자바스크립트 API를 소개한다.

2부 웹어셈블리 모듈에서는 웹어셈블리 모듈을 생성하고 웹 브라우저와 상호작용하는 프로세스를 이야기한다.

기존 C/C++ 코드베이스를 웹어셈블리 모듈로 컴파일하려면 어떻게 수정해야 하는지 안내한다. 웹페이지 자바스크립트와 모듈이 상호작용하는 원리도 설명한다.

그 뒤 웹어셈블리 모듈에서 웹페이지 자바스크립트를 호출하려면 4장 예제를 어떻게 수정해야 하는지 가이드한다.

한발 더 나아가 자바스크립트 함수 포인터를 웹어셈블리 모듈에 전달하는 방식으로 웹페이지 자바스크립트를 호출한다. 이렇게 하면 그때그때 함수를 자바스크립트로 지정하고 프라미스를 최대한 활용할 수 있다.

3부 웹어셈블리 활용를 통해 동적 링킹, 병렬 처리 등 고급 주제를 다룹니다. 브라우저가 아닌 환경에서 웹어셈블리를 사용하는 방법도 설명한다.

여러 웹어셈블리 모듈을 런타임에 링크하여 각자의 기능을 불러쓰는 동적 링킹 기법을 소개한다.

지금까지 익힌 내용을 심화하여 동일한 웹어셈블리 모듈의 인스턴스를 여럿 생성하고 필요할 때마다 각 인스턴스를 다른 웹어셈블리 모듈에 동적 링크하는 방법을 설명한다.

이후에는 웹 워커를 활용하여 웹어셈블리 모듈을 프리페치하는 방법과 웹어셈블리 모듈에서 pthread로 병렬 처리하는 방법을 배우고 웹어셈블리의 무대를 브라우저 밖으로 확장하여 Node.js 환경에서 웹어셈블리 모듈을 사용하는 방법을 설명한다.

4부 디버깅과 테스팅은 웹어셈블리 모듈의 오류를 미리 발견하고 조치하기 위한 디버깅과 테스팅 기법을 설명한다.

카드 짝 맞추기 게임 개발을 통해 웹어셈블리 텍스트 포맷에 대해 설명하고, 카드 짝 맞추기 게임을 확장하면서 웹어셈블리 모듈의 다양한 디버깅 방법을 이야기한다.

끝으로 웹어셈블리 모듈의 통합 테스트를 어떻게 작성하는지 살펴본다.

k****b 2020.10.26. 신고 공감 0 댓글 0
리뷰 총점 종이책
웹 어셈블리 인 액션
"웹 어셈블리 인 액션" 내용보기
웹어셈블리라는 말은 풍문처럼 많이 들었지만, 책을 본적은 없었기 때문에, 이 책을 보게 되었습니다. 이 책은 웹어셈블리에 대한 간략한 소개를 하고 재빠르게 C/C++을 사용해서 웹어셈블리 모듈을 어떻게 만들어 내는지 소개하고 있는데요. 저는 10년전까지만 해도 C/C++를 사용해서 일을 했었기 때문에, 상당히 친근한... 느낌을 받았습니다. 특히 C/C++를 쓰다보면, 중요하게 설명하
"웹 어셈블리 인 액션" 내용보기

웹어셈블리라는 말은 풍문처럼 많이 들었지만, 책을 본적은 없었기 때문에, 이 책을 보게 되었습니다. 

이 책은 웹어셈블리에 대한 간략한 소개를 하고 재빠르게 C/C++을 사용해서 웹어셈블리 모듈을 어떻게 만들어 내는지 소개하고 있는데요. 저는 10년전까지만 해도 C/C++를 사용해서 일을 했었기 때문에, 상당히 친근한... 느낌을 받았습니다. 특히 C/C++를 쓰다보면, 중요하게 설명하고 있는 모듈관련 기능들이 웹어셈블리로 녹아들어가는 건, 좀 난감하기까지 하더군요. 

재미있는 건, 웹어셈블리 모듈로 컴파일하는 언어가 C/C++만이 아니라는 겁니다. Rust, typescript, java, go, python, c# .. .특히 C#을 기반으로 하는 블레이저는 요즘 한참 뜬다고 하더군요. 

다양한 언어로 솔루션을 만들어내는 아키텍처는 사실, 20년전쯤 많이 주목받았던 기술이 있습니다.  바로, CORBA입니다. 물론 요즘도 쓰이는 곳이 있다고는 하는데 ( 솔직히 어디서 쓰는지 저는 보지못했습니다. ) 

현재 인터넷 브라우저가 사용하는 아키텍처 인 "브로커 패턴"을 그대로 어플리케이션 구현에 사용했던 CORBA는 다양한 언어로 CORBA 모듈을 만들면 이것을 연결시켜서 소프트웨어를 서비스 형으로 제공하려는 구상을 가지고 있었던 기술이었습니다. 

예전에 CORBA가 왜 망했는지에 대한 기사를 볼 기회가 있었는데요. 한마디로 쓰기 너무 어려워서 였습니다. 그리고 비쌌고요. 어떤 회사에서 이 기술을 쓰려면 개발 시작할 때부터 돈을 좀 내야 했었나봅니다. 그리고 내부적으로 정치적 문제도 있었다는 군요. 

하여튼, 살짝 주춤하던 시기에 닷컴 버블이 터지고 맙니다. 즉, IT 업계에 밀려들어가던 자금 줄이 끈어진 셈이죠. 아시겠지만, 돈줄 끈기면 그 기술을 사장됩니다. 

결국, 지금은 아는 사람도 별로 없는 기술이 되어 버렸습니다. 

그런데, 어느 순간 CORBA로 하려던걸 웹으로 하는 쪽으로 방향이 결정되었습니다. 누가 그렇게 결정한 건 아닌것 같은데... 그냥 지금 현재는 그런 상태입니다. 

하지만 자바스크립트는 느리다는 문제가 있습니다. 즉, 사용자의 요구에 맞게 좀 빠른 속도가 필요한 어플리케이션을 만들어내기는 한계가 있는 거죠. ( 요즘 컴퓨팅 파워는 그 한계가 정말 있나.. 싶기도 하지만 ... )

예를 들어서 게임이나, 캐드 솔루션 같은건 솔직히 웹에서 돌리기 민망하죠. 그래서 WebGL이 나왔는데, 역부족입니다.  그래서 웹어셈블리가 필요하지 않았을까 싶군요. 

CORBA는 전체 그림을 먼저 그리고 기술 표준을 만든다음 시장에 강제하는 방향으로 변화를 만들려고 했다면, 현재 웹기술은 그냥 시장이 흘러가는 방향대로 필요한 기술이 하나씩 생기고 다같이 써보다가 좋으면 계속 쓰는 쪽으로 가고 있는 듯하네요. 

이 책에서도 많이 나오지만, 웹어셈블리가 자바스크립트보다 빠른 가장 근본적인 이유는 변수형 때문입니다.  


" 변수형을 미리 알고 시작하기 때문에 자바스크립트 엔진은 코드를 모니터링할 필요 없이 그냥 웹어셈블리 바이너리를 기계어로 컴파일할 있습니다. (본문중에서) "


어차피 프로그래밍언어로 코딩한 코드는 기계가 알아듣는 코드로 바뀌어야 하는데요. 기계는 동적인 변수를 이해하지 못합니다. 즉 컴파일러나, 인터프리터가 그걸 판가름해서 기계가 알게 해줘야 하는 거죠. 

그런데 코딩 할때부터 변수타입을 결정해주면 어떨까요? 그럼, 당연히 이게 무슨 타입인지 인터프리터가 쫓아다니지 않아도 되니 빠르게 될 겁니다. 

그럼, 왜, 자바스크립트는 변수 타입을 그렇게 쓰게 했을까요? 그냥 좋아보여서는 아닐겁니다. 이건 프로그래밍 패러다임과 연관이 있습니다.  함수형 프로그래밍 패러다임에 해당하는 언어들이 대부분 변수의 타입을 쓰지 않는데요.  함수만으로 코딩을 하고 싶은데 변수의 선언부가 꼭 끼어들어야 한다면, 간결한 코드를 만들기 힘들어질 겁니다. 하지만 이는 코드를 한꺼번에 컴파일해서 기계어로 보내는 걸 힘들게 만드는 단점이 되는 거죠. ( 느려진 원인이죠 )

그럼 속도를 위해서 함수형 프로그래밍 패러다임을 버려야 할까요? 그렇지 않을 것 같습니다. 함수형 프로그래밍 자체가 근래에 만들어진 것이 아니고, 컴퓨팅 파워가 말도 안되는 시절부터 존재했던 것입니다.  다시 말하면, 컴퓨팅 파워가 계속 좋아지면 어떻게 해서든 함수형 프로그래밍 쪽으로 갈 거란 말이됩니다. 

이유가 있겠죠. 코드를 아주 간결하게 만들수 있도록 해주는 개념이고, 코드가 간결해 질 수록 버그는 줄어든다는 건 학계 정설이죠. ( 믿거나 말거나 ) 게다가 사용자 인터페이스, 사용자 경험 이런걸 진화시키기 위해서는 그쪽 코드는 수시로 바꾸고 빨리 바꾸고 여하튼 사람이 뭔가 많이 해야 합니다. 

결국, 우리는 자바스크립트를 "함수형 프로그래밍"으로 사용하여 개발자가 많이 손봐야 할 코드를 만들고, 웹어셈블리로는 개발자보다는 컴퓨터 쪽에 더 가까운 코드를 만드는데 쓰게 되지 않을까 싶습니다. 

결론은, 둘다 알아야 한다가 되지 않을까 싶네요. 

그래서, 책은 나중에 생각 봐야 같습니다. 그리고, Rust 아님 다른 언어로 웹어셈블리하는 책을 봐야 겠군요. 

h*****0 2020.10.24. 신고 공감 0 댓글 0
리뷰 총점 종이책
[도서 리뷰] 웹어셈블리 인 액션
"[도서 리뷰] 웹어셈블리 인 액션" 내용보기
안녕하세요, 괴짜 개발자 namedboy 입니다.제가 오늘 리뷰할 책은 `웹어셈블리 인 액션` 입니다.  이 글을 보시는 분은 웹 어셈블리에 대해 어느정도 알고 계신가요?아마 들어보셨을 수도 있고 잘 모르시는 분들도 있을겁니다.웹 어셈블리의 핵심은 C/C++, 러스트 등의 저수준 언어를 사용해서 만들어진 코드를 바이너리로 인코딩 하여 브라우저나 브라우저가 아닌 환경에서도 실행을 시
"[도서 리뷰] 웹어셈블리 인 액션" 내용보기

안녕하세요, 괴짜 개발자 namedboy 입니다.



제가 오늘 리뷰할 책은 `웹어셈블리 인 액션` 입니다.  


이 글을 보시는 분은 웹 어셈블리에 대해 어느정도 알고 계신가요?

아마 들어보셨을 수도 있고 잘 모르시는 분들도 있을겁니다.

웹 어셈블리의 핵심은 C/C++, 러스트 등의 저수준 언어를 사용해서 만들어진 코드를 바이너리로 인코딩 하여 브라우저나 브라우저가 아닌 환경에서도 실행을 시킬 수 있다는 것입니다.


기존에 C/C++ 개발자도 Web Assembly를 사용해 기존에 개발해둔 코드를 가지고 기능을 개발하는 것이 가능하다는 얘기죠.  


`웹어셈블리 인 액션`에서는 여러 언어 중에 C/C++을 사용하여 웹 어셈블리 모듈로 변경하여 동작할 수 있는 방법에 대해 설명합니다.  

그 외에도 웹어셈블리를 다루기 위해 필요한 기초 지식과 함께 잘 모를 수 있는 어셈블리에 대한 내용을 앞서 설명해주고 있습니다.  


webassembly 공식 [사이트](https://webassembly.org/)에 보면 파이어폭스, 크롬, 사파리, 엣지에 모두 webassembly 가 포함되어 있다고 보여주는 만큼 앞으로 nodejs와 함께 웹에서 C/C++같은 언어를 사용해서 개발을 할 수 있고 빠른 실행이 장점인 만큼 웹에서 복잡한 연산을 해야 하는 경우에 대체하여 쓸 수 있는 하나의 수단이 될 수 있을거란 생각이 드네요.


특히 더 높은 수준의 성능을 계속해서 요하는 요즘 시대에 webassembly는 성능을 한단계 끌어올릴 수 있는 역할을 할 수 있지 않을까 생각합니다.  

물론 앞으로 갈길을 많다고 생각이 드는데 그 이유는 꽤 많은 부분 편의성이 좋아져야 개발자 입장에서 편하게 개발을 할 수 있기 때문입니다.  

추가로 걱정되는 부분은 지금까지도 webassembly가 크게 주목받지 못했던 이유로, 기존의 V8 엔진의 성능을 올리거나 개발하는 방식을 바꾸는 형태가 더 많은 도움이 되는 케이스가 많았던 듯 합니다.  

그럼에도 불구하고 webassembly는 충분히 매력적인 부분이 존재하고 있습니다. 브라우저에서 C/C++언어를 사용할 수 있다는 사실 자체가 흥미를 끌기도 합니다.  

이런 내용에 대해 전반적으로 짚어주고 자세하게 설명해준 `웹어셈블리 인 액션`은 [링크]에서 확인하실 수 있습니다.



b*****e 2020.10.25. 신고 공감 0 댓글 0
리뷰 총점 종이책
[한빛미디어] 웹어셈블리 인 액션
"[한빛미디어] 웹어셈블리 인 액션" 내용보기
제러드 갤런트 지음 / 이일웅 옮김 필자는 거의 지난 15년간을 시스템 펌웨어나 혹은 파일시스템, 그리고 게임 관련해서 개발해왔었다. 그러다 좋은 기회가 생겨 웹용 서비스 지향 회사에 취업을 하여 지금은 웹 개발자로 전향한 케이스이다. 처음 웹을 개발할 때는 모든 게 혼란스러웠다. 컴파일러가 없이 인터프리터 형태로(지금은 형태가 좀 바뀌어 스크립트도 부분적으로 컴파
"[한빛미디어] 웹어셈블리 인 액션" 내용보기


제러드 갤런트 지음 / 이일웅 옮김

필자는 거의 지난 15년간을 시스템 펌웨어나 혹은 파일시스템, 그리고 게임 관련해서 개발해왔었다. 그러다 좋은 기회가 생겨 웹용 서비스 지향 회사에 취업을 하여 지금은 웹 개발자로 전향한 케이스이다.


처음 웹을 개발할 때는 모든 게 혼란스러웠다. 컴파일러가 없이 인터프리터 형태로(지금은 형태가 좀 바뀌어 스크립트도 부분적으로 컴파일한 옵티 멀 코드를 가진 상태로 수행되는 것으로 알고 있다.) 프론트가 동작하는 것이 신기했고, 무엇보다 스크립트 언어가 구동하는 방식이 신기했다.


물론 블로거 역시 다수의 자바 스크립트 언어 관련 책 리뷰를 포스팅했었고, 그동안 CSS HTML에 관해 나름 개인 프로젝트와 그와 관련한 다양한 알고리즘 테스트 서비스를 구축해본 경험이 있어 의기양양한 면도 있었다.


하지만! 실재 실무에서 쓰이는 스크립트 언어는 필자가 상상했던 것보다 복잡하였고, 책에서 언급되지 않은 최신 기술들 그리고 다양한 기능들이 다루우고 있었다. 그렇기에 필자가 처음 접한 실무 업무 때의 느낌은. 필자에게 익숙한 세상으로 돌아가고 싶은 깊은 향수, 그리고 바람이 전부였다고 해도 과언이 아닐 것 같다.


그런데 언제부터인가? 웹 어셈블리라는 개념이 등장했다. 이 개념은 간단히 말해 C/C++로 비교하자면, 직접 ASM 수준의 코딩을 하는 것을 의미한다. 하지만 웹의 경우, 이렇게 기계언어 단까지 프로그래머가 다룰 필요는 없었나 보다. 웹은 이보다 윗단인 C/C++ 등을 웹 어셈블리로 칭하고 있었다. 그렇기에 필자는 이번 리뷰를 매우 즐겁게 할 수 있었고, 이를 통해 웹의 한층 더 복잡한 작동 원리와 웹 어셈블러의 작동원리에 관해 파악할 수 있었다.


【어떤 독자를 위한 책인가】

 '웹어셈블리 인 액션' 일단 기본적인 C/C++에 관한 어느 정도 수준의 이해력이 있어야 하고, CS의 어느 정도의 기본적인 지식 역시 요하는 책이다. 위의 이러한 기본기 없이 이 책을 접하기엔 어느 정도 진입장벽이 있으므로, CS 전반의 기초 지식이 부족한 분들에겐 권하지 않는다.


만약 위에서 말한 기초 지식이 어느 정도 갖춘 사람이라는 조건이 완성되었을 때 본인의 웹서비스에 관해 좀 더 빠른 서비스를 꿈꾸거나 혹은 C/C++의 스타일 코딩을 웹에 한번 섞어서 적용해보고 싶은 사람이라면 위의 도서를 읽어보길 권한다. 읽어본다는 것은 정확한 표현은 아닌 것 같고 학습하길 권장한다.


솔직히 필자도 웹에 관한 전반에 걸친 지식에 공백인 부분이 좀 있어서 이 책을 읽으며 새롭게 배우고 깨달은 부분이 없잖아 있었다. 그렇기에 꼭 서비스 최적화나 C/C++ 적용을 위해서가 아니더라도 자바스크립트 코드와 어떻게 C/C++ 코드가 통신을 하는지, 이를 위해서 웹의 구조에 어떤 부분이 변경되었고 최신 웹 서비스의 구조는 어떠한지를 다시 한번 돌아보고자 하는 사람들에게 이 책을 권한다.


【책의 구성】 '웹어셈블리 인 액션'의 책의 구성은 어떠한가.

 이 책은 다음과 같이 총 4가지 챕터와 브록들로 구성되어 있다.



Part 01

- 웹 어셈블리가 무엇인지에 관해 논한다

- 웹 어셈블리가 왜 등장하였고 어떤 점이 기존의 기술들 (JS, Node.JS)에 비해 좋은지 등의 배경을 설명한다.

- 웹 모듈의 전체적인 아키텍처에 관해 논한다.

- 웹 어셈블리 모듈을 만들기 위한 - '엠스크립튼'이라는 도구에 대해서 살펴본다.

- 간단한 실습을 통해 위의 내용들을 복습한다.



Part 02

- 기존의 C++ 코드를 어떤 식으로 웹 어셈블리 모듈로 변환하는지에 관해 다룬다.

- 연결 코드의 유무에 따른 모듈 생성 법을 배운다.

- 웹 어셈블리 모듈에서 자바스크립트 호출 법을 배운다.

- 함수 포인터를 이용한 통신 방법을 배운다.



Part 03

- 웹 어셈블리의 심화 챕터이다. 내용이 앞장들에 비해 복잡할 수 있으므로 꼼꼼히 읽어보도록 하자.

- 동적 링킹의 개념에 관해 배우고 C/C++로 작성한 코드들을 수동 링킹 하는 기술에 관해 다룬다.

- 동적 링킹인 dlopen 등을 다루게 된다.

- 동적 모듈을 여러 개 생성하여 동적 링킹하는 방법 등을 다룬다.

- 웹 워커와 pThread를 사용하는 방법에 관해서 다룬다. (이 부분이 굉장히 매력적인 부분입니다. - 챕터 9)

- Node.js 환경에서 웹 어셈블리 모듈을 사용하는 법을 다룬다.



Part 04

- 텍스트 포맷이 무엇인지 텍스트 포맷의 작동원리에 관해 다룬다.

- 이를 통해 그동안 배운 내용들을 기반으로 카드 짝 맞추기 게임을 만든다.

- 위 과정 중에 트러블 슈팅과 버그 해결 등, 웹 디버거를 이용한 처리 방법을 다룬다.

- 각 플랫폼별 디버깅하는 방법에 관해서 배운다.

- 테스트 자동화 (테스트 코드 작성) 방법에 관해 다룬다

- 웹 어셈블러의 앞으로의 전망에 관해 논한다.



기타

- 이 책을 학습하는데 필요한 학습환경 구축에 관해

- 엠스크립튼 헬퍼 함수 이용법

- 엠스크립튼 매크로 이용법

-


【웹어셈블리 인 액션을 읽으며…….

 시대가 정말 많이 변했다는 것을 느낀다. 15년 전에 웹은 노가다의 산물이었다. 그 당시엔 FE/BE 그런 개념도 딱히 없었다. 그저 HTML CSS 그리고 자바로 된 spring 기초 버전이 전부였던 것으로 기억하고 있다. (자바 전에는 무엇이었을지.. 아마 C/C++로 만들어진 원초적 서버이지 않았을까? 예상해본다) 그런데 이제는 웹에 C/C++을 붙이고, 다이내믹한 웹이 대세를 이루는 시대가 되었다. 과히 웹을 안 쓰는 곳은 이제 IT 업계에서는 찾아보기 힘들 정도이다.


 결국 프로그래밍도 사람이 사는 세상이다. 무슨 말인고 하니, 사람에게 익숙한 부분으로 모든 것이 회귀한다는 것이다. 웹도 처음엔 매우 간단했다. HTML의 태깅과 마크업은 정말 단순했다. 그러다 어느 순간 javaScript가 생겨났고 이를 기반으로 수많은 기능들이 태생했다. Node.js, Vue.js, react.js 등등..


그렇지만 위의 기술들을 새로 배우고 접한다는 것은 개발자에겐 피로한 일일지도 모른다는 생각이 든다. 그렇기에 전체는 아니어도 부분 모듈로써 웹 어셈블리 생겨났고, 이를 통해 고전 개발자. 즉 옛 언어인 C/C++에 익숙한 개발자들도 웹의 세상에 참여할 수 있게 되었다. (물론 웹 어셈은 성능적 향상을 꾀하기 위해 제안된 기술인 걸로 알고 있다.)


신기하지 않은가? 최신 기술이라고 하지만 결국은 옛것과 다시 하나가 되어가고 있다. 어찌 보면 최고의 기술은 옛것, 결국 처음 우리 인간의 손에 의해 제안된 기술일 수 있을 것이란 생각이 든다.

그렇기에 여러분께 강조하고 싶은 것이 하나 있다


기초에 충실하자!


【점수…….

구성 : ★★★★☆ 내용:★★★★☆ 디자인: ★★★★☆ 전문성 : ★★★★☆

#본 리뷰는 리뷰자 김종욱의 저작권에 귀속되므로 참고 시 참고 URL 명시 및 저작자에게 사용 통보를 해 주시기 바랍니다.

#본 리뷰의 점수 및 평가 내용은 김종욱 리뷰자의 한정된 것이므로 지극히 주관된 평가 임을 명시합니다.

#학습과 관련된 질문과 문제에 대한 질문은 일절 받지 않습니다. 스스로 찾아서 학습하는 것 그것이야말로 진정한 학습자입니다.

###### 감사합니다 ######

0***m 2020.10.24. 신고 공감 0 댓글 0