Go 로 WASM 해보기

2018-06-27

WASM은 WebAssembly의 약어로, 용어자체에서 보둣, 웹에서 ASM을 돌려보자는 프로젝트이다. 여러 장점이 있다고 하는데, 일단 가장 크게 느껴지는 건 익숙한 언어로 웹프로그래밍을 할 수 있을거라는 기대감이다.

이미 대부분의 브라우저에서 지원 해 주고 있고, Go에서도 1.10버전부터 정식 지원한다고 한다.
일단 검색해보니 참고 포스트가 하나 나와서 따라 해 봤다.

  1. 새 버전 go를 받아서 컴파일한다.

    • 11버전부터니, Go 저장소에서 clone한다.
      git clone https://github.com/golang/go
    • 그 다음 src 에서 all.bash를 실행한다.
      ./all.bash
    • 그럼 컴파일이 되고, ../bin에 go 가 생겨 있을 것이다. 당연하게도 컴파일 결과는 파일 하나다.
  2. helloworld를 찍어본다. 컴파일은 새로 받은 go로 해야 한다. 결과 파일 이름을 test.wasm으로 하면 이후 단계에서 타이핑이 줄어든다.
    GOOS=js GOARCH=wasm ./go build -o test.wasm test.go

  3. 실행해 보자. go/misc/wasm 안에 예제로 쓸 패키지가 있다. wasm_exec.html을 복사해서 쓰자. wasm_exec.js 도 함께 복사할 것. 기본으로 test.wasm을 불러오기 때문에 바로 처리가 된다.
    실행을 위해서는 웹서버가 있어야 한다. 필요한 대로 만들거나, 아니면 simplehttpserver를 쓰자.

go get github.com/lazyhacker/simplehttpserver
go install github.com/lazyhacker/simplehttpserver
simplehttpserver

그 다음 웹 브라우저로 wasm_exec.html에 접근하면 run 버튼이 보이고, 그걸 누르면 짠!

Hello 가 뜬다.

여러 Github 계정 SSH로 접근 2009 하반기 - 2018 상반기 일/공부 회고
comments powered by Disqus