<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="rss.xsl"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Jaegyeom Kim Blog</title>
        <link>https://cmaybe.github.io/ko/blog</link>
        <description>Jaegyeom Kim Blog</description>
        <lastBuildDate>Wed, 09 Sep 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>ko</language>
        <item>
            <title><![CDATA[왜 ROS/ROS 2 대신 WebAssembly인가]]></title>
            <link>https://cmaybe.github.io/ko/blog/why-wasm-not-ros</link>
            <guid>https://cmaybe.github.io/ko/blog/why-wasm-not-ros</guid>
            <pubDate>Wed, 09 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Modern Robotics 예제가 ROS나 ROS 2 대신 인터랙티브 브라우저 데모를 위한 WebAssembly를 사용하는 이유를 설명합니다.]]></description>
            <content:encoded><![CDATA[<p>ROS와 ROS 2는 완성도 높은 로봇 시스템을 만들기에 훌륭한 선택입니다. 통신, 도구, 드라이버, 시각화 기능과 넓은 생태계를 제공합니다.</p>
<p>하지만 이 블로그의 목표는 조금 다릅니다. 기구학, 플래닝, 동역학의 수학적 개념을 브라우저에서 직접 확인하고 실행하게 만드는 것이 핵심입니다.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="해결하려는-문제의-차이">해결하려는 문제의 차이<a href="https://cmaybe.github.io/ko/blog/why-wasm-not-ros#%ED%95%B4%EA%B2%B0%ED%95%98%EB%A0%A4%EB%8A%94-%EB%AC%B8%EC%A0%9C%EC%9D%98-%EC%B0%A8%EC%9D%B4" class="hash-link" aria-label="해결하려는 문제의 차이에 대한 직접 링크" title="해결하려는 문제의 차이에 대한 직접 링크" translate="no">​</a></h2>
<p>이 블로그는 실제 로봇을 운용하거나 여러 하드웨어 노드를 연결하려는 것이 아닙니다. 순기구학, 역기구학, 모션 플래닝, 동역학을 보여 주는 것이 목적입니다.</p>
<p>따라서 로보틱스 개발 환경을 따로 준비하지 않아도 누구나 열어서 실행할 수 있는 작고 독립적인 프로그램이 더 적합합니다.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="webassembly를-선택한-이유">WebAssembly를 선택한 이유<a href="https://cmaybe.github.io/ko/blog/why-wasm-not-ros#webassembly%EB%A5%BC-%EC%84%A0%ED%83%9D%ED%95%9C-%EC%9D%B4%EC%9C%A0" class="hash-link" aria-label="WebAssembly를 선택한 이유에 대한 직접 링크" title="WebAssembly를 선택한 이유에 대한 직접 링크" translate="no">​</a></h2>
<ul>
<li class=""><strong>설치가 필요 없습니다.</strong> ROS, ROS 2, workspace, 시스템 패키지를 따로 설치하지 않아도 됩니다.</li>
<li class=""><strong>브라우저에서 실행됩니다.</strong> Linux, macOS, Windows, 모바일 기기에서 같은 페이지를 열 수 있습니다.</li>
<li class=""><strong>인터랙티브 시각화가 쉽습니다.</strong> 슬라이더와 3D 컨트롤로 컴파일된 알고리즘을 즉시 실행할 수 있습니다.</li>
<li class=""><strong>네이티브 구현을 유지합니다.</strong> 계산 코어를 JavaScript로 다시 작성하지 않고 C++를 WebAssembly로 컴파일합니다.</li>
<li class=""><strong>공유가 간단합니다.</strong> 백엔드나 로봇 미들웨어 없이 정적 사이트만으로 예제 전체를 배포할 수 있습니다.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="ros와-ros-2가-더-적합한-경우">ROS와 ROS 2가 더 적합한 경우<a href="https://cmaybe.github.io/ko/blog/why-wasm-not-ros#ros%EC%99%80-ros-2%EA%B0%80-%EB%8D%94-%EC%A0%81%ED%95%A9%ED%95%9C-%EA%B2%BD%EC%9A%B0" class="hash-link" aria-label="ROS와 ROS 2가 더 적합한 경우에 대한 직접 링크" title="ROS와 ROS 2가 더 적합한 경우에 대한 직접 링크" translate="no">​</a></h2>
<p>하드웨어 드라이버, 센서 스트림, 분산 노드, 로봇 기술 파일, lifecycle 관리, 더 큰 자율주행 스택과의 통합이 필요하다면 ROS나 ROS 2가 더 적합합니다.</p>
<p>이런 요구 사항은 수학을 설명하는 데 필요한 기능이라기보다 시스템 통합에 필요한 기능입니다. ROS와 ROS 2는 실행 중인 로봇 시스템을 구성하고, WebAssembly는 계산 코드를 웹 페이지 안에서 실행하도록 패키징합니다.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="실제-적용-범위">실제 적용 범위<a href="https://cmaybe.github.io/ko/blog/why-wasm-not-ros#%EC%8B%A4%EC%A0%9C-%EC%A0%81%EC%9A%A9-%EB%B2%94%EC%9C%84" class="hash-link" aria-label="실제 적용 범위에 대한 직접 링크" title="실제 적용 범위에 대한 직접 링크" translate="no">​</a></h2>
<p>브라우저 데모는 알고리즘 코어를 작고 관찰하기 쉬운 형태로 유지합니다. 실제 로봇 애플리케이션에서는 같은 C++ 개념을 ROS나 ROS 2 노드 안에서 사용할 수 있습니다. 미들웨어가 플래너와 컨트롤러를 센서, 액추에이터, 다른 프로세스와 연결하면 됩니다.</p>
<p>이 프로젝트에서 WebAssembly는 알고리즘 자체가 아니라 표현과 배포를 위한 선택입니다. 실험의 진입 장벽을 낮추면서도 로보틱스 구현을 네이티브 C++ 코드에 가깝게 유지합니다.</p>]]></content:encoded>
            <category>Robotics</category>
            <category>WebAssembly</category>
            <category>Modern Robotics</category>
        </item>
    </channel>
</rss>