개발자 서클에 충분히 오랫동안 숨어 있었다면 아마도 WebAssembly(또는 Wasm, 왜냐하면 개발자들은 제가 좋아하는 약어를 좋아하기 때문입니다)에 대한 속삭임을 들어보셨을 것입니다. 커피).
한때 "차세대 대세"로 찬사를 받았던 이 새로운 도구는 귀하의 브라우저를 보잘것없는 문서 뷰어에서 본격적인 슈퍼 히어로로 변화시키겠다고 약속했습니다. 글쎄, WebAssembly는 몇 년 전부터 존재해왔는데, 어떨지 추측해 보세요. 그 약속을 이행하며 여전히 여기에 있습니다. JavaScript는 물러서지 않았지만 Wasm은 뒤에서 묵묵히 무거운 일을 해왔고 웹 성능 게임의 확고한 파트너가 되었습니다.
이것을 상상해보세요: JavaScript와 C가 술을 마시고 속도와 효율성에 대해 깊은 대화를 나누고 붐을 일으키고 있습니다. WebAssembly가 탄생했습니다. Wasm은 브라우저에서 실행할 수 있는 어셈블리와 유사한 하위 수준 언어로, 웹 애플리케이션을 더 빠르고 효율적으로 만들고 브라우저가 처리할 수 없다고 생각했던 작업을 실행할 수 있도록 설계되었습니다. JavaScript가 벤치마크할 수 있는 것보다 훨씬 더 많은 기능을 수행할 준비가 되어 있는 후드 아래에 식스팩이 있는 브라우저라고 생각하세요.
일반 영어로요? WebAssembly는 기본 기계 코드만큼 빠르게 실행될 수 있는 컴파일된 코드 형식이며 JavaScript를 대체하는 것이 아니라 함께 작동하도록 설계되었습니다. 그러니 아직은 힘들게 얻은 JS 기술을 모두 쓰레기통에 버릴 필요가 없습니다.
웹은 트위터에서 고양이 밈과 무한 스크롤을 표시하는 데 적합하지만 역사적으로 3D 게임, 비디오 편집, 실시간 시뮬레이션과 같이 너무 강렬한 작업을 처리하는 데는 형편없었습니다. Wasm이 개입하여 비효율성의 손아귀에서 코드를 구출할 준비가 된 슈퍼히어로처럼 멋지고 위협적인 모습을 보입니다. ?.
WebAssembly가 제공하는 기능은 다음과 같습니다.
우선, 자바스크립트와 헤어질 필요가 없습니다. Wasm은 그걸로 잘 놀아요?. Wasm을 JS가 몇 개의 루프를 실행한 후 어려움을 겪을 때 무거운 작업을 도와주는 JavaScript의 근육질 친구라고 생각하세요.
사실 WebAssembly는 실제로 JS 코드를 더 좋게 만들 수 있습니다. 성능이 많이 필요한 작업(복잡한 계산, 파일 구문 분석, 비디오 렌더링 등)이 있는 경우 이를 Wasm에 넘겨서 JS가 일반적인 DOM 조작 마법에 집중하는 동안 Wasm이 무거운 작업을 처리하도록 할 수 있습니다.
JavaScript와 WebAssembly의 관계는 똑똑한 사람(JS)과 건장한 사람(Wasm)이 함께 협력하여 세상을 구하는 슈퍼히어로 팀업과 같습니다. 어느 쪽도 교체되지 않습니다. 함께 사용하면 더 좋습니다. 땅콩버터와 젤리처럼 말이죠. 또는 탭과 공백(농담, 불꽃 전쟁을 시작하지 마세요).
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이 안 갈 곳은 없을 것 같거든요.
웹어셈블리가 사람이라면 예고도 없이 나타나서 무거운 가구 옮기는 걸 도와주고, 피자 달라고 하지 않고 떠나는 친구일 거에요. 무거운 계산, 성능 최적화, 브라우저를 우리가 가능하다고 생각했던 것보다 훨씬 더 많은 기능을 갖춘 강력한 시스템으로 바꾸는 등 더러운 작업을 수행하기 위해 여기에 있습니다.
그러므로 웹 앱이 수행할 수 있는 작업의 한계를 뛰어넘고 싶거나 브라우저가 슈퍼히어로 훈련을 거친 것처럼 느껴지도록 만들고 싶다면 WebAssembly가 도와드리겠습니다. 기억하세요. 강력한 성능에는 뛰어난 컴파일 시간이 따른다는 점입니다. ?.
안녕하세요. 저는 programORdie입니다. 이번 글은 저의 첫 번째 실제 기사입니다. 여러분의 피드백을 환영합니다. 자유롭게 댓글을 남겨주세요!!
내 프로젝트를 확인하거나 GitHub(programORdie2.
글이 즐거우셨기를 바랍니다. 좋은 하루 보내세요!?
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3