"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > WebAssembly: 당신에게 필요한지 몰랐던 초능력

WebAssembly: 당신에게 필요한지 몰랐던 초능력

2024-11-08에 게시됨
검색:175

WebAssembly: The Superpower You Didn’t Know You Needed

개발자 서클에 충분히 오랫동안 숨어 있었다면 아마도 WebAssembly(또는 Wasm, 왜냐하면 개발자들은 제가 좋아하는 약어를 좋아하기 때문입니다)에 대한 속삭임을 들어보셨을 것입니다. 커피).

한때 "차세대 대세"로 찬사를 받았던 이 새로운 도구는 귀하의 브라우저를 보잘것없는 문서 뷰어에서 본격적인 슈퍼 히어로로 변화시키겠다고 약속했습니다. 글쎄, WebAssembly는 몇 년 전부터 존재해왔는데, 어떨지 추측해 보세요. 그 약속을 이행하며 여전히 여기에 있습니다. JavaScript는 물러서지 않았지만 Wasm은 뒤에서 묵묵히 무거운 일을 해왔고 웹 성능 게임의 확고한 파트너가 되었습니다.

그렇다면 WebAssembly란 정확히 무엇입니까?

이것을 상상해보세요: JavaScript와 C가 술을 마시고 속도와 효율성에 대해 깊은 대화를 나누고 붐을 일으키고 있습니다. WebAssembly가 탄생했습니다. Wasm은 브라우저에서 실행할 수 있는 어셈블리와 유사한 하위 수준 언어로, 웹 애플리케이션을 더 빠르고 효율적으로 만들고 브라우저가 처리할 수 없다고 생각했던 작업을 실행할 수 있도록 설계되었습니다. JavaScript가 벤치마크할 수 있는 것보다 훨씬 더 많은 기능을 수행할 준비가 되어 있는 후드 아래에 식스팩이 있는 브라우저라고 생각하세요.

일반 영어로요? WebAssembly는 기본 기계 코드만큼 빠르게 실행될 수 있는 컴파일된 코드 형식이며 JavaScript를 대체하는 것이 아니라 함께 작동하도록 설계되었습니다. 그러니 아직은 힘들게 얻은 JS 기술을 모두 쓰레기통에 버릴 필요가 없습니다.

왜 관심을 가져야 합니까? (또는: 우리는 왜 이것에 대해 관심을 갖고 있습니까?)

웹은 트위터에서 고양이 밈과 무한 스크롤을 표시하는 데 적합하지만 역사적으로 3D 게임, 비디오 편집, 실시간 시뮬레이션과 같이 너무 강렬한 작업을 처리하는 데는 형편없었습니다. Wasm이 개입하여 비효율성의 손아귀에서 코드를 구출할 준비가 된 슈퍼히어로처럼 멋지고 위협적인 모습을 보입니다. ?.

WebAssembly가 제공하는 기능은 다음과 같습니다.

  • 속도: Wasm은 정말 빠르게 실행됩니다. 예를 들어, "로드 시간을 몇 초 단축"하는 것처럼 빠릅니다. 예를 들어, "JavaScript를 사용하여 어려움을 겪은 모든 시간에 대해 갑자기 기분이 나빠졌습니다."
  • 언어 유연성: 더 이상 JavaScript에만 국한할 필요가 없습니다. C, C, Rust 등으로 코딩할 수 있습니다. WebAssembly는 상관하지 않습니다. WebAssembly는 이 모든 것을 브라우저에서 눈부시게 빠른 성능으로 바꿔줄 것입니다. 프로그래밍 언어의 스위스입니다. 중립적이지만 비밀리에 강력합니다.
  • 브라우저를 위한 강력한 기능: 컴퓨터가 백그라운드에서 작동하지 않고 브라우저에서 직접 3D 게임, CAD 소프트웨어 또는 기계 학습 모델을 실행하고 싶으십니까? Wasm이 이를 가능하게 합니다. 귀하의 브라우저는 "워드 프로세서"가 아니라 "아이언맨 슈트"로 변했습니다.

"하지만 저는 웹 개발자이고 JavaScript는 제 인생의 결정판입니다!"

우선, 자바스크립트와 헤어질 필요가 없습니다. Wasm은 그걸로 잘 놀아요?. Wasm을 JS가 몇 개의 루프를 실행한 후 어려움을 겪을 때 무거운 작업을 도와주는 JavaScript의 근육질 친구라고 생각하세요.

사실 WebAssembly는 실제로 JS 코드를 더 좋게 만들 수 있습니다. 성능이 많이 필요한 작업(복잡한 계산, 파일 구문 분석, 비디오 렌더링 등)이 있는 경우 이를 Wasm에 넘겨서 JS가 일반적인 DOM 조작 마법에 집중하는 동안 Wasm이 무거운 작업을 처리하도록 할 수 있습니다.

JavaScript와 WebAssembly의 관계는 똑똑한 사람(JS)과 건장한 사람(Wasm)이 함께 협력하여 세상을 구하는 슈퍼히어로 팀업과 같습니다. 어느 쪽도 교체되지 않습니다. 함께 사용하면 더 좋습니다. 땅콩버터와 젤리처럼 말이죠. 또는 탭과 공백(농담, 불꽃 전쟁을 시작하지 마세요).

“알았어, 알았어… 하지만 WebAssembly를 사용하려면 어떻게 시작해야 하나요?”

1단계: 숨을 쉬세요. Wasm은 겁나게 들릴 수도 있지만 사용하기가 그리 어렵지 않습니다. 특히 C, C 또는 Rust와 같은 컴파일 언어로 작성해 본 적이 있다면 더욱 그렇습니다. 아직 안 해보셨다면? 축하합니다! WebAssembly는 그동안 피했던 위협적인 언어를 마침내 배울 수 있는 훌륭한 변명입니다.

2단계: Wasm을 생성할 수 있는 컴파일러를 얻습니다. 코드(C, C, Rust 등)를 가져와 Wasm으로 컴파일하는 도구가 많이 있습니다. Emscripten은 C/C 프로젝트에 널리 사용되는 반면, wasm-pack은 Rust 프로젝트에 탁월합니다.

3단계: 브라우저에 넣으세요. 코드를 WebAssembly로 컴파일한 후에는 브라우저에 로드하여 멋진 성능 향상을 활용할 수 있습니다. 하지만 Wasm은 주목을 받지 않습니다. JavaScript와 조화롭게 작동하도록 고안되었습니다. JavaScript 코드는 마치 갱단의 일부인 것처럼 WebAssembly 함수를 호출합니다. 드라마는 없습니다.

4단계: 이익. 아니면 최소한 마치 니트로 버튼이 있는 것처럼 웹 앱이 성능 병목 현상을 뛰어넘는 모습을 편안하게 지켜보세요.

웹어셈블리가 세계를 장악할 것인가?

보세요, 우리는 WebAssembly가 JavaScript를 더 이상 사용하지 않게 만들거나 브라우저가 거의 네이티브 코드 실행의 강력한 힘으로 인해 자발적으로 연소되기 시작할 것이라고 말하는 것이 아닙니다. 하지만... 어쩌면?

실제로 WebAssembly의 미래는 무엇이든 대체하는 것보다 기존 웹 생태계를 보완하는 데 더 가깝습니다. 도구입니다. 강력한 것입니다. 하지만 JavaScript 군주제를 전복하려는 것이 아니라 도움을 주기 위해 여기에 있는 것입니다. Wasm이 전체 웹에서 주류가 되려면 아직 몇 년이 걸릴 것 같지만 이미 게임, 멀티미디어 앱, 심지어 블록체인 분야에서도 큰 파장을 일으키고 있습니다. 네, 블록체인입니다. 왜냐면 Wasm이 안 갈 곳은 없을 것 같거든요.

최종 생각: Wasm이 진짜 거래입니다

웹어셈블리가 사람이라면 예고도 없이 나타나서 무거운 가구 옮기는 걸 도와주고, 피자 달라고 하지 않고 떠나는 친구일 거에요. 무거운 계산, 성능 최적화, 브라우저를 우리가 가능하다고 생각했던 것보다 훨씬 더 많은 기능을 갖춘 강력한 시스템으로 바꾸는 등 더러운 작업을 수행하기 위해 여기에 있습니다.

그러므로 웹 앱이 수행할 수 있는 작업의 한계를 뛰어넘고 싶거나 브라우저가 슈퍼히어로 훈련을 거친 것처럼 느껴지도록 만들고 싶다면 WebAssembly가 도와드리겠습니다. 기억하세요. 강력한 성능에는 뛰어난 컴파일 시간이 따른다는 점입니다. ?.

나에 대해

안녕하세요. 저는 programORdie입니다. 이번 글은 저의 첫 번째 실제 기사입니다. 여러분의 피드백을 환영합니다. 자유롭게 댓글을 남겨주세요!!
내 프로젝트를 확인하거나 GitHub(programORdie2.

)에 문의할 수도 있습니다.

글이 즐거우셨기를 바랍니다. 좋은 하루 보내세요!?

릴리스 선언문 이 글은 https://dev.to/programordie/webassemble-the-superpower-you-didnt-know-you-needed-c9o?1 에서 복제되었습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다. 그것
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3