기술 블로그

기술 블로그

IoT 개발에서 부딪힌 문제와 그것을 푼 방법을 적어 둔 글입니다. 무엇을 골랐는지보다 무엇을 버렸는지를 함께 적었습니다.

성공사례

자판기를 뜯지 않는다는 조건에서 시작했습니다: 통합 제어 모듈 개발기

"기기가 멈춘 걸 현장에 가서야 압니다." 이 한 문장이 저희가 받은 요구의 전부였습니다. 신형으로 바꾸면 되는 문제인데, 이미 깔린 물량 때문에 그 답은 처음부터 후보가 아니었습니다. 교체하지 않는다는 조건 하나가 나머지 설계를 어떻게 끌고 갔는지에 대한 기록입니다.

2026.08.04무인 판매기기통합 제어 모듈기판 설계
성공사례

차단기 앞에서 기다리게 하지 않으려고: 온라인과 오프라인을 함께 설계한 무인주차 앱

관리 인력을 상주시키지 않기로 했는데, 그 사람이 하던 일은 사라지지 않았습니다. 지하 주차장 입구는 통신이 가장 약한 자리이고, 차단기 앞에 선 사람은 기다릴 여유가 없습니다. 통신이 되든 안 되든 문은 열려야 한다는 조건에서 경로를 어떻게 나눴는지에 대한 기록입니다.

2026.08.04무인주차차단기 제어온오프라인 이중 경로
성공사례

보안인증은 부품을 고르는 날 시작됩니다: KISA 라이트 등급 사전 대응기

인증은 보통 제품을 다 만든 뒤에 준비합니다. 기능이 먼저고 인증은 그다음이라는 순서가 자연스럽기 때문입니다. 그런데 저장 데이터 보호나 디버깅 인터페이스 차단처럼 하드웨어 구조에 걸리는 항목은 그 순서로는 붙지 않습니다. 요구사항 정의 단계에서 보안 항목만 따로 떼어 낸 이유와, 그렇게 해서 잃은 것을 적습니다.

2026.08.04IoT 보안인증KISA펌웨어 무결성
성공사례

사원증 한 장을 두 시스템이 읽습니다: 자율 휴게 관리 구축기

"휴게시간을 자율로 바꿨는데, 실제로 얼마나 쓰는지를 알 방법이 없습니다." 저희가 받은 요구는 이 한 문장이었고, 처음 나온 답은 이미 깔려 있는 출입 통제 기록을 쓰자는 것이었습니다. 그 답을 버리고 인식기를 새로 만들기까지, 그리고 만든 뒤에 새로 나온 문제들에 대한 기록입니다.

2026.08.04근태 관리사원증 인식기슬랙 연동
기술

슬라이더 3초에 명령 90개: 원격 제어 경로를 둘로 나눈 이야기

앱에서 조명 밝기를 조절하면 즉시 반응해야 하고, 앱을 꺼둔 새벽 2시에도 예약 실행은 돌아야 합니다. 이 둘은 사실 서로 다른 요구여서 하나의 길로 억지로 묶으면 반드시 한쪽이 망가지는데, 저희가 길을 어떻게 나눴는지 정리했습니다.

2026.08.02IoT 플랫폼원격 제어MQTT
기술

실패해도 기기가 살아있는 업데이트: 원격 펌웨어 배포 설계기

이미 고객 손에 있는 기기의 소프트웨어를 원격으로 바꾸는 일은 IoT에서 가장 위험한 작업이라, 잘못 만들면 한 번의 버튼 클릭이 전량 회수로 이어집니다. 벽돌이 되지 않게, 가짜 펌웨어가 들어오지 않게, 취약한 옛 버전으로 되돌아가지 않게 만든 구조를 정리했습니다.

2026.08.02IoT 플랫폼OTA펌웨어
기술

가족 셋이 같은 조명을 켜는 일: 여러 사람이 여러 기기를 함께 쓰는 구조 설계기

남편이 거실 조명을 켜면 아내 휴대폰 화면의 스위치도 같이 켜져야 하는데, 당연해 보이는 이 동작이 실제로는 IoT 플랫폼에서 가장 먼저 무너지는 지점입니다. 기기를 사람에 묶을지 장소에 묶을지를 정하는 데 가장 오래 걸렸고, 결국 나머지 설계가 대부분 그 한 줄에서 따라 나왔습니다.

2026.08.02IoT 플랫폼멀티유저MQTT
기술

고객사 데이터가 섞이지 않게: 격리를 약속이 아니라 구조로 만들기

한 플랫폼 위에 여러 고객사가 올라가는데, 데이터가 섞이면 그 순간 신뢰가 끝나고 되돌릴 방법도 없습니다. 격리를 "개발자가 조심하는 것"이 아니라 구조로 만든 과정과, 고객사마다 다른 조직 구조를 코드 수정 없이 받아내는 권한 설계를 정리했습니다.

2026.08.02IoT 플랫폼멀티테넌시데이터 격리
기술

보안 인증을 제품에 내장하기: 고객사의 인증 부담을 대신 지는 설계

국내에서 IoT 기기를 상용 출시하려면 보안 인증이 필요한데, 인증기준을 한 줄씩 읽어보면 평범하게 잘 짠 코드가 이미 기준을 위반하고 있는 경우가 있습니다. 이걸 나중에 발견하지 않으려고 인증 대응을 플랫폼 기본값과 자동 검사에 심은 이야기입니다.

2026.08.02IoT 플랫폼보안인증KISA
기술

기기 1,000대가 쏟아내는 데이터 감당하기: 저장과 조회 설계기

온습도계 하나가 10초마다 값을 보내면 하루 8,640건이고 기기가 1,000대면 하루 864만 건인데, 이걸 전부 보관하면 요금이 계속 오르고 보관하지 않으면 "지난 한 달 평균"을 보여줄 수 없습니다. 저희가 이 둘 사이에서 무엇을 골랐고 무엇을 못 하기로 정했는지 정리했습니다.

2026.08.02IoT 플랫폼시계열 데이터DynamoDB
기술

제품이 늘어도 앱은 한 벌: 하이브리드 앱 셸 설계기

고객사마다 제품이 다르고 같은 고객사도 모델을 계속 추가하는데, 그때마다 앱을 새로 만들거나 다시 스토어 심사를 받으면 IoT 사업은 앱 개발 일정에 묶입니다. 앱을 한 벌만 만들어 놓고 제품이 늘어나는 것을 받아내는 구조를 어떻게 짰는지 정리했습니다.

2026.08.02IoT 플랫폼하이브리드 앱BLE
기술

공장에서 나온 기기가 주인을 찾기까지: 기기 등록 구조 설계기

상자를 열고 앱에서 "기기 추가"를 누르면 몇 초 만에 등록이 끝나지만, 그 몇 초 안에 공장·클라우드·앱이 각자 다른 일을 하고 있습니다. 여기서 한 가지만 어긋나면 옆집 사람이 내 기기를 가져가거나 훔친 기기가 새 주인을 갖게 되는데, 그걸 어떻게 막았는지 정리했습니다.

2026.08.02IoT 플랫폼프로비저닝기기 등록
기술

"지금 켜져 있나요?"에 정확히 답하기: 기기 상태 판정 분투기

화면에 초록 점이 켜져 있다는 것과 그 기기가 실제로 명령을 받을 수 있다는 것은 다른 이야기인데, 이 둘을 일치시키는 일이 생각보다 훨씬 까다로웠습니다. 결국 신호를 두 종류로 나눠 쓰게 됐고, 왜 그렇게까지 해야 했는지를 순서대로 적었습니다.

2026.08.02IoT 플랫폼기기 상태MQTT