바로가기 메뉴
메인 메뉴로 바로가기
본문으로 바로가기

2020.11.26 Tech

플랫폼 엔지니어가 앞당기고 있는 서비스 로봇 대중화

매일 수많은 사용자들의 목소리를 들으며 새로움에 도전하는 네이버 직원들이 자신이 하고 있는 업무와 생각, 그리고 경험들을 직접 소개하는 네이버 연재 칼럼, [네피셜]에 소개된 네이버랩스 한재권님의 이야기입니다.

안녕하세요, 네이버랩스 플랫폼 엔지니어링팀의 한재권입니다. 저는 ‘웹 디자이너로 일했던’ 프론트엔드 개발자 인데요, 좀 독특하죠? 웹디자이너로 일할 당시 디자인의 한계가 기술의 한계에 의해 결정되는 것을 경험하곤 했습니다. “구현하기 어려운 디자인"이라는 평가를 수용하기 위해선 “웹 기술"에 대한 지식이 있어야 했고, 포토샵이나 스케치에선 되지만 브라우저에서는 안 되는 것들을 알아야 했습니다. 어떻게 하면 디자인을 그대로 화면에 옮길 수 있을까 하는 기술적 고민들이 쌓이다 프론트엔드 개발자가 된거라고 볼 수 있죠.

그래서 저는 프론트엔드 기술만큼이나 웹 디자인에 관심이 많습니다. 멋진 화면을 보면 그것을 지탱하는 기술을 찾아보고, 반대로 새로운 기술을 발견하게 되면 이를 적용해 어떤 디자인을 상상이 아닌 현실로 만들 수 있을 지 고민합니다. 이런 성향을 지닌 예술가/엔지니어의 이야기를 하나 소개해볼까 합니다. 레오나르도 다 빈치입니다.

레오나르도 다 빈치는 그의 모든 미적/과학적 지식을 집대성하여 모나리자를 그렸습니다. 처음으로 ‘스푸마토’라는 기법을 사용했는데 쉽게 설명하면 색과 색의 경계를 뿌옇게 만드는 겁니다. 눈 앞에 있는 사물을 볼 때 주변 풍경이 흐리게 보이는 원리를 그림에 녹여내면서 모나리자만의 신비스러운 미소를 완성할 수 있었습니다. (모나리자의 미소를 찾겠다고 입을 보고 있으면 입만 보입니다. 눈에 초점을 맞추는 순간 미소가 보입니다)

미적으로도 훌륭할 뿐 아니라 과학(기술)적으로도 접근이 뛰어난 모나리자는 제가 만들고 싶은 서비스의 표본같은 작품입니다. 보다 유려하면서도 기술적으로 수준 높은 웹 서비스를 만들기 위해 웹 디자이너에서 프론트엔드 개발자가 되었고, 현재는 네이버랩스의 플랫폼 엔지니어링팀에서 일하고 있습니다.

로봇에 프론트엔드 개발이 필요한 이유

처음 네이버랩스에서 채용공고를 봤을 때는 과연 로봇이나 AI에서 프론트엔드 개발자가 어떤 일을 할 수 있을지 감이 잘 안왔어요. 입사 전 홈페이지에 있는 글들을 찾아 읽으면서 생각이 완전히 바뀌었고, 지금은 저만의 확신이 있습니다.

네이버랩스는 물리 세계(로봇과 공간)와 가상 세계(클라우드)가 끊임없이 연결된 사회를 꿈꿉니다. 내가 살고 있는 공간을 돌아다니는 머신들의 데이터가 클라우드에 저장되고 인공지능으로 가공돼 다시 물리 세계에 영향을 끼칩니다. 네이버랩스에선 클라우드가 중요한 한 축을 담당하고 있고, 플랫폼 엔지니어링 팀은 바로 이 클라우드를 담당하고 있습니다.

물리 세계와 가상 세계가 연결된 사회에서는 이 모든 시스템을 한 눈에 볼 수 있는 대시보드가 매우 중요합니다. 17층에서 일하는 로봇 엔지니어가 1층에 있는 로봇의 상태를 확인할 수 있는 유일한 방법이죠. 그래서 네이버랩스에서 프론트엔드 개발자의 가장 큰 미션은 ‘공간과 그 공간을 돌아다니는 무수히 많은 머신들을 관제하는 실시간 시스템’을 구현하는 것입니다. 덕분에 지도와 차트 같은 그래픽 요소들을 마음껏 연구하고 실제 화면에 적용해볼 수 있습니다.

이 글에선 위에서 이야기한 네이버랩스의 비젼을 달성하기 위해 진행하고 있는 ARC, ‘멀티 로봇 인텔리전스 시스템'에 대해서 이야기하며 이를 위해 실제 플랫폼 엔지니어링 팀이 어떤 일을 하고 있는지 이야기해보겠습니다.

먼저, 수많은 로봇들을 움직이는 하나의 지능 시스템 - ARC의 소개 영상입니다.

ARC의 고도화는 플랫폼엔지니어링 팀의 가장 큰 미션입니다

AI, Robot, Cloud – 로봇을 ‘조립’하는 게 아니라 ‘띄우는 것’?

보통 사람들은 로봇을 ‘조립’, ‘제작'한다고 이야기합니다. 그런데 여기, 플랫폼 엔지니어링 팀에선 ‘로봇을 띄운다'고 이야기합니다. 우리는 실제로 로봇의 두뇌를 클라우드에 띄우고 있습니다.

왜 로봇의 두뇌를 클라우드에 띄울까요? 인터넷이 보급되면 그 지역의 문맹률이 낮아진다고 합니다. 사람에게 필요한 지식은 온라인에 준비되어 있기 때문에 연결하는 것만으로 똑똑해지는 거죠. 클라우드에 띄워진 로봇 두뇌는 로봇들이 사는 세계의 인터넷과 같습니다. 이 곳에 담긴 데이터가 풍부해질수록, 로봇도 자연스럽게 똑똑해지죠.

그렇다면 로봇의 눈도 클라우드에 구축할 수 있을까요? 네이버랩스엔 이미지를 분석해 현재 위치를 찾을 수 있는 VL 기술(Visual Localization)이 있습니다. 정확도는 세계적인 수준이죠. 우리가 간판이나 주변의 모습을 보고 지금 내가 있는 곳이 어딘지 파악하듯이, 로봇이 이미지를 서버로 보내면 VL기술을 통해 실시간으로 자신의 현재 위치를 알아낼 수 있습니다. 로봇들은 더이상 비싼 센서들로 무장할 필요 없이, 클라우드에 띄워진 눈으로 자유롭게 움직입니다.

이처럼 AI와 Cloud 기술이 Robot에 더해지면 로봇의 제작비는 낮추면서도 모든 로봇들의 주행, 인지, 연산 능력을 이전보다 월등하게 끌어올릴 수 있습니다. 앞서 이야기한 로봇의 눈(ARC eye)과 두뇌(ARC brain)와 같은 주요한 지능이 올라가면 로봇은 주행에 더욱 집중할 수 있겠죠. AI, Robot, Cloud의 앞 글자를 딴 ARC는 작게는 로봇 개발의 한 방법론이자 크게는 로봇 대중화를 위한 ‘멀티 로봇 인텔리전스 시스템’입니다.

ARC로 움직이는 로봇 – 로봇이 공간을 ‘내 집’처럼 다닐 수 있도록

거대한 로봇 지능인 ARC가 동작하기 위해선 먼저 로봇과 공간을 연결해야 합니다. 이를 위해서는 두 개의 지도가 필요합니다. 하나는 로봇이 스스로 자신의 위치를 판단할 수 있는 VL(Visual Localization)지도이고, 두 번째는 로봇을 위한 시설물과 주행통로(도로)가 그려진 노드 지도입니다. 노드 지도와 VL 지도가 동일한 좌표계를 사용하기 때문에 로봇과 서버는 서로의 말을 이해할 수 있습니다.

하지만 이것만으로는 로봇이 빌딩과 같은 공간을 자유롭게 돌아다닐 수 없습니다. 엘리베이터를 타거나 자동문, 게이트를 통과하는 등 수많은 시설물들과의 연동이 필요하죠. 이를 위해 ARC brain이 로봇들이 활동할 공간 인프라와 연동됩니다. 로봇이 수직/수평 공간을 자유롭게 이동할 수 있도록, 필요한 모든 시설물들의 상태를 확인하고 제어합니다.

로봇에게 보내는 이동 계획과 공간 인프라를 제어하는 시설물 계획이 합쳐져 로봇이 자기 집처럼 편안히 다닐 수 있도록 설계하는 것을 “글로벌 플랜"이라고 부릅니다. 이는 굉장히 중요한 개념인데요, ARC brain의 글로벌 플랜을 어떻게, 얼마나 잘 설계하는지에 따라 로봇은 열리지도 않는 문 앞에서 서성이는 기계처럼 보일 수도, 10년 앞서 있는 로봇처럼 보일 수도 있습니다.

ARC를 만드는 플랫폼 엔지니어링

서두에 소개했듯이, 네이버랩스의 플랫폼 엔지니어링팀에는 로봇의 두뇌를 만드는 서버 엔지니어와 이를 시각화하는 프론트 엔지니어들이 있습니다.

사실 서버와 프론트 모두 일을 하다보면, 서비스의 분야와 사용하는 라이브러리만 달라질 뿐 ‘GET, POST, PUT, DELETE’ API를 만들고 버튼과 에러 팝업을 만드는 업무가 반복됩니다. 하지만 네이버랩스에서는 로봇을 다루기에 한번도 생각해보지 못한 것들이 등장합니다. 엔지니어링을 떠나서 한번 생각해보면 재미있는 문제들입니다.

예를들어, 일반 웹서비스에선 사용자가 로그인을 하지만 ARC에선 로봇이 시스템에 로그인을 하죠. 우리는 이메일과 비밀번호를 입력하지만 로봇은 어떤 과정을 거쳐 자신의 정보를 알려주고 로그인할까요? 로봇이 미션을 받아서 움직여야 하는데 제자리에 가만히 있을 때, 몇 초 이상 이 상태가 지속되면 에러로 판단할까요? 또한 공간과 연관된 문제들도 많습니다. 로봇이 타야 할 엘리베이터에 사람이 가득 차면 사람들에게 내려달라고 해야할까요?

로봇과 공간이 상호작용을 하는 과정을 시뮬레이션 해보면 별별 상상과 가설이 난무하죠. 플랫폼 엔지니어링 팀은 그런 상상을 코드로 바꾸는 작업을 합니다. 백엔드 엔지니어들의 고민은 이 글(로봇의 브레인을 만드는 것 - 플랫폼 엔지니어링 팀)에 잘 정리되어 있으니 꼭 읽어보시길 바래요.

프론트 엔지니어링 파트로 돌아오면, 로봇의 두뇌가 서버로 옮겨온다는 것은 위에서 말한 모든 내용이 화면에 그려질 수 있다는 뜻입니다. 로봇의 위치와 시설물의 상태를 지도 위에 그리고, 지난 한 달 간 로봇이 움직인 경로를 히트맵(Heat map)으로 표시할 수도 있습니다. 로봇이 엘리베이터를 타고 있을 때는 로봇을 깜빡이게 한다거나 로봇이 다른 층으로 이동했을 때 지도가 Fade in/Fade out하는 효과를 줄 수도 있죠. 수많은 로봇과 거대한 공간 인프라를 하나의 지능 시스템으로 관제하기에 반드시 필요한 작업입니다.

지도와 도로, 건물, 로봇, 뭔가 비슷한 게 생각나지 않으시나요? 저는 제가 만드는 화면을 보면 심시티(Sim City, 도시 건설 게임)가 연상됩니다. 로봇이 다닐 수 있는 도로를 그리는 에디팅 기능도 있으니 정말로 도시 건설 게임 같죠. 그런데 심시티에선 심즈가 돌아다니지만, 저희가 그린 도로 위에선 진짜 로봇이 돌아다닐 겁니다. 이 로봇용 심시티를 만드는 기술의 핵심은 ‘그래픽'입니다. 지도와 수 백 대의 로봇을 div와 css 애니메이션으로 그릴 수는 없겠죠. 그래서 이곳에서는 Svg, D3, WebGL 같은 웹 그래픽 기술을 연구하고 적용합니다.

로봇 뿐만 아니라 앞으로 다양한 머신들이 클라우드와 통신할 것이고 프론트엔드 개발자는 모니터링 화면 뿐만 아니라 일반인들이 이 머신들을 보고 즐길 수 있는 서비스를 만들 겁니다.

내가 일하는 건물을 돌아다니는 로봇들을 보고, 지금 내 자리로 커피를 배달하기 위해 출발한 자율주행 차의 위치를 실시간으로 확인하는 미래가 오겠죠. 그 때 쯤이면 이 분야도 본격적으로 실력 있는 프론트엔드 개발자들의 경쟁의 장이 될 겁니다.

아무리 우아하게 글로벌 플랜을 짜고 로봇이 부드럽게 장애물을 회피하면서 움직여도 화면이 느리게 업데이트되고 커서에 모래시계가 생기면 ‘여기 로봇들은 버벅이네'라고 사람들은 생각하겠죠. 물론 이곳에서 실력은 다른 회사, 서비스에서 이야기하는 것과는 다를 겁니다. 여기선 버튼이나 에러 팝업보단 svg, WebGL이 더 중요하니까요.

이제 로봇을 움직이는 ARC가 보이시나요?

현재 네이버랩스는 2021년 완공 예정인 네이버 제 2사옥에 투입될 브레인리스 로봇들, 다양한 로봇 서비스를 준비하고 있습니다. 신사옥에서 돌아다니는 수많은 로봇들과 이들의 서비스를 보며 이제는 멀티 로봇들의 지능 시스템, ARC를 떠올리실 수 있을 거라 생각합니다. 로봇의 대중화는 로봇 자체의 진화 뿐만 아니라, 잘 구축된 클라우드와 플랫폼엔지니어링 기술로 함께 달성할 수 있습니다. 아직 넘어야할 산과 해야할 일이 많은데요, 더 많은 분들과 함께 플랫폼 엔지니어링 기술로 로봇의 대중화를 앞당기고 싶습니다.

Career 바로가기>

Related Articles