웹어셈블리(WebAssembly)의 줄임말인 Wasm은 웹용으로 개발됐다. 하지만 Wasm 기술은 웹 브라우저를 넘어 확장됐다. 이제 기업은 서버 쪽에서 Wasm을 실행하기 시작했다. 예를 들면 싱글스토어(SingleStore)는 자사 데이터베이스에서 Wasm을 사용하고 있다.
일각에서는 Wasm이 컨테이너 기술과 유비쿼터스 자바스크립트를 대체할 것이라고 생각한다. 믿든 믿지 않든 Wasm은 분명히 클라우드 컴퓨팅에 영향을 미치고 있다. 왜 그리고 어떻게?
Wasm은 크로스 플랫폼이다 : 클라우드 구성요소를 안전하고 간단하게 결합한다
소프트웨어 작성에는 수많은 종류의 언어가 사용된다. 그 많은 언어의 상호작용을 보장하는 것은 어렵다. Wasm은 사용자가 원하는 어떤 언어로든 작성할 수 있는 프레임워크를 제공한다. 그 다음 공통으로 시뮬레이션된 기계어 형식을 생성한다.이 형식을 사용하면 러스트, C/C++, 고랭 등 다양한 언어로 작성된 구성요소가 서로 통신할 수 있다. 또 Wasm은 서버 측 시스템(예 : 데이터베이스 등)이 해당 모듈을 어떻게 생성했는지 확인하거나 신경 쓰지 않고도 다른 언어의 구성요소를 내장한다.
Wasm을 범용 플러그인 형식이라고, 서드파티에서 개발한 구성요소로 시스템의 기능을 강화하고 싶다고 가정해보자. Wasm을 활용하면 일반적으로 추가 기능을 통합할 때 수반되는 위험 없이 시스템에 새 구성요소를 가져올 수 있다. 예를 들어 외부 구성요소가 시스템을 충돌시킬 수도, 예기치 않은 방식으로 움직일 수도 있다. Wasm은 서로 다른 시스템과 구성요소가 상호 작용하는 매우 안전한 프레임워크를 만들어 이러한 문제를 완화한다.
클라우드는 Wasm 확장의 큰 원동력이다. Wasm은 가상화돼 있고, Wasm 런타임을 지원하는 모든 환경에서 작동할 수 있기 때문에 클라우드에 적합하다. 아울러 클라우드 시스템은 서로 다른 방식으로 연결된 수많은 서비스로 구성된다. 복잡해질 수 있다는 이야기다. 클라우드 환경을 단순화할수록 클라우드 시스템의 다양한 측면을 함께 작동하기가 쉬워진다.
Wasm은 안전하다 : 코드 실행 및 기능 표현 방식이 위험을 줄임
대부분의 언어 런타임에서 함수는 주소를 가진다. 이러한 주소는 메모리에서 실행 가능한 지점이다. 메모리를 바이트 묶음으로 보면 함수는 메모리의 나머지 부분과 구별되지 않는다. 그래서 함수를 찾아 코드를 주입하거나, 함수를 호출해서 함수가 하면 안 되는 작업을 할 수 있도록 문을 열어주어야 한다. Wasm 설계는 이러한 문제를 해결한다.Wasm은 악용할 수 없는 방식으로 기능을 나타낸다. 또 샌드박스에서 코드를 실행하여 신뢰할 수 없는 코드 실행과 관련된 보통의 보안 문제를 완화한다. Wasm은 프로그램 메모리를 안전한 영역에 캡슐화하기 때문에 프로그램을 실행하는 호스트에 영향을 미치거나 보안을 손상시킬 수 있는 다른 위치에 액세스할 수 없다.
아울러 Wasm의 기능 기반 보안 모델을 통해 호스트는 Wasm 프로그램이 실행할 수 있는 권한이 있는 작업 종류를 제어할 수 있다. 예를 들면 파일 액세스가 필수라면 호스트는 디렉토리 액세스 권한을 명시적으로 부여해야 한다.
Wasm은 빠르다 : 불필요한 것을 제거하고 속도와 효율성을 향상
확실히 Wasm은 더 안전하고 간단한 방법으로 요소 요소를 한곳에 모을 때 사용된 최초의 기술은 아니다. 하지만 Wasm은 분명 다른 기술보다 훨씬 더 빠르다.컴파일러는 LLVM 백엔드를 활용해 LLVM 중간 표현(IR)으로 컴파일하여 Wasm 프로그램을 생성할 수 있다. LLVM 또는 저수준 가상머신은 이미 많은 언어가 컴파일되는 추출된 머신이다. 이러한 접근 방식으로 인해, 그리고 LLVM 프로젝트를 둘러싼 수년간의 커뮤니티 노력 덕분에 Wasm 프로그램은 고도로 최적화된 기계 코드로 컴파일된다.
싱글스토어에서는 Wasm이 얼마나 빠르고 가벼운지 보여주기 위해 데이터베이스 내부의 가상 실시간 우주인 ‘Wasm 스페이스 프로그램(Wasm Space Program)’을 만들었다. 이 시뮬레이션에서 우주선은 에너지를 보충하고 광대한 실시간 ‘우주’에서 다른 우주선과 싸우기 위해 다양한 전략을 사용한다. 당연히 방대한 양의 데이터가 포함되는데, 이를테면 시스템에는 100만 대 이상의 선박이 있고 초당 약 300만 개의 데이터베이스 업데이트가 이뤄진다.
기존에는 해당 데이터를 통합하여 중간 계층에서 조합하려면 많은 데이터를 중간 계층으로 가져와야 했다. 이로 인해 상당한 지연이 발생할 수 있었으며, 실시간 응답을 얻으려면 복잡한 캐싱이 필요했다. 각 우주선의 전략은 이러한 접근 방식을 취하는 대신 Wasm로 작성돼 UDF로 데이터베이스에 로드됐다. 매초마다 각 우주선의 전략 함수가 다음 움직임을 결정하기 위해 호출된다.
프론트엔드(브라우저에서 실행되는 자바스크립트 프로그램)에는 이러한 전략이나 우주의 상태를 이해하는 것이 없다. 데이터베이스에 SQL 쿼리를 직접 실행하고, 반환된 정보를 그래픽으로 표시하는 작업만 수행한다. 데이터베이스는 모든 상태 정보를 유지하며, Wasm은 데이터 바로 옆에서 연산하므로 훨씬 더 빠르다. 중간 계층은 필요하지도 않다.
Wasm을 다른 수많은 애플리케이션 및 사용 사례를 해결하는 데도 사용할 수 있다. 예를 들면 감정 분석에 Wasm을 쓸 수 있다. 감정 분석에 필요한 복잡한 로직은 데이터베이스 SQL 언어로 쉽게 표현할 수 있는 것이 아니다. 따라서 이를 위해서는 정교한 언어로 구축한 다음, 각 데이터 행을 다운로드하여 데이터를 가져와야 한다. 그다음 감정 분석 등급을 데이터베이스로 다시 푸시해야 한다. 즉, 사용하는 데이터베이스의 모든 행에 대한 왕복을 의미한다. 수백만 개의 행이 있으면 많은 네트워크 트래픽이 생성된다. 하지만 싱글스토어에서 Wasm을 통합한 방식을 사용하면 이미 데이터베이스에 있기 때문에 오버헤드가 발생하지 않는다.
Wasm은 항상 개선되고 있다 : 표준을 만들면 더 강력해진다
Wasm은 이미 매우 유능하다. 그리고 새로운 기술과 표준은 Wasm이 더 많은 일을 할 수 있도록 할 것이다. 예를 들면 W3C 웹어셈블리 커뮤니티 그룹(W3C WebAssembly Community Group)은 바이트코드 얼라이언스(Bytecode Alliance) 등의 지원을 받아 현재 WASI(Web Assembly System Interface) 표준화 작업을 진행하고 있다.WASI는 서버에서 Wasm 모듈이 실행될 때 쓸 수 있는 표준 API 및 서비스 세트를 제공할 예정이다. 가비지 수집, 네트워크 I/O 및 스레딩 등의 많은 표준 제안이 아직 진행 중이기 때문에 다른 프로그래밍 언어로 수행하는 작업을 항상 Wasm에 매핑할 수는 없다. 하지만 궁극적으로 WASI는 이를 달성하는 데 도움이 될 완전한 표준을 제공하는 것을 목표로 한다. WASI의 목표는 여러 면에서 POSIX와 유사하다.
현재의 Wasm은 다른 Wasm 모듈과 연결하거나 통신하는 기능도 다루지 않는다. 하지만 Wasm 커뮤니티는 컴퓨터 업계 구성원의 지원을 받아 구성요소 모델을 만드는 작업을 하고 있다. 이는 구성요소가 시작되고, 서로 통신하는 방식을 정의하여 Wasm 모듈을 중심으로 동적 연결 인프라를 만드는 것을 목표로 한다(기존 OS의 프로세스 모델과 유사하다).
또 WIT(Web Assembly Interface Types)라고 하는 새로운 표준 IDL 구문을 활용하면 사람들이 언어에 구애받지 않는 방식으로 Wasm 인터페이스를 설명할 수 있다. 결과적으로 바인딩 생성기는 IDL에 있는 것을 가져와 Wasm 호스트와 게스트가 공통적인 방식으로 데이터를 주고받는 코드를 컴파일할 수 있게 된다.
Wasm은 미래다 : 더 빠르고, 더 안전하며, 더 효율적인 통합 방법을 제공한다
Wasm이 가벼운 것은 사실이지만 빠른 시일 안에 컨테이너를 대체할 수단은 아니다. 하지만 앞으로 많은 소프트웨어의 일부가 되리라 예상된다. Wasm은 서버에 있든 엣지에 있든 간에, 데이터에 훨씬 더 가까운 곳에서 실행되는 사용자 정의 논리를 만들 수 있으며, 안전하고 효율적이며 유연하게 수행할 수 있기 때문이다.
이제 싱글스토어를 사용하면 기존 프로그램을 Wasm에 컴파일하여 데이터베이스에 밀어 넣고 실행할 수 있다. 즉, 코드를 다시 작성하여 데이터가 없는 곳에 둘 필요가 없다. Wasm 기술을 사용하면 양쪽의 장점을 모두 누릴 수 있다는 의미다.
ciokr@idg.co.kr
함께 보면 좋은 콘텐츠
Sponsored
Surfshark
“유료 VPN, 분명한 가치 있다” VPN 선택 가이드
ⓒ Surfshark VPN(가상 사설 네트워크, Virtual Private Network)은 인터넷 사용자에게 개인 정보 보호와 보안을 제공하는 중요한 도구로 널리 인정받고 있다. VPN은 공공 와이파이 환경에서도 데이터를 안전하게 전송할 수 있고, 개인 정보를 보호하는 데 도움을 준다. VPN 서비스의 수요가 증가하는 것도 같은 이유에서다. 동시에 유료와 무료 중 어떤 VPN을 선택해야 할지 많은 관심을 가지고 살펴보는 사용자가 많다. 가장 먼저 사용자의 관심을 끄는 것은 별도의 예산 부담이 없는 무료 VPN이지만, 그만큼의 한계도 있다. 무료 VPN, 정말 괜찮을까? 무료 VPN 서비스는 편리하고 경제적 부담도 없지만 고려할 점이 아예 없는 것은 아니다. 보안 우려 대부분의 무료 VPN 서비스는 유료 서비스에 비해 보안 수준이 낮을 수 있다. 일부 무료 VPN은 사용자 데이터를 수집해 광고주나 서드파티 업체에 판매하는 경우도 있다. 이러한 상황에서 개인 정보가 유출될 우려가 있다. 속도와 대역폭 제한 무료 VPN 서비스는 종종 속도와 대역폭에 제한을 생긴다. 따라서 사용자는 느린 인터넷 속도를 경험할 수 있으며, 높은 대역폭이 필요한 작업을 수행하는 데 제약을 받을 수 있다. 서비스 제한 무료 VPN 서비스는 종종 서버 위치가 적거나 특정 서비스 또는 웹사이트에 액세스하지 못하는 경우가 생긴다. 또한 사용자 수가 늘어나 서버 부하가 증가하면 서비스의 안정성이 저하될 수 있다. 광고 및 추적 위험 일부 무료 VPN은 광고를 삽입하거나 사용자의 온라인 활동을 추적하여 광고주에게 판매할 수 있다. 이 경우 사용자가 광고를 보아야 하거나 개인 정보를 노출해야 할 수도 있다. 제한된 기능 무료 VPN은 유료 버전에 비해 기능이 제한될 수 있다. 예를 들어, 특정 프로토콜이나 고급 보안 기능을 지원하지 않는 경우가 그렇다. 유료 VPN의 필요성 최근 유행하는 로맨스 스캠은 인터넷 사기의 일종으로, 온라인 데이트나 소셜 미디어를 통해 가짜 프로필을 만들어 상대를 속이는 행위다. 이러한 상황에서 VPN은 사용자가 안전한 연결을 유지하고 사기 행위를 방지하는 데 도움이 된다. VPN을 통해 사용자는 상대방의 신원을 확인하고 의심스러운 활동을 감지할 수 있다. 서프샤크 VPN은 구독 요금제 가입 후 7일간의 무료 체험을 제공하고 있다. ⓒ Surfshark 그 외에도 유료 VPN만의 강점을 적극 이용해야 하는 이유는 다음 3가지로 요약할 수 있다. 보안 강화 해외 여행객이 증가함에 따라 공공 와이파이를 사용하는 경우가 늘어나고 있다. 그러나 공공 와이파이는 보안이 취약해 개인 정보를 노출할 위험이 있다. 따라서 VPN을 사용하여 데이터를 암호화하고 개인 정보를 보호하는 것이 중요하다. 서프샤크 VPN은 사용자의 개인 정보를 안전하게 유지하고 해킹을 방지하는 데 유용하다. 개인정보 보호 인터넷 사용자의 검색 기록과 콘텐츠 소비 패턴은 플랫폼에 의해 추적될 수 있다. VPN을 사용하면 사용자의 IP 주소와 로그를 숨길 수 있으며, 개인 정보를 보호할 수 있다. 또한 VPN은 사용자의 위치를 숨기고 인터넷 활동을 익명으로 유지하는 데 도움이 된다. 지역 제한 해제 해외 여행 중에도 한국에서 송금이 필요한 경우가 생길 수 있다. 그러나 IP가 해외 주소이므로 은행 앱에 접근하는 것이 제한될 수 있다. VPN을 사용하면 지역 제한을 해제해 해외에서도 한국 인터넷 서비스를 이용할 수 있다. 따라서 해외에서도 안전하고 편리하게 인터넷을 이용할 수 있다. 빠르고 안전한 유료 VPN, 서프샤크 VPN ⓒ Surfshark 뛰어난 보안 서프샤크 VPN은 강력한 암호화 기술을 사용하여 사용자의 인터넷 연결을 안전하게 보호한다. 이는 사용자의 개인 정보와 데이터를 보호하고 외부 공격으로부터 사용자를 보호하는 데 도움이 된다. 다양한 서버 위치 서프샤크 VPN은 전 세계 곳곳에 여러 서버가 위치하고 있어, 사용자가 지역 제한된 콘텐츠에 액세스할 수 있다. 해외에서도 로컬 콘텐츠에 손쉽게 접근할 수 있음은 물론이다. 속도와 대역폭 서프샤크 VPN은 빠른 속도와 무제한 대역폭을 제공하여 사용자가 원활한 인터넷 경험을 누릴 수 있도록 지원한다. 온라인 게임, 스트리밍, 다운로드 등 대역폭이 필요한 활동에 이상적이다. 다양한 플랫폼 지원 서프샤크 VPN은 다양한 플랫폼 및 디바이스에서 사용할 수 있다. 윈도우, 맥OS, iOS, 안드로이드 등 다양한 운영체제 및 디바이스에서 호환되어 사용자가 어디서나 안전한 인터넷을 즐길 수 있다. 디바이스 무제한 연결 서프샤크 VPN은 무제한 연결을 제공하여 사용자가 필요할 때 언제든지 디바이스의 갯수에 상관없이 VPN을 사용할 수 있다.