POOOLING FOREST
클라우드가 멈추면 당신의 서비스도 멈춥니까? : 오프라인 퍼스트와 엣지 AI의 의미 - 클라우드 장애에도 멈추지 않는 서비스를 위해, Waycore 프로젝트를 통해 본 오프라인 퍼스트 전략과 엣지
Engineering & Tech

클라우드가 멈추면 당신의 서비스도 멈춥니까? : 오프라인 퍼스트와 엣지 AI의 의미

클라우드 장애에도 멈추지 않는 서비스를 위해, Waycore 프로젝트를 통해 본 오프라인 퍼스트 전략과 엣지 AI의 기술적 회복탄력성에 대해 이야기합니다.

송찬영

CTO

안녕하세요. 풀링포레스트 CTO 송찬영입니다.

개발자로서 우리는 너무나 당연하게 '연결'을 전제로 시스템을 설계합니다. API 호출은 언제나 성공할 것이며, AWS 리전은 영원히 살아있을 것이고, 사용자의 5G 네트워크는 끊기지 않을 것이라는 믿음 말이죠. 하지만 최근 해커뉴스(Hacker News)에서 발견한 'Waycore'라는 프로젝트는 저에게 기술의 본질적인 생존 능력에 대해 다시금 생각하게 만들었습니다. 오늘은 이 흥미로운 오픈소스 프로젝트를 통해 우리가 구축하는 시스템의 회복탄력성(Resilience)에 대해 이야기해보려 합니다.

최근 화제가 된 Waycore는 '오프라인 우선(Offline-first)'을 표방하는 모듈식 필드 컴퓨터 프로젝트입니다. 흥미로운 점은 이 기기의 목적이 단순한 캠핑용 장난감이 아니라, 생존 상황이나 오프그리드(Off-grid) 환경에서 인터넷 없이도 작동하는 '지능형 도구'라는 것입니다. 라즈베리 파이 5(Raspberry Pi 5)를 메인 브레인으로 쓰고, ESP32를 사이드카로 붙여 센서 데이터를 처리하는 이 구조는, 마치 야외 활동을 위한 '플리퍼 제로(Flipper Zero)'를 연상케 합니다.

이 프로젝트가 기술 리더인 제 눈을 사로잡은 이유는 '기기 내 에이전트형 AI(On-device Agentic AI)'라는 개념 때문입니다. 클라우드에 있는 거대 언어 모델(LLM)에 의존하는 것이 아니라, 기기 자체에 내장된 소형 모델(SLM)이 GPS, 나침반, 환경 센서 데이터를 실시간으로 읽고 추론하여 사용자에게 내비게이션이나 안전 지침을 제공한다는 구상입니다.

솔직히 고백하자면, 저 역시 풀링포레스트의 초기 아키텍처를 설계할 때 '연결성'에만 지나치게 의존했던 경험이 있습니다. 과거 특정 클라우드 서비스의 장애로 인해 우리의 코드는 아무런 문제가 없었음에도 서비스 전체가 마비되었던 적이 있습니다. 당시 팀원들은 "우리가 할 수 있는 게 없다"며 모니터만 바라봐야 했고, 저는 그 무력감이 뼈저리게 싫었습니다.

Waycore 프로젝트에 달린 댓글 중 한 사용자의 날카로운 지적은 우리에게 시사하는 바가 큽니다. 그는 "생명이 위급한 상황에서 환각(Hallucination)을 일으킬 수 있는 LLM에 의존하는 것은 위험하다"고 경고했습니다. 이는 현재 AI 업계가 직면한 가장 현실적인 딜레마입니다. 인터넷이 끊긴 야생에서 AI가 잘못된 버섯을 식용이라 판단한다면 그것은 버그가 아니라 재앙이 되기 때문입니다.

하지만 이 프로젝트가 던지는 기술적 화두는 명확합니다. 바로 '자율성'입니다.

우리는 너무 쉽게 무거운 연산을 클라우드로 넘겨버립니다. 하지만 엣지(Edge) 디바이스의 성능은 나날이 강력해지고 있습니다. Waycore 제작자는 네트워크가 없을 때도 지도, 모델, 지식 베이스가 로컬에서 완벽하게 동작하도록 설계했습니다. 이는 엔터프라이즈 소프트웨어를 만드는 우리에게도 유효한 철학입니다. 네트워크 레이턴시가 0이 될 수 없다면, 혹은 간헐적인 연결 끊김이 발생하는 현장이라면, 로컬 데이터베이스(Local DB)와 엣지 컴퓨팅을 활용한 'Graceful Degradation(점진적 기능 저하)' 전략은 선택이 아닌 필수입니다.

풀링포레스트 팀에서도 최근 이러한 '로컬 퍼스트' 전략을 일부 도입하고 있습니다. 사용자의 기기에서 1차적인 데이터 처리와 검증을 수행하고, 네트워크가 안정될 때 동기화하는 방식입니다. 이는 서버의 부하를 줄여줄 뿐만 아니라, 사용자 경험(UX) 측면에서도 끊김 없는 몰입감을 제공합니다. Waycore가 생존을 위해 인터넷 선을 잘라냈다면, 우리는 더 나은 사용자 경험을 위해 논리적인 의존성을 줄여나가는 셈입니다.

물론 하드웨어 모듈화나 러기드(Rugged) 디바이스 UI/UX는 소프트웨어 엔지니어에게 낯선 영역일 수 있습니다. 하지만 ESP32와 같은 마이크로컨트롤러가 수집한 데이터를 리눅스 기반 OS가 처리하고, 그 위에서 경량화된 AI 모델이 추론을 내리는 파이프라인은, 거대한 MSA(마이크로 서비스 아키텍처)의 축소판과 다름없습니다.

기술은 결국 인간을 돕기 위해 존재합니다. 인터넷이라는 거대한 인프라가 사라졌을 때, 여러분이 만든 소프트웨어는 과연 무엇을 할 수 있을까요? Waycore는 극단적인 상황을 가정했지만, 그 속에 담긴 '독립적인 연산 능력'과 '안전한 실패(Fail-safe)'에 대한 고민은 모든 개발자가 한 번쯤 깊이 새겨볼 만한 주제입니다.

오늘은 잠시 모니터 앞을 떠나, 내가 만든 코드가 인터넷이라는 탯줄 없이도 숨 쉴 수 있는지 고민해보는 시간을 가져보시길 바랍니다.

지금 읽으신 내용, 귀사에 적용해보고 싶으신가요?

상황과 목표를 알려주시면 가능한 옵션과 현실적인 도입 경로를 제안해드립니다.