세이코 엡손이 제품 개발의 효율성을 향상시키기 위해 유니티를 활용한 방법

세이코 엡손 주식회사는 다양한 산업 기계를 제공하는 것으로 알려져 있으며, 20년 이상 전에 통합 소프트웨어인 Epson RC+(이하 RC+)를 처음 출시했습니다. 이 소프트웨어는 사내 로봇의 배치 및 유지 관리를 지원하기 위해 구축되었습니다. 그 이후로 여러 번의 버전 업그레이드를 거쳤으며, 2024년 9월에 최신 버전인 RC+ 8.0이 출시되었습니다. 유니티는 로봇의 움직임을 검증하기 위해 설계된 소프트웨어 도구인 RC+ 8.0 시뮬레이터 개발에 채택되었습니다.
이전 버전의 시뮬레이터에서 제공된 기능을 유지하면서, 유니티를 사용하여 재개발하기로 한 결정은 두 가지 주요 목표에 의해 추진되었습니다: RC+의 핵심 구조가 크게 재구성된 8.0 버전 개발에 적응하고, 개발에서의 개별 의존성 문제를 해결하는 것입니다.
제조 솔루션 운영 부서가 RC+ 개발을 담당하는 것은 이번이 처음이었기 때문에, 팀은 제품 품질과 개발 속도를 보장하기 위해 유니티의 유료 지원 서비스를 활용했습니다.
이 사례 연구는 세이코 엡손 팀이 유니티를 활용하여 개발에서의 개별 의존성 문제를 해결하고 소프트웨어 품질과 전반적인 경험을 향상시키며 부서 내 팀 구조 확장과 관련된 문제를 해결하는 경로를 성공적으로 설정한 방법을 강조합니다.
효율적인 개발: 최신 기술 스택의 채택은 개발 팀의 확장을 용이하게 할 뿐만 아니라 개발 프로세스에서의 개별 의존성을 개선했습니다. 이로 인해 기능 추가 및 유지 관리와 같은 업데이트가 훨씬 쉬워지는 개발 환경이 조성되었습니다.
- 3D 기술: 고급 3D 렌더링 기능을 갖춘 유니티의 채택은 이전 버전보다 더 빠른 렌더링 속도를 포함한 여러 가지 이점을 가져왔습니다.
- 향상된 경험: 또한, 개발자들은 개발 중 3D 객체를 시각적으로 검사하면서 디버깅할 수 있어 전체적인 경험이 향상되었습니다.
- 전문 지원: Unity의 유료 지원 서비스인 통합 성공은 Unity 엔지니어의 프로젝트 리뷰 및 컨설팅에 대한 접근을 제공했습니다. 이 서비스를 활용함으로써 팀은 소프트웨어 품질을 크게 향상시킬 수 있었습니다.
레거시 소프트웨어의 복잡성과 의존성 극복
Epson RC+는 출시 이후 지속적인 업그레이드를 거쳐 수많은 고객으로부터 폭넓은 지지를 받는 제품으로 발전했습니다. 7세대 — RC+ 7.0 — 는 2012년 12월에 출시되었습니다. 시간이 지남에 따라 기능을 향상시키기 위해 소규모 업데이트가 시행되었지만, 시간이 흐르면서 사용자 인터페이스(UI)의 단점이 드러났습니다. 이로 인해 소규모 업데이트가 아닌 근본적인 모델 개편이 필요하게 되었고, RC+ 8.0의 개발로 이어졌습니다.
그러나 RC+ 7.0이 개발될 당시 두 가지 주요 과제가 발생했습니다. 첫 번째는 특정 팀원에게 기능 개발을 과도하게 의존하는 것이었고, 두 번째는 소프트웨어의 높은 복잡성이었습니다.
RC+는 Seiko Epson이 제공하는 다양한 로봇의 배포부터 유지보수까지 모든 것을 지원하는 통합 소프트웨어로, 다양한 기능을 제공합니다. 이로 인해 이러한 기능들이 복잡하게 얽힌 아키텍처가 형성되어, 추가 기능이 도입될 때 새로운 기능이 시스템에 미치는 영향을 이해하기 어려워졌습니다.
이러한 문제를 해결하기 위해 RC+ 8.0의 개발이 2017년에 시작되었으며, 다양한 기능에서 공유되는 구성 요소를 위한 공통 플랫폼을 만들고 아키텍처를 재구성하는 데 중점을 두었습니다. 이러한 노력은 개발 속도와 소프트웨어 품질을 모두 향상시키는 것을 목표로 했습니다.

RC+ 시뮬레이터 재구성: 기술적 및 구조적 장애물 해결
RC+는 로봇 움직임을 검증하기 위한 시뮬레이터를 포함하고 있지만, 이 또한 도전에 직면했습니다. MS 기획 및 설계 부서의 시뮬레이터 개발 리더인 마사노부 니시타니 씨는 "RC+ 8.0 개발 초기에는 세이코 엡손이 7.0 버전에서 사용된 시뮬레이터를 재사용하는 것을 고려했지만 곧 문제가 발생했습니다."라고 설명했습니다.
RC+ 7.0은 C++로 프로그래밍되었지만, 8.0 버전은 C#으로 전환되었습니다. 또한, UI 프레임워크는 이전에 사용된 Windows Forms에서 WPF로 전환되었습니다. RC+ 시스템의 이러한 구조적 변화로 인해 시뮬레이터의 특정 기능이 작동을 멈췄습니다.
더욱이, 시뮬레이터 개발은 메인 RC+ 애플리케이션을 개발하는 팀과 독립적인 별도의 팀이 처리했습니다. 그러나 시뮬레이터의 플랫폼이 OpenGL을 기반으로 했기 때문에, 회사 내부와 외부 모두에서 자격을 갖춘 인력의 가용성이 제한되어 개발 팀을 확장하는 데 어려움이 있었습니다.
문제를 복잡하게 만들기 위해, 같은 부서에서 RC+ 외에도 3D 표현을 포함한 여러 소프트웨어를 출시했습니다. 그러나 이러한 소프트웨어 제품 각각은 서로 다른 환경에서 개발되었고 개별적으로 유지 관리되었습니다. 이로 인해 니시타니가 "바퀴를 재발명하는 것"이라고 설명한 비효율성이 발생했습니다.
RC+ 시뮬레이터 혁신하기: 왜 Unity가 명확한 선택이었는가
C# 및 WPF로 구축된 현대 환경에 맞추기 위해 3D 엔진을 도입하고 시뮬레이터를 재개발하며 부서 전반에 걸쳐 통합된 3D 개발 환경을 구축하기로 결정했습니다. 2021년 3월, 잠재적인 3D 엔진에 대한 평가가 시작되었습니다.
니시타니와 개발 팀은 다양한 게임 엔진과 오픈 소스 3D 엔진을 신중하게 고려하고 광범위하게 테스트했습니다. 궁극적으로 그들은 Unity를 채택하기로 결정했습니다. 그는 이 결정의 주요 이유를 강조했습니다. "기존 시뮬레이터의 기능을 복제할 수 있는 능력, 모바일 개발에 적합함, 일본어로 제공되는 정보의 풍부함, 그리고 활발한 개발자 커뮤니티가 큰 차이를 만들었습니다."


RC+ 시뮬레이터 업그레이드: Unity의 이점
2021년 10월, 니시타니와 그의 팀은 Unity를 채택하기로 결정하고 RC+ 시뮬레이터의 변환을 시작했습니다. 실제 개발을 담당했던 토다 준은 Unity 사용의 이점을 강조하며 "디버깅 중 3D 객체를 시각적으로 검사할 수 있어 개발이 훨씬 쉬워졌습니다."라고 말했습니다.
개발은 새로웠지만, RC+ 7.0 시뮬레이터의 기능을 추적하는 것으로 시작되었습니다. 이전 버전을 구현했던 니시타니는 "OpenGL로 시뮬레이터를 개발할 때와 비교했을 때, 같은 3D 데이터를 사용하고 있음에도 불구하고 시각적으로 크게 향상된 느낌을 받았습니다."라고 설명했습니다.
그는 또한 Unity가 가져온 변화 덕분에 향후 새로운 기능을 추가할 때 더 효율적인 개발이 가능할 것이라는 낙관적인 의견을 표현했습니다.

전문가 지원으로 혁신 가속화
부서는 처음으로 Unity를 채택하면서 유료 지원 프로그램 Essential Success에 가입했습니다.
"우리 부서가 Unity를 사용하는 것은 처음이었기 때문에, 스스로 문제를 해결하는 데 많은 시간이 걸릴까 걱정했습니다. 우리는 다양한 문제를 신속하게 해결하고 긴급한 느낌으로 고품질 제품을 생산하기 위해 유료 지원이 필요하다고 느꼈습니다." - 마사노부 니시타니
2023년 11월, 세이코 엡손 주식회사는 지원 계획을 Integrated Success로 업그레이드했습니다. 이번 업그레이드의 목표는 Unity의 선임 엔지니어로부터 직접 기술 지도를 받을 수 있는 프로젝트 리뷰를 진행하는 것이었습니다. 2024년 4월, Unity 엔지니어들이 나가노현 스와시의 세이코 엡손 주식회사 본사를 방문했습니다.
"복잡하고 대규모 CAD 모델을 렌더링할 때 시간이 매우 오래 걸렸기 때문에, 우리는 Unity 팀이 그 측면에 집중하도록 했습니다."라고 토다가 프로젝트 리뷰를 회상했습니다. "그들은 병목 현상을 식별했을 뿐만 아니라, 직접적인 소통을 통해 문제를 해결하는 과정에서 디버깅 중 프로파일링 도구를 사용하는 방법과 같은 귀중한 통찰을 제공했습니다. 이것은 향후 개발에 매우 의미 있는 경험이 되었습니다."

사고의 전환: 자신감을 가지고 혁신을 수용하기
지금까지 Unity의 RC+8.0 개발에서의 역할은 공개되지 않았지만, Nishitani와 Seiko Epson Corp.의 영업 부서는 앞으로 RC+8.0의 도달 범위를 더욱 확장하기 위해 이를 적극적으로 홍보하고자 합니다.
개발 환경도 여러 가지 변화가 있었습니다.
Nishitani 씨는 "우리가 OpenGL을 사용할 때는 새로운 기능을 개발하는 것이 어려웠습니다... 개발 팀 내에서 현실적으로 달성할 수 있는 것에 대한 회의론이 있었고, 발생할 수 있는 문제를 처리하는 방법에 대한 우려가 있었습니다."라고 설명합니다.
Unity 구현 이후, 팀은 도전 과제를 해결할 수 있는 지식과 솔루션이 온라인 검색을 통해 쉽게 이용 가능하다는 것을 발견했습니다. 이 변화는 팀 내에 새로운 분위기를 만들어, 개발 과정에서 발생할 수 있는 장애물에 자신감을 가지고 대처할 수 있게 되었습니다.
팀의 회복력: 의존성 문제 극복하기
RC+ 시뮬레이터는 원래 약 4명의 팀원에 의해 개발되었으며, 정점에서는 6명으로 확장되었습니다. Nishitani는 Unity의 채택이 개발 팀을 더욱 확장할 수 있는 길을 열어주었고, 개발에서 개인 의존성 문제를 해결하는 데 도움을 주었다고 강조했습니다.
"비록 그들이 시뮬레이터 개발자로 특별히 고용된 것은 아니지만, 일부 팀원들은 회사에 입사할 때 이미 Unity 경험이 있었고, 몇몇은 도입 이후 Unity를 배우기 시작했습니다." 이들 멤버를 포함시킴으로써, 우리는 개발 프레임워크를 강화할 수 있는 잠재력을 보았습니다. 이는 이전 버전의 개발과 비교할 때 상당한 변화를 나타냅니다."
미래에 대한 전망
현재 시뮬레이터 개발 팀은 다음 업데이트 계획을 작업하고 있습니다. 다가오는 업데이트의 목표는 시뮬레이션의 범위를 확장하는 것입니다.
이 단계에서 RC+는 로봇의 움직임을 시뮬레이션하는 데 제한되어 있습니다. 그러나 Nishitani는 Seiko Epson Corp.의 미래 계획을 공유했습니다. "우리는 회사가 제공하는 다양한 주변 장치를 시뮬레이션할 수 있는 소프트웨어로 발전시키는 것을 목표로 하고 있습니다."
"우리는 이 비전을 가지고 나아가면서 Unity가 제공하는 다양한 기능을 활용하기를 기대합니다."라고 그는 덧붙였습니다.
새로운 기술을 수용하고 혁신 문화를 조성함으로써, 세이코 엡손 주식회사는 개발 프레임워크를 강화했을 뿐만 아니라 산업 자동화에 대한 보다 확장 가능하고 효율적이며 미래 지향적인 접근 방식을 위한 기반을 마련했습니다.