Skip to content

EBKB-Everywhere/EveryWhere_BE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

22 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš€ EveryWhere AI ๊ณต๊ฐ„ ์ถ”์ฒœ ์‹œ์Šคํ…œ โ€“ Backend (Spring Boot)

AI ๊ธฐ๋ฐ˜ ์บ ํผ์Šค ๊ณต๊ฐ„ ์ถ”์ฒœ ์„œ๋น„์Šค์˜ ๋ฐฑ์—”๋“œ(Spring Boot) ๋ ˆํฌ์ง€ํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์˜ ๋ชฉ์ ยท์œ„์น˜ยทํ˜ผ์žก๋„๋ฅผ ๋ฐ˜์˜ํ•˜์—ฌ ์ตœ์ ์˜ ๊ณต๊ฐ„์„ ์ถ”์ฒœํ•˜๋ฉฐ, FastAPI ๊ธฐ๋ฐ˜ AI ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜์—ฌ ์ถ”๋ก  ๊ฒฐ๊ณผ๋ฅผ ํ†ตํ•ฉํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ 1. ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

๐Ÿ”ง ๊ธฐ์ˆ  ์Šคํƒ

Java 21

Spring Boot 3.x

Gradle

Lombok

FastAPI (AI ์„œ๋ฒ„, Python)

๐ŸŽฏ ์ฃผ์š” ๊ธฐ๋Šฅ

ํด๋ผ์ด์–ธํŠธ(React Native)์—์„œ ์š”์ฒญํ•œ ์ถ”์ฒœ API ์ œ๊ณต

AI ์„œ๋ฒ„(FastAPI)์˜ NLP/์ถ”์ฒœ ๋ชจ๋ธ๊ณผ ํ†ต์‹ 

์‚ฌ์šฉ์ž ์œ„์น˜ ๊ธฐ๋ฐ˜ ๊ฑฐ๋ฆฌ ๊ณ„์‚ฐ (Haversine ๊ณต์‹)

DB ์—†์ด ํ•˜๋“œ์ฝ”๋”ฉ๋œ ๊ณต๊ฐ„ ์ •๋ณด๋กœ ์„œ๋น„์Šค ์šด์˜ (ํ•ด์ปคํ†ค ์ตœ์ ํ™”)

๐Ÿ”— AI ์„œ๋ฒ„ ์ฃผ์†Œ

http://localhost:8001

๐Ÿ“ 2. ์‹คํ–‰ ํ™˜๊ฒฝ ์„ค์ •

2.1 application.properties ์„ค์ •

src/main/resources/application.properties

server.port=8080

AI ์„œ๋ฒ„ ์ฃผ์†Œ

ai.server.url=http://localhost:8001

JSON ํŒŒ์‹ฑ ์˜ค๋ฅ˜ ๋ฐฉ์ง€

spring.jackson.deserialization.fail-on-unknown-properties=false spring.jackson.deserialization.accept-single-value-as-array=true

โ–ถ 2.2 ์‹คํ–‰ ๋ฐฉ๋ฒ•

  1. FastAPI AI ์„œ๋ฒ„ ์‹คํ–‰ cd ai-server uvicorn main:app --reload --port 8001

  2. Spring Boot ์‹คํ–‰

IntelliJ / VSCode์—์„œ EverywhereApplication.java ์‹คํ–‰ ๋˜๋Š”

./gradlew bootRun

๐Ÿ“ก 3. API ์—”๋“œํฌ์ธํŠธ

3.1 ์ธ์›์ˆ˜ ์กฐํšŒ API (View 1) Method URL ์„ค๋ช… GET /api/v1/congestion ํŠน์ • ๊ณต๊ฐ„์˜ ์˜ˆ์ธก ์ธ์›์ˆ˜ ์กฐํšŒ Request Params ํ•„๋“œ ํƒ€์ž… ์˜ˆ์‹œ spaceId Long 201 latitude Double 37.5526 longitude Double 126.9392

3.2 ์ตœ์  ๊ณต๊ฐ„ ์ถ”์ฒœ API (View 2) Method URL ์„ค๋ช… POST /api/v1/recommendation ์‚ฌ์šฉ์ž ๋ชฉ์ ยท์œ„์น˜ ๊ธฐ๋ฐ˜ ์ตœ์  ๊ณต๊ฐ„ ์ถ”์ฒœ Request Body (JSON) ํ•„๋“œ ํƒ€์ž… (BE DTO) ์˜ˆ์‹œ ์„ค๋ช… userId String "1001" ๋ฌธ์ž์—ด๋กœ ์ „๋‹ฌํ•ด์•ผ ํŒŒ์‹ฑ ์˜ค๋ฅ˜ ๋ฐฉ์ง€ currentLatitude Double 37.5520 ์‚ฌ์šฉ์ž ์œ„๋„ currentLongitude Double 126.9390 ์‚ฌ์šฉ์ž ๊ฒฝ๋„ currentFloor String "1" ํ˜„์žฌ ์ธต (๋ฌธ์ž์—ด๋กœ ์ „๋‹ฌ) purpose String "study" ์ถ”์ฒœ ๋ชฉ์  ํ…์ŠคํŠธ

๐Ÿ”„ 4. BE โ†” AI ์„œ๋ฒ„ ํ†ต์‹  ๊ตฌ์กฐ

4.1 FastAPI ํ˜ธ์ถœ ๊ตฌ์กฐ ๋ชฉ์  BE ๋ฉ”์„œ๋“œ FastAPI ์—”๋“œํฌ์ธํŠธ ํ˜ผ์žก๋„ ์˜ˆ์ธก (Model 1) aiServerService.callAiModel1() POST /ai/predict/count ๊ณต๊ฐ„ ์ถ”์ฒœ (NLP + Model2) aiServerService.callAiModel2() POST /api/internal/ai/recommendation

4.2 ๊ณต๊ฐ„ ์ถ”์ฒœ ์ฒ˜๋ฆฌ ํ๋ฆ„

Spring Boot๊ฐ€ ์‚ฌ์šฉ์ž ์œ„์น˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ชจ๋“  ๊ณต๊ฐ„๊ณผ์˜ ๊ฑฐ๋ฆฌ(Haversine) ๋ฅผ ๊ณ„์‚ฐ

๊ณต๊ฐ„ ํŠน์ง• + ๊ฑฐ๋ฆฌ + ์‚ฌ์šฉ์ž ๋ชฉ์ ์„ ์กฐํ•ฉํ•˜์—ฌ AiRecommendationRequest DTO ์ƒ์„ฑ

FastAPI์— ์ „๋‹ฌ โ†’ NLP ๊ธฐ๋ฐ˜ purposeScore ๊ณ„์‚ฐ

๋ชจ๋ธ2 ๊ฐ€์ค‘์น˜๋กœ ์ถ”์ฒœ ์ ์ˆ˜ ์ตœ์ข… ์‚ฐ์ถœ

Spring Boot๊ฐ€ ์‘๋‹ต์„ ์ •๋ ฌํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์— ๋ฐ˜ํ™˜

๐Ÿ“˜ 5. Swagger UI

์„œ๋ฒ„ ์‹คํ–‰ ์ค‘ ์•„๋ž˜ URL ์ ‘์†:

http://localhost:8080/swagger-ui.html

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors