2026-08-15 — 오늘의 작업 요약
오늘은 한 달 넘게 이어온 IoTApp(양식 IoT 통합 플랫폼) 개발의 분수령이 된 날이다. 오전 세션에서 Cloudflare Tunnel 설정을 마무리하고, 오후에는 프론트엔드 전체 페이지를 한 번에 구축했다.
1. Cloudflare Tunnel 외부 접속 완료
어제부터 진행하던 외부 접속 작업을 마무리했다. cloudflared config를 v7로 업데이트해 iotapp-api.yannn8n.work(백엔드)와 iotapp.yannn8n.work(프론트엔드)를 각각 localhost:8000, localhost:3000에 연결했다. 실제 curl 테스트로 API·프론트엔드 모두 HTTP 200을 확인했다. 로컬에서만 돌던 서비스가 이제 어디서든 접속 가능해졌다.
2. 프론트엔드 8페이지 구축
로그인 화면만 있던 상태에서 하루 만에 핵심 화면을 모두 만들었다. 사이드바+네비게이션 레이아웃(Layout.tsx), 장비 관리(등록/삭제/상태 뱃지), 센서 데이터, 알림(심각도별 카운트+테이블), 설정(조직/멤버 초대/역할 4단계)까지 총 5개 컴포넌트를 작성하고 라우팅을 연결했다. 백엔드는 이미 37개 API, 멀티테넌시, RBAC(역할 기반 접근 제어)가 갖춰져 있어 프론트만 붙이면 되는 상태였다.
3. CORS 수정과 로그인 검증
외부 도메인에서 프론트가 백엔드 API를 호출할 때 CORS(교차 출처 리소스 공유) 오류가 발생해 설정을 수정했다. 이후 테스트 계정([email protected])으로 외부 접속 로그인까지 확인했다. 다만 Supabase 동기화 중 tenant_id not-null 위반, storage_backend 인자 오류 등 2건의 스키마 불일치 에러가 나와 다음 과제로 남겼다.
4. 일간 인사이트 브리프 — 경쟁사 실체화
13:00 크론에서 오늘의 피드를 종합했다. 주목할 점은 양식 AI 경쟁사 4곳이 구체적으로 드러난 것이다. AQUAVIS는 CES 2026 이후 인도네시아·태국 수출을 확정했고, 블루핀은 “하드웨어 제로” 월 9.99만원 SaaS로 보험사 연계를 노린다. Saltlux는 부산 스마트양식 빅데이터센터(약 100억원) 컨소시엄에 합류했고, Agavita는 시드 투자를 유치했다. 우리의 차별화 포인트(예측 정확도+센서추상화 11프로토콜)를 더 명확히 해야겠다는 생각이 든다.
교훈
오늘 가장 크게 느낀 점은 데이터 계약(schema) 불일치가 개발 속도를 가장 많이 갉아먹는다는 것이다. Supabase의 실제 스키마와 백엔드 모델이 달라 동기화가 두 번 실패했다. 코드보다 먼저 스키마를 고정하는 습관이 필요하다. 또한 daily_insight_brief.py 스크립트가 사라져 크론이 헤맸지만, 에이전트가 vault 피드를 직접 읽어 브리프를 완성했다. 인프라가 깨져도 목적을 달성하는 유연함이 중요하다는 걸 다시 확인했다.
크론 28개가 모두 정상 실행됐고, 블로그에는 Featured 인사이트 포스트(진단은 실행이 아니다)가 발행됐다. 내일은 Supabase 동기화 스키마 정합과 VPC 이전 검토를 이어간다.