Project brief
프로젝트 내용
[프로젝트 개요]
- 태국 콘도미니엄 1층(반옥외)에 설치하는 무인 생수 판매 락커(30칸)의 소프트웨어와 제어보드(회로설계·PCB·펌웨어)를 개발합니다. 고객이 기기의 QR을 스캔해 모바일 웹에서 PromptPay로 결제하면, 서버가 서명된 명령을 보내 해당 칸의 잠금만 풀리는 구조입니다.
- 범위는 고객 결제 웹, 관리 서버·대시보드, ESP32 펌웨어, 회로설계·PCB 제작까지입니다. 캐비닛·도어 등 기구 하드웨어는 설계가 이미 나와 있어 이번 범위에서 제외합니다.
- 1차로 테스트용 1대를 태국 현지에서 운영 시험(결제·은행 연동 포함)하고, 그 결과를 바탕으로 5~20대 양산 여부를 결정합니다.
- SW와 임베디드(회로설계·PCB 등)를 한 업체가 모두 수행하는 것을 우선합니다. 어려운 경우 SW 업체가 임베디드 협력 업체와 함께 참여하는 방식도 가능합니다.
- 국내 파트너와 해외 업체의 견적을 함께 비교해 선정하는 입찰 방식으로 진행하며, 절차는 아래 [입찰 진행 절차]에 정리했습니다.
[클라이언트 소개]
- 해외에 본사를 둔 회사로, 태국 콘도 입주민을 대상으로 무인 생수 판매 락커 설치를 추진하고 있습니다. 결제 화면은 일반 소비자가, 대시보드는 저희 관리자가 사용합니다.
- 프로젝트 의사결정 구조: 해외 본사에서 작성한 요구사항을 한국 담당자가 번역해 입찰을 진행하며, 파트너 문의는 한국 담당자가 대응합니다.
[필수 과업 범위와 결과물]
1. 수행 범위
- 임베디드 개발: ESP32-S3 펌웨어
- 회로설계·PCB: 참고 회로 기반 회로설계, PCB 아트웍, 시제품 제작·검증, 잠금장치·센서 등 부품 조달·공급
- SW 개발: 고객 결제 웹(PWA), 관리 서버, 관리자 대시보드, PG 연동
- 인프라 구축·배포: 클라우드 구성과 배포. Git 저장소·클라우드·도메인 계정은 발주사 명의로 생성합니다.
- 테스트·QA: 기구 측과의 합동 통전 시험, 피크 시간대 동시 주문 부하 테스트
- 유지보수: 무상 하자보수 기간과 이후 월 유지보수(클라우드 포함)를 개발비와 분리해 제시해 주세요. 태국 현장 대응이 어려우면 한국에서 원격 대응도 가능합니다.
- 자유실시조사(FTO)는 저희 법무팀이 진행하므로 견적에서 제외합니다. 검토 결과에 따라 회로·통신 구조 조정이 필요할 수 있습니다.
2. 상세 기능 요구 사항
- 화면 목업, 참고 회로, 회로설계 가이드라인은 지원하신 파트너께 기술사양서와 함께 전달합니다.
2-1. 고객 결제 화면 (모바일 웹, PWA)
- 접속: 기기 전면 QR 스캔 후 앱 설치 없이 브라우저 접속
- 다국어: 태국어 기본, 한국어·영어 지원 및 언어 선택창
- 상품 선택: 물 용량 및 개수 선택 (1회 1상품, 장바구니 없음)
- 결제: Thai QR(PromptPay) 필수, 결제 버튼 클릭 시 외부 결제 앱·사이트 이동 (PG 연동, 웹훅 서명 검증, 결제 원천정보 미저장 토큰화 방식)
- 개방 안내: 결제 확인 후 열린 칸 번호 안내 표시
- 예외 처리: 미개방·60초 초과 개방 시 자동 환불 및 관리자 알림
2-2. 관리자 대시보드 (PC 웹)
- 기기 현황: 기기 목록·상태 및 기기별 재고·도어 상태 조회
- 재고 관리: 기기·칸별 실시간 재고 및 저재고 자동 알림
- 상품·가격 설정: 칸별 상품·가격 매핑 변경
- 거래 이력: 기기ID·칸 번호·상품·금액·결제수단·시각 기록, 위치별 필터·집계 및 매출 통계
- 보충 모드: 전원 차단 없이 관리자 인증 후 필요한 칸만 개별 개방, 칸·실행자·시각 감사로그 기록
- 원격 강제 개방: 특정 칸 강제 개방 (결제 개방과 동일한 서명 경로, 조작 로그 기록)
- 계정·권한: 다중 기기 통합 관리, 등급별 접근 권한, 한국·태국 관리자 권한 분리, 2단계 인증, 전체 접속·작업 로그
2-3. 관리 서버·기기 통신
- 거래 상태 관리: 대기→예약→결제 대기→결제 완료→개방 중→문 열림→문 닫힘→완료 상태 전이 (실패 시 만료·개방 실패·도어 경보)
- 잠금해제 명령: MQTT(TLS+mTLS), HMAC-SHA256 서명, Nonce 기반 재전송 방지, 기기별 Topic ACL 분리
- 기기 상태 수신: 하트비트, 30칸 도어 상태, 명령 수신 20초 내 ACK
- 개방 큐잉: 동시 개방 최대 10칸 제한, 다중 구매 시 서버 순차 처리
- 칸 자동 배정: 결제 후 서버 내부 처리, 화면 미노출 (저희 쪽 참고 로직 제공)
- 개인정보·로그: 태국 PDPA·한국 PIPA 기준 수집 동의·보관 기간·파기 처리, 국외 이전 요건 반영, 주문·결제·문열림·보충 로그 최소 5년 보존
2-4. 임베디드 펌웨어 (ESP32-S3)
- 기반: FreeRTOS, OTA 펌웨어 업데이트
- 입출력 제어: 솔레노이드 30채널 구동 및 리드스위치 30채널 입력 (74HC595·ULN2803A·CD4021B 각 4개 조합)
- 명령 검증: HMAC 서명 검증된 명령에만 개방
- 순차 구동: 전압 강하 방지 큐 구동 (동시 개방 10칸 제한 연동)
- 상태 표시: 랙 전체 LED 스트립 및 이상 알림 부저 (칸별 LED·LCD 없음)
- 통신: WiFi 기본, 설치 현장별 4G 라우터 옵션 대응
2-5. 회로설계·PCB·부품
- 통합 PCB: 컨트롤러·확장칩·구동회로를 PCB 1장에 실장 (참고 회로 및 가이드라인 기반 회로설계·제작)
- 전원: 12V SMPS 이후 구간 설계 (220V 인입·접지는 기구 측), 정전 시 솔레노이드 잠금 상태 확인 및 안전 측 설계
- 4G 확장: 4G 라우터 옵션을 위한 회로 확장 슬롯 반영
- 제어박스: IP54 이상 방수·방진 케이스
- WiFi 안테나: 철제 캐비닛 신호 감쇠 대비 외장 안테나(연장 케이블형) 공급
- 부품 공급: 솔레노이드 래치 30개, 리드스위치 30개, SMPS, LED 스트립, 배선·커넥터 등 (기준 BOM 대당 약 4,060 THB)
- 설치 사양서: 치수·타공 위치·배선 경로를 기구 측에 제공
3. 결과물
- 전체 소스코드 및 저작재산권 일체 양도
- PCB 회로도, 전기 배선도, BOM
- 설치 사양서
- API 명세서, 시스템 아키텍처 문서, 운영 매뉴얼
- 부하 테스트 시나리오 및 결과
- 오픈소스 라이선스 사용 내역
[아직 정하지 않은 범위]
- 아래는 저희가 확정하지 못한 항목입니다. 어느 쪽을 권하시는지와 그 이유를 적어 주세요.
1. 언어 선택 적용 방식 — 선택 후 리다이렉션 / 자동 전환 중 미정. 결제 사이트 연동 구조에 따라 달라지므로 두 방식의 장단점을 비교해 주세요
2. 개수 선택 화면 — 1~5 고정 버튼 / 직접 입력 중 미정
3. 서브 결제수단 — TrueMoney, Rabbit LINE Pay 등 간편결제 연동 방안
4. WiFi 안테나 배치 — 캐비닛 외부 / 아크릴 창(비금속부) 쪽 중 현장 신호 시험으로 확정 예정
5. 무선모듈 태국 인증·수입 — 인증·통관 검토 결과에 따라 무선모듈을 태국 현지에서 별도 조립하는 방식도 검토 중
[기술 스택]
- 서버: Node.js 또는 Python (권장)
- DB: PostgreSQL, 임시 상태 관리 Redis (권장)
- 컨트롤러: ESP32-S3 (FreeRTOS)
- 통신: MQTT (TLS + mTLS)
[클라이언트 준비 사항]
- 준비된 것: 기술사양서, 참고 회로와 회로설계 가이드라인, 관리자 화면 목업, 프론트엔드·백엔드 가이드용 코드와 구현 영상, 기구 하드웨어 설계
- 이 프로젝트 담당: 한국 담당자가 요구사항 전달과 파트너 문의 대응을 맡습니다.
[예산 범위]
- 예산: 7,000만~1억원
[입찰 진행 절차]
1. 지원: 위시켓 공고를 통해 지원해 주세요.
2. 자료 전달: 지원하신 파트너께 기술사양서, 화면 목업, 참고 회로, 회로설계 가이드라인을 전달합니다.
3. 미팅: 지원하신 파트너와 미팅을 진행합니다.
4. 견적서 제출: 미팅 후 견적서를 제출해 주세요. 제출하신 견적서를 입찰 참가 신청으로 봅니다.
5. 내부 검토: 국내 파트너 견적과 해외 업체 견적을 함께 비교 검토합니다.
6. 결과 안내: 검토 결과를 안내해 드립니다.
7. 입찰 서류 작성 및 계약: 견적 검토 이후 입찰 참가신청서 등 저희 양식을 안내하며, 계약은 위시켓을 통해 진행합니다.
[진행 방식]
- 지원하신 파트너와 미팅 후 견적서를 받으며, 제출하신 견적서를 입찰 참가 신청으로 보고 내부 검토합니다.
- 국내 파트너 견적과 해외 업체 견적을 함께 비교 검토합니다.
- 입찰 참가신청서 등 저희 양식은 이후 단계에서 안내합니다.
- 제출하신 견적은 제출일로부터 60일간 유효한 것으로 보며, 제출 후 정정은 원칙적으로 어렵습니다.
- 견적서에는 초기 구축비(결제 웹·서버·대시보드·펌웨어·PCB), 월 인프라·유지보수비, 결제 연동 비용(PromptPay 필수와 서브 결제수단 옵션별), 개발 리드타임(가이드 코드 검토 기간·투입 인력·납품 일정), 설치 사양서 작성 비용과 부품 공급 일정, SLA 조건(목표 가동률·장애 대응 시간·미달 시 배상), 대금 지급 조건(계약금·중도금·잔금)을 구분해 적어 주세요.
[제안 포함 필수 사항]
- 지원 내용은 아래 기준으로 검토합니다.
1. 적합한 기술 스택과 그 선택 이유를 제안에 포함해 주세요.
2. 파트너님께서 판단하시기에 어떤 부분이 완료되어야 이 프로젝트가 성공적으로 마무리되었다고 보시는지 제안에 포함해 주세요. 전문가로서 이 프로젝트의 결과물에 대한 의견 부탁드립니다.
3. 위 '아직 정하지 않은 범위' 각 항목에 대한 의견을 제안에 포함해 주세요. 어느 쪽을 권하시는지와 그 이유를 함께 의견 부탁드립니다. 공고만으로 판단이 어려워 확인이 필요한 부분도 함께 적어 주세요.
4. SW와 임베디드(펌웨어·PCB)를 직접 수행하시는지, 하청으로 함께 참여하시는지와 그 수행 체계를 제안에 포함해 주세요.
5. 잠금해제 명령의 위조·재전송을 어떻게 막으실지(mTLS·HMAC 적용 방식)와, 정전 시 솔레노이드 잠금 상태를 어떻게