SmartAir๋ ์ค์๊ฐ ๊ณต๊ธฐ์ง ๋ชจ๋ํฐ๋ง๊ณผ ์๋ ์ ์ด๋ฅผ ํตํด ๊ฑด๊ฐํ ์ค๋ด ํ๊ฒฝ์ ์ ๊ณตํ๋ ์ค๋งํธ ํ ์๋ฃจ์ ์ ๋๋ค. IoT ์ผ์์ MQTT ํ๋กํ ์ฝ์ ํ์ฉํ์ฌ ์ค์๊ฐ์ผ๋ก ๊ณต๊ธฐ์ง ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ , ์ฌ์ฉ์์๊ฒ ์ง๊ด์ ์ธ ๋์๋ณด๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
โ๊ฑด๊ฐํ ์ค๋ด ํ๊ฒฝ์ ์ํ ์ค๋งํธํ ์ ํโ
- IoT ์ผ์๋ฅผ ํตํ ์ค์๊ฐ ๋ฐ์ดํฐ ์์ง
- MQTT ํ๋กํ ์ฝ ๊ธฐ๋ฐ์ ์์ ์ ์ธ ๋ฐ์ดํฐ ํต์
- ๋์์ฑ ์ ์ด๋ฅผ ํตํ ์ ๋ขฐ์ฑ ์๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ
- ์ค์๊ฐ ๊ณต๊ธฐ์ง ์ง์ ์๊ฐํ
- ์๊ฐ๋๋ณ ๊ณต๊ธฐ์ง ์ถ์ด ๋ถ์
- ์์ธก ๊ณต๊ธฐ์ง ์๊ฐํ
- ์์ธก๊ฐ๊ณผ ์ค์ธก๊ฐ ๋น๊ต์ ์๊ฐ๋๋ณ ๊ฐ์ค์น๋ฅผ ํตํ ์ค์ฐจ ๊ฐ์ง
- Firebase Cloud Messaging ๊ธฐ๋ฐ ์ค์๊ฐ ํธ์ ์๋ฆผ
- LG ThinQ API ์ฐ๋ (OAuth2 + PAT ๊ธฐ๋ฐ ๋๋ฐ์ด์ค ์ ์ด)
- ์ค๋ด ๊ณต๊ธฐ ์ํ์ ๋ฐ๋ผ ๊ณต๊ธฐ์ฒญ์ ๊ธฐ, ์์ด์ปจ ์ ์ด
- Framework: Spring Boot 3.4.3
- Language: Java 17
- Database: MySQL (Amazon RDS)
- Message Broker: MQTT (Mosquitto)
- Infra: AWS EC2, S3, Route53, ALB, CodeDeploy
- Build Tool: Gradle
- Spring Data JPA, Security + JWT + OAuth2
- Firebase Cloud Messaging (FCM)
- LG ThinQ API (AES ์ํธํ ๊ธฐ๋ฐ ํต์ )
- Lombok
- Swagger, Gradle, JUnit5
-
Developer & GitHub Actions
๊ฐ๋ฐ์๋ GitHub์ ์ฝ๋๋ฅผ ํธ์ํ๊ณ , GitHub Actions๋ฅผ ํตํด CI/CD๊ฐ ์๋์ผ๋ก ์คํ๋ฉ๋๋ค. -
AWS CodeDeploy & EC2
๋น๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ AWS CodeDeploy๋ฅผ ํตํด EC2 ์ธ์คํด์ค์ ์๋ ๋ฐฐํฌ๋ฉ๋๋ค. -
ALB & Route53
ํด๋ผ์ด์ธํธ์ ์์ฒญ์ Route53(๋๋ฉ์ธ)๊ณผ ALB(Application Load Balancer)๋ฅผ ๊ฑฐ์ณ EC2๋ก ์ ๋ฌ๋ฉ๋๋ค. -
Spring Boot & MQTT
EC2 ๋ด๋ถ์์ Spring Boot ๋ฐฑ์๋์ MQTT ๋ธ๋ก์ปค๊ฐ ํจ๊ป ๋์ํ๋ฉฐ, IoT ์ผ์ ๋ฐ์ดํฐ์ ํด๋ผ์ด์ธํธ ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค. -
Amazon RDS
๋ชจ๋ ์๋น์ค ๋ฐ์ดํฐ๋ Amazon RDS(MySQL)์ ์ ์ฅ๋ฉ๋๋ค. -
์ธ๋ถ API ์ฐ๋
Firebase, LG ThinQ ๋ฑ ์ธ๋ถ ์๋น์ค์ ์ฐ๋ํ์ฌ ๋ค์ํ ์ค๋งํธํ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. -
S3 & Endpoint Gateway
ํ์ผ ์ ๋ก๋/๋ค์ด๋ก๋ ๋ฑ์ Endpoint Gateway๋ฅผ ํตํด S3์ ์์ ํ๊ฒ ์ ์ฅ๋ฉ๋๋ค.
-
๋ฐ์ดํฐ ์์ง
- IoT ์ผ์์์ MQTT๋ฅผ ํตํด ์ค์๊ฐ ๋ฐ์ดํฐ ์ ์ก
- ๋์์ฑ ์ ์ด๋ฅผ ํตํ ์์ ์ ์ธ ๋ฐ์ดํฐ ์ฒ๋ฆฌ
-
๋ฐ์ดํฐ ์ฒ๋ฆฌ
- ์ค์๊ฐ ๊ณต๊ธฐ์ง ์ง์ ๊ณ์ฐ
- ์ฌ์ฉ์ ์ค์ ์ ๋ฐ๋ฅธ ์๋ฆผ ์ฒ๋ฆฌ
- ์๋ ์ ์ด ๋ก์ง ์คํ
-
๋ฐ์ดํฐ ์ ์ฅ
- MySQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํจ์จ์ ์ผ๋ก ์ ์ฅ
- ์ธ๋ฑ์ฑ์ ํตํ ๋น ๋ฅธ ์๊ฐ ๊ธฐ๋ฐ ๋ฐ์ดํฐ ์กฐํ
- ์ค์๊ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐ ๋ถ์
- Java 17 ์ด์
- MySQL 8.0 ์ด์
- MQTT Broker (Mosquitto)
# ํ๋ก์ ํธ ํด๋ก
git clone https://github.com/your-username/SmartAir.git
# ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ๋ก ์ด๋
cd SmartAir
# ์์กด์ฑ ์ค์น ๋ฐ ๋น๋
./gradlew build
# ์ ํ๋ฆฌ์ผ์ด์
์คํ
./gradlew bootRun- Swagger UI:
http://localhost:8080/swagger-ui.html
