WeAssembly란?
웹어셈블리는 C, C++, C#, Rust, GO Lang, Python 등 프로그래밍 언어를 컴파일해서 어느 브라우저에서나 실행 할 수 있게 변경해주는 기술을 의미합니다.
웹브라우저에서는 원래 html, css, javascript 만 읽을 수 있습니다. 하지만 2017년부터 webassembly도 사용 가능 하게 되었고, 현재는 크롬, 사파리, 엣지, 파이어폭 다양한 브라우저에서 webassembly를 실행 시킬 수 있게 되었습니다.
그럼 WebAssembly를 언어처럼 배워야 되느냐? 아닙니다! 웹어셈블리는 개발 언어라기 보다는 브라우저에서 실행가능한 새로운 파일 형식이라고 생각 하면 될꺼 같습니다. 즉, emsdk를 사용하여 웹 브라우저에서 실행 수 있게 ".wasm" 파일로 컴파일하여 웹브라우저에서 실행 할 수 있습니다.
WebAssembly의 작
1.고성능
- WebAssembly는 네이티브 코드와 비슷한 수준의 성능을 공합니다. 이는 복잡한 계산과 그래픽 처리가 필요한 작업해서
2. 크로스 플랫폼
- WebAssembly는 여러 플랫폼과 브라우저에서 동일하게 작동합니다. 이를 통해 개발자는 다양한 환경에서 일관된 성능과 기능을 보장할 수 있습니다.
3. 언어 중립적
- WebAssembly는 다양한 언어를 지원합니다. C, C++, C#, Rust, Golang, Python 등 다양한 언어로 작성된 코드를 WebAssembly로 컴파일하여 브라우저에서 실행 가능합니다.
4. 보안성
- WebAssembly는 샌드박스 환경에서 실행되므로, 코드가 브라우저 밖으로 벗어나지 못하게하여 높은 보안성을 제공합니다. (샌드박스 환경에 대한 설명은 아래 링크 참고)
샌드박스 (소프트웨어 개발) - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 샌드박스(sandbox)는 보호가 필요한 어린아이들을 위해 모래통에서만 놀도록 하는데서 유래한 소프트웨어 보안 개발기법이다. 운영 환경이 저장소로부터 테스트
ko.wikipedia.org
5. 빠른 로드 타임
- WebAssembly 모듈은 크기가 작고, 바이너리 포맷이기 때문에 빠르게 로드되고 실행될 수 있습니다. 즉, Javascript로 생성한 프로그램 보다 WebAssembly를 통해 더 같은 프로그램이라도 더 빠르게 실행 할 수 있습니다.
6. 기존 자바스크립트와의 호환성
- WebAssembly는 기존 웹환경을 망가트리지 않고 동일 하게 사용 할 수 있습니다. 즉, 기존 웹 개발 환경인 HTML, CSS, Javascript와 함께 사용 될 수 있습니다.
WebAssembly는 이러한 잠정을 통해 복잡하고 성능이 중요한 웹 애플리케이션을 가능하게 합니다. 이미지 필터, 동영상 플레이어 등 실제로 웹으로 구현 힘들거나 구현하더라도 성능이 나오기 어려운 부분들을 다른 언어로 작성하여 웹에서 실행 함으로써 웹에서 부족한 부분을 채울 수 있습니다.
실제로 K사에서 웹어셈블리를 통해 이미지 필터기능의 성능 향상을 했던 사례가 있고, Auto Cad 또한 WebAssembly를 사용하여 Web에서 제품을 실행 가능하도록 했던 사례가 있습니다.
https://tech.kakao.com/posts/438
FE개발자의 성장 스토리 08 : WebAssembly 개발기 - tech.kakao.com
안녕하세요, FE플랫폼팀에서 전사 에디터 및 웹 사진 편집기를 개발하고 있는 sk...
tech.kakao.com
https://web.autocad.com/login
web.autocad.com
이번 포스팅에서는 간단히 WebAssembly에 대해서 설명 했데요. 다음 포스팅에서는 WebAssembly 컴파일 환경 구성 그리고 어떻게 컴파일 하고 실행하는지에 대해서 설명하도록 하겠습니다.
'기타 > WebAssembly' 카테고리의 다른 글
[Webassembly] C++ to Javascript(Javascript to C++) 함수 호출 (0) | 2024.08.11 |
---|---|
[Webassembly] Emscripten 사용하여 Webassembly 컴파일 (0) | 2024.08.06 |
[Webassembly] Windows환경에서 Emscripten 설치 (0) | 2024.07.30 |