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
