바리스타 앱
카페 매장에 설치된 바리스타 로봇을 제어하고 주문을 관리하는 Android 태블릿 애플리케이션입니다. 직원이 한 대의 태블릿으로 로봇 상태를 실시간 모니터링하고, 키오스크 주문을 자동/수동으로 조리하며, 매장 오픈·마감 절차까지 수행할 수 있도록 설계했습니다.
- •기간: 2025.07 ~ 2026.03 (실매장 운영)
- •플랫폼: Android 태블릿 (가로/세로 모드 대응)
- •팀: Cutshion 프론트엔드팀
- •실 적용: 실제 매장에 배포되어 운영
담당 역할
React Native 앱의 프론트엔드 개발과 유지보수를 담당했습니다. 키오스크·로봇·태블릿이 실시간으로 연결되는 환경에서 단순 기능 구현보다 상태 일관성, 장애 복구, 현장 운영성을 우선해 설계했습니다.
- •실시간 주문·로봇 이벤트 처리 구조 설계 (Socket.io)
- •연속 추출·디카페인 우선 처리 등 운영 시나리오 로직 구현
- •ROS 기반 3D 로봇 뷰어 및 관절 오차 시각화
- •알람·TTS 기반 장비 이상 감지 시스템
- •다국어(한·영·일) 지원 및 폴백 체계 구축
기술 스택
| 분류 | 기술 |
| 프레임워크 | React Native 0.77, React 18 |
| 상태 관리 | Redux, React-Redux |
| 실시간 통신 | Socket.io-client |
| HTTP 통신 | Axios |
| 3D / 로봇 | Three.js, ROSLib, WebView |
| 로컬 저장소 | AsyncStorage, SQLite |
| 다국어 | i18next, react-i18next |
| 기타 | React Navigation, moment.js, react-native-gifted-charts |
핵심 기능
실시간 주문 관리
키오스크에서 들어오는 주문을 Socket.io로 수신해 즉시 화면에 표시합니다. 자동 모드에서는 수신 즉시 로봇이 조리를 시작하고, 수동 모드에서는 직원이 직접 카페인 타입·샷 수·수량을 지정해 조리를 요청합니다. 디카페인 주문은 전용 포터필터를 사용하므로, 대기열 앞으로 이동시켜 먼저 처리하도록 우선순위를 부여했습니다.
연속 추출 제어
복수 음료를 끊김 없이 이어서 추출하는 기능입니다. 추출 중에는 자동/수동 토글과 모드 전환을 비활성화해 상태 혼란을 막고, 로봇·네트워크 이상이 감지되면 자동으로 추출을 종료합니다.
로봇 상태 모니터링
컵 디스펜서, 넉박스, 그라인더, 커피머신 등 주요 디바이스 상태를 실시간으로 표시합니다. 이상이 감지되면 팝업 알림·알람음·TTS 음성 안내를 조합해 현장 직원이 상황을 즉시 파악할 수 있도록 했습니다.
3D 로봇 뷰어
ROS Bridge를 통해 로봇의 6축 관절 각도를 실시간으로 수신하고, Three.js로 현재 자세를 시각화합니다. 현재 자세와 목표 자세를 함께 렌더링해 관절 오차를 직관적으로 파악할 수 있고, 관절별 허용 편차를 초과하면 해당 관절을 색상으로 강조합니다.
준비 / 마감 가이드
오픈·마감 절차를 이미지 기반으로 순서대로 안내합니다. 한·영·일 언어별 이미지를 서버에서 받아오고, 화면 진입 시 전체 이미지를 Prefetch해 페이지 전환이 끊기지 않도록 했습니다.
정산 및 로그
날짜 범위 선택으로 조리 통계를 바·파이 차트로 시각화하고, 로봇 동작 로그를 날짜별로 필터링해 무한 스크롤로 조회할 수 있습니다.
성과
- •실제 매장에 배포되어 안정적으로 운영
- •v1.0 → v1.0.43+ 지속적인 버전 업데이트로 기능 고도화
- •자동 조리 모드 도입으로 주문 수신부터 추출까지 직원 개입 없이 완결
- •TTS·팝업 알람 도입으로 로봇 이상 상황 대응 속도 향상
- •한·영·일 다국어 지원으로 외국인 직원 근무 환경 대응






