π Shopping Helper - μ€μΌμΉ κΈ°λ° μνλ μλ₯ κ²μ λμ°λ―Έ
"Shopping Helper"λ μνλ μλ₯μ λν κ²μ ν€μλκ° μκ°λμ§ μκ±°λ ν€μλ κΈ°λ° κ²μ νμ§μ΄ μ’μ§ μμ λ μ¬μ©ν μ μλ μλΉμ€μ΄λ€. μ§μ κ·Έλ¦° μλ₯ μ€μΌμΉλ₯Ό μ€μ¬ννκ³ λ³νλ μ΄λ―Έμ§λ‘ μ€μ μΌνλͺ°μμ ν맀νκ³ μλ μ μ¬ μνμ κ²μνμ¬, μ¬μ©μμ λμ¦λ₯Ό μλ²½ν λ°μν κ²μ κ²½νμ μ 곡νλ€.
κ²μ κ°μ΄λ
μ€μ¬ν μ±λ₯μ΄ λμ μ΅μ μ μ±μ λ°©μ κ°μ΄λ μ 곡
4κ°μ§ μλ₯ μΉ΄ν
κ³ λ¦¬ κΈ°λ³Έ λ°κ·Έλ¦Ό μ 곡
κ²μ νλ‘μΈμ€ 1 - μμ
κ°μΈ μ₯λΉμμ μλ₯ μ€μΌμΉ μμ
κ²μ νλ‘μΈμ€ 2 - μ±μ
κ°μΈ μ₯λΉμμ μκΉνμΌλ‘ ν¬μΈν
κ²μ νλ‘μΈμ€ 3 - μ
λ‘λ
κ²μνκ³ μΆμ λμμΈ μ€μΌμΉ μ
λ‘λ
κ²μ νλ‘μΈμ€ 4 - κ²μ κ²°κ³Ό μ‘°ν
6κ°μ μΌνλͺ°κ³Ό Bing κ²μ μμ§ κ²μ κ²°κ³Ό μ‘°ν
κ²μ λ° μ±μ κ°€λ¬λ¦¬
μμ μ μ±μ λ° κ²μ κ²°κ³Όλ₯Ό κ°€λ¬λ¦¬μ 곡μ νκΈ°
ν μ μ κ²μ κ²°κ³Ό 보기
μΆλ‘ μλ² & κ²μ API
ποΈ Project Structure
1. μΆλ‘ μμ² νμ΄νλΌμΈ
2. μλΉμ€ μμ² νλ¦λ
3. λΆμ° νκ²½ λ©μμ§ ν μ€κ³λ
4. μ΄λ―Έμ§ μμ² νλ¦λ
>>> docker -v: 24.0.7
>>> docker-compose -v: v2.23.3-desktop.2
μΆλ‘ μμ²μ λ°λ API μλ², DBMSμ μ μ¬λ μΆλ‘ κ²°κ³Όλ₯Ό ν΄λΌμ΄μΈνΈλ‘ λ°ννλ μν
μΆλ‘ μμ²μ κ΄λ¦¬νλ Queue
CLOTHES μΆλ‘ μμ² Queue 1κ°λ‘ μλ₯ 4κ° μΉ΄ν
κ³ λ¦¬(μμ, νμ, λͺ¨μ, μΉλ§) μμ²μ μ²λ¦¬
Data Type: Stream
μ
λ‘λ, μΆλ‘ κ²°κ³Ό μ 보λ₯Ό μ μ₯νλ Store
νμ΄μ¬ μ€ν¬λ¦½νΈλ₯Ό HTTP μλ²λ‘ λμ°κΈ° μν λΌμ΄λΈλ¬λ¦¬
>>> cd shopping-helper\backend
>>> ./gradlew test
>>> open .\build\reports\tests\test\index.html (mac)
>>> start .\build\reports\tests\test\index.html (window)
>>> sudo lsof -i :3306
>>> sudo kill PID (Docker Mysql ν¬νΈ ν λΉμ μν¨)
>>> cd shopping-helper
>>> docker-compose up --build
(Spring μλ² μ€ν 1-1) νλ‘ν νκ²½λ³μ μ€μ (application.yml)
SOURCE_MYSQL_URL
= Mysql IP
SOURCE_MYSQL_USERNAME
= Mysql user name
SOURCE_MYSQL_PASSWORD
= Mysql ν¨μ€μλ
SOURCE_REDIS_URL
= Redis IP
SOURCE_REDIS_PORT
= 6379
GCS_BUCKET
= μ€ν λ¦¬μ§ λ²ν·λͺ
GCS_CREDENTIALS
= νλ‘μ νΈ κΆνν€
GCS_PROJECT_ID
= νλ‘μ νΈ ID
(Spring μλ² μ€ν 1-2) IntelliJ μλ² ON
(Spring μλ² μ€ν 2) JAR BUILD & νμΌ μ€ν
>>> cd backend
>>> java -jar backend-0.0.1-SNAPSHOT.jar \
-DSOURCE_MYSQL_URL="jdbc:mysql://localhost:3306/SKETCH2FASHIONautoReconnect=true&serverTimezone=Asia/Seoul" \
-DSOURCE_MYSQL_USERNAME="root" \
-DSOURCE_MYSQL_PASSWORD="password" \
-DSOURCE_REDIS_URL="127.0.0.1" \
-DSOURCE_REDIS_PORT="6379" \
-DGCS_BUCKET="bucket" \
-DGCS_CREDENTIALS="key" \
-DGCS_PROJECT_ID="id" \
(μΆλ‘ μλ² μ€ν 1-1) TSHIRTS, PANTS, HAT, SKIRT μλ² ON
>>> cd ml
>>> pip install -r requirements.txt
>>> python tshirts_worker.py
>>> python pants_worker.py
>>> python hat_worker.py
>>> python skirt_worker.py