협동로봇 제어 소프트웨어
사람 옆에서 함께 일하는 산업용 협동로봇의 제어 장비에서 동작하는 소프트웨어를 개발했습니다. 이런 로봇은 용접 · 조립 · 물류처럼 사람이 함께 있는 공정에 들어갑니다. 화면을 그리는 앱과 달리 코드가 실제 기계의 움직임으로 이어지는 환경이라, 잘못된 상태 처리나 데이터 오류가 곧 로봇의 동작 오류가 됩니다. 입력값과 상태 변화, 예외를 보수적으로 다루는 것을 기준으로 삼았습니다. 작업은 제어 기능의 모듈 구조와, 설정값 · 제어 상태를 저장하고 읽는 데이터 관리에 걸쳐 있습니다.
코드가 곧 기계의 움직임이 되는 제어 소프트웨어
협동로봇은 제조 현장에서 사람과 나란히 작업하도록 만든 산업용 로봇이고, 이 로봇의 제어 장비에서 동작하는 소프트웨어를 개발했습니다. 이 로봇은 관절마다 힘을 재는 센서를 두고, 사람과 부딪히는 작은 힘까지 감지하면 멈추도록 만들어집니다. 사용자 화면을 그리는 앱과 달리, 이 코드는 실제 장비 동작과 바로 연결됩니다. 입력값과 상태 변화, 예외 처리는 앱을 만들 때보다 보수적으로 다뤘습니다.

제어 단위마다 나눠 필요한 데이터만 오가는 모듈
협동로봇 제어 소프트웨어는 로봇 제어 기능을 제어 단위별 모듈로 나눠 구현했습니다. 모듈마다 독립적으로 동작하고 필요한 데이터만 주고받게 해, 제어 로직의 복잡도가 한곳에 몰리지 않도록 했습니다. 한 모듈을 고칠 때 다른 제어 기능까지 함께 손대지 않아도 되는 구조입니다.

설정값과 제어 상태를 데이터베이스에 두는 관리 방식
협동로봇 제어에 쓰는 설정값, 제어 상태, 장비 동작에 필요한 데이터를 데이터베이스에 저장하고 읽는 구조를 구현했습니다. 제어 코드가 데이터를 읽고 쓰는 경로를 정리해, 데이터에 접근하는 흐름이 여러 갈래로 흩어지지 않게 했습니다. 장비 동작이 이 데이터를 따르기 때문에, 값 하나의 오류도 동작 오류로 이어질 수 있었습니다.

기능보다 안정적인 동작을 먼저 둔 제어 흐름
협동로봇은 실제 물리 장비와 연결되어 있어, 잘못된 상태 처리나 데이터 오류가 곧 동작 오류가 됩니다. 제어 데이터와 코드 흐름을 신중하게 다루며, 기능을 더하는 것보다 안정적으로 동작하는 것을 먼저 두었습니다. 화면 중심의 앱 개발과 달리, 이 분야에서는 장비 동작의 안정성과 제어 로직의 신뢰성이 결과를 가릅니다.

이 작업의 포인트
제어 단위별로 나눠 필요한 데이터만 주고받는 모듈 구조
설정값 · 제어 상태를 데이터베이스에 저장하고 읽는 제어 데이터 관리
입력값 · 상태 변화 · 예외를 보수적으로 다룬 장비 제어 흐름
인사이트
GA4 client_storage: 'none'은 정말 쿠키를 막을까?
두 달 전 이 블로그에 「GA4 쿠키 없이 쓰기」라는 글을 썼습니다. clientstorage: 'none' 으로 쿠키 저장을 끄고, 자체 분석이 쓰던 익명 ID 를 clientid 로 넘기면 쿠키 0개로 GA4 를 쓸 수 있다는 내…
GA4 Measurement Protocol: gtag.js 없이 서버에서 이벤트 보내기
랜딩 페이지의 전송량을 파일 단위로 쪼개 보다가, 가장 큰 파일이 우리 코드가 아니라는 것을 알았습니다. Google Analytics 의 gtag.js 였고, 방문 한 번에 176KB 를 받고 있었습니다. 페이지 전체가 1,094K…
중소 제조업 AI 도입 순서: DX를 먼저 끝내야 할까?
공장을 가진 중소·중견 제조기업 16만여 곳 가운데 스마트공장을 도입한 곳은 19.5%입니다. 회사가 작을수록 이 비율은 더 떨어집니다. 중소벤처기업부가 2025년 4월에 낸 제1차 스마트제조혁신 실태조사 결과입니다. 그림: 기업 규…
Next.js loading.tsx와 404: 버튼이 화면보다 먼저 살아나게 하기
관리 화면 왼쪽 위에 사이드바를 접고 펴는 ☰ 버튼이 있습니다. 폭 하나 바꾸는 버튼인데, 대시보드에서 누르면 2초 넘게 아무 반응이 없었습니다. 레이아웃만 바꾸는 일이 왜 이렇게 오래 걸리는지부터 들여다봤습니다. Next.js 16…



