Skip to content

Smart-Air-App/BE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

987 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏠 SmartAir - Smart Air 곡기질 관리 μ‹œμŠ€ν…œ

πŸ’» Backend



☁️ Infra / DevOps



πŸ›  Tools

πŸ“ ν”„λ‘œμ νŠΈ μ†Œκ°œ

SmartAirλŠ” μ‹€μ‹œκ°„ 곡기질 λͺ¨λ‹ˆν„°λ§κ³Ό μžλ™ μ œμ–΄λ₯Ό 톡해 κ±΄κ°•ν•œ μ‹€λ‚΄ ν™˜κ²½μ„ μ œκ³΅ν•˜λŠ” 슀마트 ν™ˆ μ†”λ£¨μ…˜μž…λ‹ˆλ‹€. IoT μ„Όμ„œμ™€ MQTT ν”„λ‘œν† μ½œμ„ ν™œμš©ν•˜μ—¬ μ‹€μ‹œκ°„μœΌλ‘œ 곡기질 데이터λ₯Ό μˆ˜μ§‘ν•˜κ³ , μ‚¬μš©μžμ—κ²Œ 직관적인 λŒ€μ‹œλ³΄λ“œλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

β€œκ±΄κ°•ν•œ μ‹€λ‚΄ ν™˜κ²½μ„ μœ„ν•œ μŠ€λ§ˆνŠΈν•œ 선택”

✨ μ£Όμš” κΈ°λŠ₯

🌑️ μ‹€μ‹œκ°„ 곡기질 λͺ¨λ‹ˆν„°λ§

  • IoT μ„Όμ„œλ₯Ό ν†΅ν•œ μ‹€μ‹œκ°„ 데이터 μˆ˜μ§‘
  • MQTT ν”„λ‘œν† μ½œ 기반의 μ•ˆμ •μ μΈ 데이터 톡신
  • λ™μ‹œμ„± μ œμ–΄λ₯Ό ν†΅ν•œ μ‹ λ’°μ„± μžˆλŠ” 데이터 처리

πŸ“Š 슀마트 λŒ€μ‹œλ³΄λ“œ

  • μ‹€μ‹œκ°„ 곡기질 μ§€μˆ˜ μ‹œκ°ν™”
  • μ‹œκ°„λŒ€λ³„ 곡기질 좔이 뢄석
  • 예츑 곡기질 μ‹œκ°ν™”

πŸ“¬ μ΄μƒμΉ˜ 탐지 및 μ•Œλ¦Ό

  • μ˜ˆμΈ‘κ°’κ³Ό μ‹€μΈ‘κ°’ 비ꡐ와 μ‹œκ°„λŒ€λ³„ κ°€μ€‘μΉ˜λ₯Ό ν†΅ν•œ 였차 감지
  • Firebase Cloud Messaging 기반 μ‹€μ‹œκ°„ ν‘Έμ‹œ μ•Œλ¦Ό

βš™οΈ μžλ™ μ œμ–΄ 및 μŠ€λ§ˆνŠΈν™ˆ 연동

  • LG ThinQ API 연동 (OAuth2 + PAT 기반 λ””λ°”μ΄μŠ€ μ œμ–΄)
  • μ‹€λ‚΄ 곡기 μƒνƒœμ— 따라 곡기청정기, 에어컨 μ œμ–΄

πŸ›  기술 μŠ€νƒ

Backend

  • 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

πŸ”„ μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜

image

μ•„ν‚€ν…μ²˜ ꡬ성 μš”μ†Œ

  • 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에 μ•ˆμ „ν•˜κ²Œ μ €μž₯λ©λ‹ˆλ‹€.

πŸ”„ 데이터 처리 흐름

  1. 데이터 μˆ˜μ§‘

    • IoT μ„Όμ„œμ—μ„œ MQTTλ₯Ό 톡해 μ‹€μ‹œκ°„ 데이터 전솑
    • λ™μ‹œμ„± μ œμ–΄λ₯Ό ν†΅ν•œ μ•ˆμ •μ μΈ 데이터 처리
  2. 데이터 처리

    • μ‹€μ‹œκ°„ 곡기질 μ§€μˆ˜ 계산
    • μ‚¬μš©μž 섀정에 λ”°λ₯Έ μ•Œλ¦Ό 처리
    • μžλ™ μ œμ–΄ 둜직 μ‹€ν–‰
  3. 데이터 μ €μž₯

    • MySQL λ°μ΄ν„°λ² μ΄μŠ€μ— 효율적으둜 μ €μž₯
    • 인덱싱을 ν†΅ν•œ λΉ λ₯Έ μ‹œκ°„ 기반 데이터 쑰회
    • μ‹€μ‹œκ°„ 데이터 처리 및 뢄석

πŸš€ μ‹œμž‘ν•˜κΈ°

ν•„μˆ˜ μš”κ΅¬μ‚¬ν•­

  • Java 17 이상
  • MySQL 8.0 이상
  • MQTT Broker (Mosquitto)

μ„€μΉ˜ 및 μ‹€ν–‰

# ν”„λ‘œμ νŠΈ 클둠
git clone https://github.com/your-username/SmartAir.git

# ν”„λ‘œμ νŠΈ λ””λ ‰ν† λ¦¬λ‘œ 이동
cd SmartAir

# μ˜μ‘΄μ„± μ„€μΉ˜ 및 λΉŒλ“œ
./gradlew build

# μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ‹€ν–‰
./gradlew bootRun

πŸ“š API λ¬Έμ„œ

  • Swagger UI: http://localhost:8080/swagger-ui.html

🌟 ν•¨κ»˜ λ§Œλ“€μ–΄κ°€λŠ” κ±΄κ°•ν•œ μ‹€λ‚΄ ν™˜κ²½ 🌟


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages