Go 로 WASM 해보기
2018-06-27WASM은 WebAssembly의 약어로, 용어자체에서 보둣, 웹에서 ASM을 돌려보자는 프로젝트이다. 여러 장점이 있다고 하는데, 일단 가장 크게 느껴지는 건 익숙한 언어로 웹프로그래밍을 할 수 있을거라는 기대감이다.
이미 대부분의 브라우저에서 지원 해 주고 있고, Go에서도 1.10버전부터 정식 지원한다고 한다.
일단 검색해보니 참고 포스트가 하나 나와서 따라 해 봤다.
- 새 버전 go를 받아서 컴파일한다.
- 11버전부터니, Go 저장소에서 clone한다.
git clone https://github.com/golang/go
- 그 다음 src 에서 all.bash를 실행한다.
./all.bash
- 그럼 컴파일이 되고, ../bin에 go 가 생겨 있을 것이다. 당연하게도 컴파일 결과는 파일 하나다.
- helloworld를 찍어본다.
컴파일은 새로 받은 go로 해야 한다. 결과 파일 이름을 test.wasm으로 하면 이후 단계에서 타이핑이 줄어든다.
GOOS=js GOARCH=wasm ./go build -o test.wasm test.go
- 실행해 보자.
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 가 뜬다.
-
Category
- Toy