정보관리기술사/한 줄 키워드 + 그림 하나

WebAssembly

자격증 홀릭 2022. 6. 9. 10:01
728x90
반응형

q 네이티브 성능을 웹으로 WebAssembly

n  WebAssembly의 개념

-   웹 페이지 내에서 코드를 직접 수행하는 바이너리 포맷을 정의하는 웹 표준

-   현재 브라우저에서 C, C++, Rust 등과 같은 저수준의 소스 언어를 효과적으로 실행할 수 있는 새로운 형식의 코드 표준

-   W3C 커뮤니티 그룹에 구글, MS, 애플, 모질라가 참여하여 웹 성능을 향상시키기 위해 2015년부터 개발하고 표준 포맷으로 2017 3월 도입되어 현재 지원(Wasm:와즘)

 

n  WebAssembly 등장배경

등장배경 설명
플러그인 지원 중단 점차적으로 보안적인 이슈와 복잡한 코드 등에 이슈로 NPAPI 등 플러그인 지원 중단
자바스크립트의 한계 3D, 가상/증강현실, 영상처리, 이미지/미디어 편집, 그 외 네이티브 성능을 필요로 하는 여러 분야에서 성능 상의 문제 제기

n WebAssembly 목표

목표 설명
빠르고, 효과적이고 이식성이 좋을 것 일반적인 HW들이 제공하는 기능을 활용하여 여러 종류의 플랫폼 위에서 거의 네이티브에 가까운 속도로 실행
읽기 쉽고
디버깅 가능
저수준의 어셈블리 언어이지만, 쉽게 구현하고 디버깅할 수 있도록 텍스트 포맷 지원
안전함을 유지할 것 샌드박싱된 실행환경에서 안전하게 돌아갈 수 있도록 설계
기존 웹기술과 공존 다른 웹 기술과 마찰없이 사용되면서 하위호환성을 지원

q WebAssembly 구동환경 및 핵심 구성

n  WebAssembly 구동환경

 
개발자는 자신이 원하는 언어로 소스코드를 작성
이를 웹어셈블리 바이트코드로 컴파일. Emscripten 컴파일 결과를 받아다가 .wasm 바이너리로 변환
이 바이트코드는 클라이언트(웹브라우저)에서 기기 고유의 코드로 해석된 후 실행

 

 

 

n  WebAssembly 도구

도구 설명
Emscripten 네이티브 코드로 작성된 기존의 코드를 손쉽게 WebAssembly 코드로 전환하는 LLVM-to-JavaScript 컴파일러
WebAssembly Explorer C/C++ 컴파일러를 통해 어떻게 WebAssembly 코드가 생성되고 브라우저에서 실행되는지를 온라인에서 확인해 볼 수 있는 도구
WasmFiddleWebAssembly Fiddle JavaScript 코드 조각(snippet)을 온라인에서 직접 작성하고 테스트할 수 있는 서비스인 JSFiddleJS BinCodePen 등과 유사하게 WebAssembly의 코드 조각을 실행해 볼 수 있는 도구
WebAssembly Code Explorer 바이너리 수준에서 코드가 어떻게 인코딩되는지 살펴볼 수 있는 도구

 

n  WebAssembly 핵심구성

구성 설명
모듈 실행 가능한 컴퓨터 코드로 브라우저에서 컴파일된 WebAssembly 바이너리
메모리 웹어셈블리의 저수준 메모리 접근 명령어에 의해 읽고 쓰여지는 바이트들의 선형 배열이며 사이즈 조절이 가능한 ArrayBuffer
테이블 (안전성이나 이식성 등을 위해서) Raw 바이트로 메모리에 저장될 수 없는(예를 들면 함수를 가리키는) 레퍼런스로 사이즈 조절 가능한 형식이 지정된 배열
인스턴스 모듈과 모듈이 사용하는 모든 상태의 쌍. 모듈의 상태로는 메모리, 테이블, 임포트된 값의 집합 등이 있음

q WebAssembly 적용 방식

방식 설명
다이렉트 컴파일링 소스 언어를 그 언어의 자체 컴파일러 툴 체인을 통해 웹어셈블리로 변환하는 방식
서드 파티 툴 툴 체인이 WASM을 지원하지 않지만, 서드 파티 유틸리티를 사용해 WASM으로 변환하는 방식
웹어셈블리 기반
전환
웹어셈블리에 내장된 ‘인터프리터(interpreter)’가 해당 언어로 쓰여진 코드를 구동하는 방식

   대용량 연산 작업이 필요한 경우의 해법이 되며 ActiveX, Portable Native Client(PNaCl)의 대체 가능

728x90

'정보관리기술사 > 한 줄 키워드 + 그림 하나' 카테고리의 다른 글

정보보호 공시제도  (0) 2022.06.09
블록체인의 유형, 합의 기술  (0) 2022.06.09
EVM, TCPI  (0) 2022.06.09
요구사항 명세(SRS)  (0) 2022.06.09