๋ก๋ด์ ํ์ฉํ ์๋ํ๋ ๋ฌผํ ๋ณด๊ด/์๋ น ์์คํ
์ค๋งํธ ๋ผ์ปค ์์คํ ์ ๋ก๋ด์ ํ์ฉํ์ฌ ๋ฌผํ์ ๋ณด๊ด๊ณผ ์๋ น์ ์๋ํํ๋ ์๋น์ค์ ๋๋ค. ๋๊ธฐ์ด ์์คํ ์ ํตํด ์์ ์ ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ณ , ๋ก๋ด ์ ์ด ์์คํ ๊ณผ์ ์ฐ๋์ ํตํด ์๋ํ๋ ๋ฌผํ ๊ด๋ฆฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
-
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