WebAssembly 프로그래밍

(4.3) 수강평 3

수강생 84

Thumbnail

초급자를 위해 준비한
[웹 개발, 풀스택] 강의입니다.

WebAssembly를 이용해 C, C++, Rust 등의 컴파일 언어로 웹 브라우저에서 동작하는 고성능 웹 애플리케이션을 개발 할 수 있습니다.

이런 걸
배워요!

  • C로 작성한 어플리케이션을 웹 브라우저에서 실행할 수 있음

  • C++로 작성한 어플리케이션을 웹 브라우저에서 실행할 수 있음

  • Rust로 작성한 어플리케이션을 웹 브라우저에서 실행할 수 있음

 C, C++, Rust로 웹 애플리케이션을! 
웹어셈블리 프로그래밍의 모든 것.

컴파일 언어로 웹 애플리케이션을? 
WebAssembly 프로그래밍

웹 브라우저에서 동작하는 웹 애플리케이션을 개발하기 위해서는 HTML, CSS, JavaScript, PHP, ASP. NET, JSP 등 웹 프로그래밍 언어를 사용해야 합니다. C, C++, Rust 등의 컴파일 언어로는 웹 애플리케이션을 개발할 수 없습니다. 

웹 프로그래밍 언어의 예

하지만 WebAssembly라는 기술을 사용하면 C, C++, Rust 등의 컴파일 언어를 이용해 웹 애플리케이션을 개발할 수 있게 됩니다. 즉 WebAssembly는 새로운 프로그래밍 언어가 아니라 컴파일 언어로 웹 애플리케이션을 구현하는 기술입니다.

WebAssembly(WASM)

다음 그림과 같이 WebAssembly 기술을 이용하면 C, C++, Rust 등의 언어로 컴파일한 실행 파일을 웹 브라우저에서 실행할 수 있습니다. 

WebAssembly 기술은 컴파일 언어로 하여금 네이티브에 가까운 빠른 속도로 웹브라우저에서 동작하는 웹 애플리케이션을 개발할 수 있다는 강점이 있습니다. JavaScript로 구현하기 어려웠던 복잡한 로직 및 고성능을 요하는 웹 애플리케이션 또한 WebAssembly를 이용해 구현할 수 있습니다.

네이티브 웹 애플리케이션 vs. WebAssembly 웹 애플리케이션

동일한 소스코드를 사용해 빌드한 네이티브 애플리케이션과 WebAssembly 기술을 이용해 빌드한 웹 애플리케이션을 비교해 실행한 화면입니다. 비교 결과 동작 속도 차이를 느끼기 어려울 정도로 빠른 실행 결과를 보여줍니다. 

1) 동일한 소스코드로 빌드한 Clock 실행 비교 화면

네이티브 컴파일러를 이용해 빌드한 파일을 실행한 화면
WebAssembly 기술로 빌드한 실행파일(WASM)을 웹 브라우저에서 실행한 화면

2) 동일한 소스코드로 빌드한 Submarine Attack 게임 소스코드 실행 비교 화면

네이티브 컴파일러를 이용해 빌드한 파일을 실행한 화면
WebAssembly 기술로 빌드한 실행파일(WASM)을 웹 브라우저에서 실행한 화면

3) 동일한 소스코드로 빌드한 Colliding Mice 실행 비교 화면

네이티브 컴파일러를 이용해 빌드한 파일을 실행한 화면
WebAssembly 기술로 빌드한 실행파일(WASM)을 웹 브라우저에서 실행한 화면

WebAssembly가 지원하는 언어

현재 20개의 언어가 WeAssembly를 지원합니다. 컴파일 언어 외에 인터프리터 언어도 지원합니다. 앞으로 WebAssembly가 지원하는 언어는 더 늘어날 전망입니다. 

JavaScript VS WebAssembly 

JavaScript는 WebAssembly에 비해 여러 단계의 과정을 거쳐 웹 브라우저에서 실행됩니다. 반면 WebAssembly는 그보다 간단한 과정을 거치며, 크게 Decode - Compile 및 Optimize의 3가지 과정을 거쳐 웹 브라우저에서 실행됩니다. 

그렇기 때문에 JavaScript에 비해 훨씬 빠른 속도로 웹 어플리케이션을 시작할 수 있습니다.

WebAssembly의 역사

2015년 첫 시연 당시 WebAssembly는 Unity의 Angry Bots을 Firefox, Google Chrome, Microsoft Edge 웹 브라우저에서 실행하였습니다. 현재 W3C(World Wide Web Consortium)에서 WebAssembly 기술 표준을 정의하고 관리합니다.


강의의 목표를 
확인해 보세요.

Microsoft Windows, Linux 및 macOS 등 다양한 플랫폼에서 WebAssembly 개발 환경을 구축하는 방법에 대해 배웁니다.

WebAssembly 기술로 웹 애플리케이션을 개발할 때 C, C++, Rust를 사용하는 방법을 배울 수 있습니다.

JavaScript로 개발하기에는 어렵고 복잡한 로직을 갖췄거나 고성능을 요하는 웹 애플리케이션을 WebAssembly 기술로 보다 쉽고 빠르게 개발할 수 있습니다.

 C, C++, Rust 등의 언어로 컴파일되어 있으면서도 네이티브에 준하는 성능으로 동작을 수행하는 웹 애플리케이션을 개발할 수 있습니다.

이 강의만의 핵심 장점 ✅

실전까지 생각한 강의

실전 능력까지 향상시킬 수 있도록 강의를 구성하였습니다. 모든 섹션별 이론 학습 후에는 실전 예제를 강의를 따라 직접 구현해가며 배울 수 있는 수업이 준비되어 실무 능력을 높일 수 있습니다.

생생한 라이브 코딩으로 집중 Up

지식공유자의 모습을 강의 화면에 함께 담았습니다. 생생한 라이브 코딩과 함께 진행되는 수업을 통해 마치 오프라인 수업을 듣는 느낌으로 언제 어디서나 학습해 보세요.

WebAssembly 프로그래밍, 이런 분들께 추천합니다!

✅ 컴파일 언어(C/C++, Rust 등)로 웹 브라우저에서 동작하는 고성능 웹 어플리케이션을 개발하고자 하는 분

✅ 웹 서버에 WebAssembly 실행파일(WASM)을 교체함으로써 모든 유저에게 실시간 업데이트된 버전을 제공하려는 분

✅ 설치가 필요하지 않은, 웹 브라우저에서 동작하는 웹 어플리케이션을 개발하고자 하는 분


Q&A 💬

Q. 이론/문법 외에 실제로 쓰이는 다양한 예제도 접할 수 있을까요?

네 가능합니다. 다양한 언어(C, C++, Rust)로 WebAssembly를 개발하는 과정을 예제로 접할 수 있으며 또한 실습을 통해 WebAssembly 개발 노하우를 배울 수 있도록 구성하였습니다.

Q. WebAssembly 개발 환경으로 리눅스(Linux)를 선호하는데 환경 구축이 가능할까요?

네 가능합니다. 리눅스 이외에도 Microsoft Windows, macOS에서 WebAssembly 개발 환경을 구축하는 방법을 강의를 통해 배우실 수 있습니다. 

이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • C, C++, Rust 등의 컴파일 언어로 작성한 애플리케이션을 웹 브라우저로 실행하고 싶은 분

  • C, C++, Rust를 이용해 웹 브라우저에서 동작하는 웹 애플리케이션을 개발하고자 하는 분

선수 지식,
필요할까요?

  • C언어 또는 C++ 언어 기초

지식공유자 소개 ✒️

: IT 관련 기업 연구소 부장
전: LG전자, VS사업부 IVI선행플랫폼/모듈개발
전: SW마에스트로, SW 멘토

저서: Qt 프로그래밍, Qt Quick 프로그래밍, Qt5 프로그래밍 가이드, MeeGo 프로그래밍 완벽 가이드, Qt 실전 프로그래밍

SW커뮤니티 운영: Qt 개발자 커뮤니티 운영자 ( www.qt-dev.com )

커리큘럼

전체

67 ∙ 13시간 26분

강의 게시일: 2023년 03월 03일
마지막 업데이트일: 2023년 03월 03일

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!