로봇을 활용한 자동화된 물품 보관/수령 시스템
스마트 라커 시스템은 로봇을 활용하여 물품의 보관과 수령을 자동화하는 서비스입니다. 대기열 시스템을 통해 작업을 순차적으로 처리하고, 로봇 제어 시스템과의 연동을 통해 자동화된 물품 관리를 제공합니다.
-
API 서버 (Spring Boot)
- REST API 제공
- 비즈니스 로직 처리
- 작업 대기열 관리
-
데이터베이스 (PostgreSQL)
- 물품 보관 정보
- 사용자 정보
- 로봇 상태 관리
- 작업 대기열 관리
-
로봇 제어 시스템
- HTTP 기반 통신 (URL: http://70.12.245.25:5001/rasp)
- 실시간 로봇 상태 관리
-
locker_usage_logs
- 보관/수령 이력 관리
- 로봇 작업 추적
- 시간별 사용 현황
-
lockers
- 보관함 상태 관리
- 위치 정보 연동
- 토큰 기반 접근 제어
-
robots
- 로봇 상태 관리 (대기중/사용중/수리중)
- 작업 이력 추적
- 유지보수 일정 관리
-
locker_queue
- 작업 대기열 관리
- 요청 유형 구분 (보관/수령)
- FIFO 방식의 작업 처리
- locker_status: 보관함 상태 코드 (사용가능/사용중/수리중)
- locker_locations: 위치 정보 (A/B/C)
- access_tokens: 인증 토큰 (6자리 난수)
- robot_status: 로봇 상태 코드
- users: 사용자 정보 (전화번호)
- 사용자가 보관 요청
- 토큰 생성 및 발급
- LockerQueue에 보관 작업 등록
- RobotTaskService가 대기열에서 작업 처리
- 로봇이 물품 보관 수행
- 사용자가 토큰과 함께 수령 요청
- 토큰 유효성 검증
- LockerQueue에 수령 작업 등록
- RobotTaskService가 대기열에서 작업 처리
- 로봇이 물품 전달 수행
POST /api/locker/storeRequest Body:
{
"lockerId": "integer",
"phoneNumber": "string"
}Response:
{
"lockerId": "integer",
"tokenValue": "integer",
"message": "string"
}POST /api/locker/retrieveRequest Body:
{
"lockerId": "integer",
"tokenValue": "integer"
}Response:
{
"lockerId": "integer",
"message": "string"
}POST /api/robot-tasks/processResponse:
{
"success": "boolean",
"message": "string"
}# PostgreSQL 실행
docker run -d -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=1 postgres:13
# 애플리케이션 실행
./mvnw spring-boot:run -Dspring.profiles.active=default# Docker Compose로 실행
docker-compose up -d-
PR 검증 (Pull Request)
on: pull_request: branches: [ main ]
- JDK 17 설정
- Maven 빌드 및 테스트
- 코드 품질 검증
-
배포 자동화 (Push to Main)
on: push: branches: [ "main" ]
- EC2 자동 배포
- Docker 컨테이너 관리
- 롤백 메커니즘
- 물품 자동 보관/수령
- 토큰 기반 인증
- 대기열 기반 작업 관리
- 로봇 자동화 제어
- 실시간 상태 모니터링
NotFoundException: 리소스 미존재UnauthorizedException: 인증 실패RobotControlException: 로봇 제어 실패InvalidTokenException: 잘못된 토큰NoAvailableRobotException: 가용 로봇 부재
Copyright © 2024 SSAFY A207