๐ ํ๋ก์ ํธ๋ช : ํ์ถฉ๋ฅ์น์
๐ ํ๋ก์ ํธ ์ปจ์ : Web IoT๋ฅผ ํ์ฉํ ์ค๋งํธ ํ์ถฉ๋ฅ ์ผ์ด์ง
๐ ๊ฐ๋ฐ ๊ธฐ๊ฐ : 23.07.10 ~ 23.08.18 (6์ฃผ)
๐ง๐ป ํ์ : ์ธ์ ํ, ๊น๋ฏผํ, ๊นํ์ฃผ, ์์ธ์ด, ์กฐ์ค์
๐ป ์ฌ์ฉ ๊ธฐ์ ์คํ : SpringBoot, React, AWS + (4. ์์คํ ์ํคํ ์ฒ ์ฐธ๊ณ )
์ด๋ฆ | ์ญํ | ์ค๋ช |
---|---|---|
์ธ์ ํ (ํ์ฅ) | IoT | MQTT ํ๋กํ ์ฝ์ ํตํด ์นด๋ฉ๋ผ ๊ฐ๋ ์กฐ์ flask ํ๋ ์ ์ํฌ๋ก ์ค์๊ฐ ์์ QT ํ๋ ์ ์ํฌ์ uart ํต์ ์ ํ์ฉํ์ฌ ๋ด์ฅ ๋์คํ๋ ์ด ์ธํฐํ์ด์ค ๊ตฌํ |
๊น๋ฏผํ (๋ถํ์ฅ) | Backend | ํ๋ก์ ํธ ๊ธฐํ ๋ฐ ์ค๊ณ Backend Entity ๋ฐ API ๊ตฌํ Figma ์ ์ ERD ์ค๊ณ |
๊นํ์ฃผ | Frontend | React์ TypeScript๋ฅผ ํ์ฉํ Frontend ๊ตฌํ Zustand๋ฅผ ํ์ฉํ ์ํ ๊ด๋ฆฌ ๊ตฌํ Figma ์ ์ ERD ์ค๊ณ |
์์ธ์ด | IoT | IoT Kit ๊ด๋ฆฌ / Cage ๋ฐ ํญํฌ 3D ๋ชจ๋ธ๋ง MQTT ํต์ ๊ตฌํ ์ผ์ฑ ๋ฐ ์ก์ธ์์ดํฐ ๋์ ๊ตฌํ uart ํต์ ์ ํตํ ์ก์ธ์์ดํฐ ์ ์ด ๊ตฌํ Jira ๊ด๋ฆฌ UCC ์ ์ |
์กฐ์ค์ | Backend | Docker ๋ฐ Jenkins๋ฅผ ํ์ฉํ CI/CD ๊ตฌ์ถ Docker ๋ฐ AWS EC2๋ฅผ ํ์ฉํ ์๋ฒ ๋ฐฐํฌ Nginx๋ฅผ ํ์ฉํ Web Server ๊ตฌ์ถ ๋ฐ Reverse Proxy ์ค์ JWT ๋ฐ๊ธ ๋ฐ ์ธ์ฆ์ ํตํ ํ์๊ฐ์ , ๋ก๊ทธ์ธ ๊ธฐ๋ฅ ๊ตฌํ ERD ์ค๊ณ |
๊ธฐ๋ฅ | ์ธ๋ถ๊ธฐ๋ฅ |
---|---|
ํ์ ๊ธฐ๋ฅ | - ํ์๊ฐ์ / ๋ก๊ทธ์ธ / ๋ก๊ทธ์์ - ํ์์ ๋ณด ๋ณ๊ฒฝ ๋ฐ ํํด |
ํ๋กํ | - ์ฌ์ฉ์ ์ ๋ณด ์กฐํ - ํ์ถฉ๋ฅ ์ ๋ณด ์กฐํ |
์ผ์ด์ง ์ํ ์กฐํ | - ์ผ์ด์ง ์จ๋ / ์ต๋ / UV ๋ฑ ํ์ - ์ค์๊ฐ ์์ ์ก์ถ - ์นด๋ฉ๋ผ ์์น ์กฐ์ข |
์ผ์ด์ง ์ํ ์กฐ์ | - ์ผ์ด์ง ์จ๋ / ์ต๋ / UV ๋ฑ ํ๊ฒฝ ์ค์ |
ํ์ถฉ๋ฅ๋ณ ์ ๋ณด ๋ฑ๋ก | - ๋๋ฌผ์ ์ข ๋ฅ ๋ฑ๋ก - ์ข ๋ฅ๋ณ ๊ฐ์ด๋๋ผ์ธ ์ ๊ณต |
๋จน์ด ์ฃผ๊ธฐ ์๋ฆผ | - ๋จน์ด๋ฅผ ์ ๊ณตํ๋ ์๊ฐ์ ๋ง์ถฐ ์๋ฆผ - ๋จน์ด ์ฃผ๊ธฐ ์ ๋ ฅ |
๋ฌผํ ํ๋งค์ฒ ์ ๊ณต | - ํ๋งค์ฒ ์ฐ๊ฒฐ |
๊ธฐ๋ฅ | ์ธ๋ถ๊ธฐ๋ฅ |
---|---|
์ผ์ด์ง ์ฐ๋ | ๋ถ์ฐฉ๋ ์ผ์ด์ค์ ์ฐ๋ |
์ผ์ด์ง ์ํ ํ์ | ํ์ฌ ์ผ์ด์ง ๋ด๋ถ ์จ๋ / ์ต๋ / UV on/off ํ์ |
์ผ์ด์ง ์ํ ์กฐ์ | ํ์ฌ ์ผ์ด์ง ์จ๋ / ์ต๋ / UV ๋ณ๊ฒฝ |
๊ธฐ๋ฅ | ์ธ๋ถ ๊ธฐ๋ฅ |
---|---|
์จ์ต๋ ์ผ์ฑ | DHT ์ผ์๋ก ์จ์ต๋๋ฅผ ์ธก์ ํ mqtt ํต์ ์ผ๋ก ๊ฐ ์ ๋ฌ |
์์ ์ก์ถ | Pi Camera๋ฅผ ํตํ ์ค์๊ฐ ์์ ์ก์ถ |
์กฐ๋ช ์ ์ง | LED, ์จ์ดํจ๋๋ก ์กฐ๋ช ์ ์ง |
์จ๋ ์ ์ง | ํฌ๊ณผ ์จ์ด ํจ๋๋ก ์จ๋ ์ ์ง |
์ต๋ ์ ์ง | ๊ฐ์ต๊ธฐ ๋ชจ๋์ ์ด์ฉํ์ฌ ์ต๋ ์กฐ์ |
ํญํฌ | ์ํฐ ํํ ๋ชจํฐ๋ฅผ ํ์ฉํ์ฌ ํ๋ฅด๋ ํญํฌ ๊ตฌํ |
![๋๋ฌผ ์์ธ](./exec/assets/๋๋ฌผ ์์ธ.gif)
์์ธ | ๋ด์ฉ |
---|---|
GitLab | ํ์ ๊ด๋ฆฌ |
Jira | ์ผ์ ๋ฐ ์ด์ ๊ด๋ฆฌ |
Mattermost | ์ปค๋ฎค๋์ผ์ด์ |
Notion | ์ผ์ ๋ฐ ๋ฌธ์ ๊ด๋ฆฌ |
IntelliJ | IDE (2022.02) |
Visual Studio Code | IDE |
์์ธ | ๋ฒ์ |
---|---|
React | 5.0.1 |
zustand | 4.3.9 |
react-router-dom | 6.14.2 |
TypeScript | 5.1.6 |
Node.js | 18.17.0 |
NPM | 9.6.7 |
์์ธ | ๋ฒ์ |
---|---|
JDK (Zulu) | 11.0.19 |
SpringBoot | 2.7.13 |
Mqttv3 | 1.2.5 |
JWT | 0.9.1 |
MySQL | 8.0.26 |
Ubuntu | 20.04.6 LTS |
Nginx | 1.18.0 |
Docker | 24.0.5 |
Docker-compose | 2.20.2 |
Jenkins | 2.401.3 |
์์ธ | ๋ฒ์ |
---|---|
Arduino | Arduino IDE 2.1.1 |
Raspberry Pi | rasbian os 32bit |
paho.mqtt | 1.6.1 |
QT Framework | 5.15.2 |
Flask | 1.1.2 |
๐ mqtt
ใด๐ certs
ใด๐ config
ใด๐ data
ใด๐ logs
๐ public
ใด๐ images
ใด๐ favicon.ico
ใด๐ index.html
ใด๐ manifest.json
๐ src
ใด๐ assets
ใด๐ components
ใด๐ constants
ใด๐ pages
ใด๐ Auth
ใด๐ Login.tsx
ใด๐ SignUp.tsx
ใด๐ Cage
ใด๐ AddCage.tsx
ใด๐ Cages.tsx
ใด๐ CageDetail
ใด๐ Animal
ใด๐ AddAnimal.tsx
ใด๐ AnimalDetail.tsx
ใด๐ AnimalList.tsx
ใด๐ AlarmSetting.tsx
ใด๐ AutoSetting.tsx
ใด๐ CageDetail.tsx
ใด๐ CageInfo.tsx
ใด๐ LiveVideo.tsx
ใด๐ Dictionary
ใด๐ DicDetail.tsx
ใด๐ DicList.tsx
ใด๐ Dictionary.tsx
ใด๐ Main.tsx
ใด๐ MyPage.tsx
ใด๐ store
ใด๐ animalDicStore.tsx
ใด๐ itemStore.tsx
ใด๐ myAnimalStore.tsx
ใด๐ myCageStore.tsx
ใด๐ myPageStore.tsx
ใด๐ mySettingStore.tsx
ใด๐ userInfoStore.tsx
ใด๐ styles
ใด๐ App.css
ใด๐ App.tsx
ใด๐ index.css
ใด๐ index.tsx
ใด๐ logo.svg
ใด๐ react-app-env.d.ts
ใด๐ reportWebVitals.ts
๐ .gitignore
๐ณ docker-compose.yml
๐ณ Dockerfile
๐ nginx.conf
๐ package-lock.json
๐ package.json
๐ src/main/java
ใด๐ฆ com.ssafy.a101
ใด๐ A101Application.java
ใด๐ฆ api
ใด๐ฆ controller
ใด๐ AlarmController.java
ใด๐ AnimalController.java
ใด๐ AutoSetController.java
ใด๐ CageController.java
ใด๐ DictionaryController.java
ใด๐ StoreController.java
ใด๐ UserController.java
ใด๐ฆ request
ใด๐ AddAlarmRequest.java
ใด๐ AddAnimalRequest.java
ใด๐ AddAutoSetRequest.java
ใด๐ AddCageRequest.java
ใด๐ AddUserRequest.java
ใด๐ LoginUserRequest.java
ใด๐ SmsRequest.java
ใด๐ UpdateAlarmRequest.java
ใด๐ UpdateAnimalRequest.java
ใด๐ UpdateAutoSetRequest.java
ใด๐ UpdateCageRequest.java
ใด๐ UpdateUserRequest.java
ใด๐ฆ response
ใด๐ AlarmResponse.java
ใด๐ AnimalResponse.java
ใด๐ AutoSetResponse.java
ใด๐ CageResponse.java
ใด๐ DictionaryResponse.java
ใด๐ SmsResponse.java
ใด๐ StoreResponse.java
ใด๐ UserResponse.java
ใด๐ฆ service
ใด๐ AlarmService.java
ใด๐ AnimalService.java
ใด๐ AutoSetService.java
ใด๐ CageService.java
ใด๐ DictionaryService.java
ใด๐ SmsService.java
ใด๐ StoreService.java
ใด๐ UserService.java
ใด๐ฆ config
ใด๐ EmailConfig.java
ใด๐ JwtFilter.java
ใด๐ MqttPubConfig.java
ใด๐ MqttSubConfig.java
ใด๐ SecurityConfig.java
ใด๐ฆ db
ใด๐ฆ entity
ใด๐ Alarm.java
ใด๐ Animal.java
ใด๐ AutoSet.java
ใด๐ Cage.java
ใด๐ Dictionary.java
ใด๐ Message.java
ใด๐ Store.java
ใด๐ User.java
ใด๐ฆ repository
ใด๐ AlarmRepository.java
ใด๐ AnimalRepository.java
ใด๐ AutoSetRepository.java
ใด๐ CageRepository.java
ใด๐ DictionaryRepository.java
ใด๐ StoreRepository.java
ใด๐ UserRepository.java
ใด๐ฆ util
ใด๐ TokenUtil.java
๐ src/main/resources
ใด๐ static
ใด๐ templates
ใด๐ application.yml
๐ .gitignore
๐ .gitkeep
๐ณ docker-compose.yml
๐ณ Dockerfile
๐ build.gradle
๐ gradlew
๐ gradlew.bat
๐ settings.gradle
๐ ESP
ใด๐ main.ino
ใด๐ header.h
ใด๐ actuator.h
ใด๐ sensing.h
ใด๐ mqtt.h
ใด๐ uartSerial.h
๐ RPI4
ใด๐ main.py
๐ Koisk
ใด๐ main.py
ใด๐ kiosk.py
ใด๐ kiosk.ui
"[Type] #(Jira issue number) Commit message"
- Type
-
Fix : ์๋ชป๋ ๋์์ ๊ณ ์น ๋
fix function/error/typo in style.css
-
option
- funtion : ๊ณ ์น ํจ์ ๋ช (e.g. fix login function in index.html)
- error : ์์ ํ ์๋ฌ (e.g. fix [๊ตฌ์ฒด์ ์๋ฌ๋ช ] error in login.js)
- typo : ์คํ (e.g. fix typo in style.css)
-
Add : ์๋ก์ด ๊ฒ์ ์ถ๊ฐํ ๋
add mytest.test for test (์๋ก์ด ํ์ผ ์ถ๊ฐ ์)
add blue color to style.css (๊ธฐ์กด ํ์ผ์ ๋ด์ฉ ์ถ๊ฐ ์)
-
Move : ์ฝ๋๋ ํ์ผ์ ์ด๋ํ ๋
move A to B (e.g. A๋ฅผ B๋ก ์ด๋ํ ๋)
-
Rename : ์ด๋ฆ ๋ณ๊ฒฝ์ด ์์ ๋
rename A to B (e.g. A๋ฅผ B๋ก ์ด๋ฆ์ ๋ณ๊ฒฝํ ๋)
-
Update : ์ ์์ ์ผ๋ก ๋์ํ๋ ํ์ผ์ ๋ณด์ํ๋ ๊ฒฝ์ฐ
update test.js to use HTTPS (test.js์ ๊ธฐ์กด์ ํ๋กํ ์ฝ์์ HTTPS ํ๋กํ ์ฝ ์ฌ์ฉ์ผ๋ก ๋ณ๊ฒฝ)
-
Remove : ์ญ์ ๊ฐ ์์ ๋
remove test.js (ํ์ผ ์ญ์ ์)
remove black color from style.css (ํ์ผ ๋ด ๋ถ๋ถ ์ญ์ ์)
-
- #(Jira issue number) : Click ์, Jira์์ ํด๋น Issue์ ๋ํ ์์ธ ๋ด์ฉ ํ์ธ ๊ฐ๋ฅ
- Commit message : ๋ณ๊ฒฝ ์ฌํญ์ ๋ํด ๋ช ํํ๊ฒ ๊ธฐ์
master
โ develop
โ feature-front
โ feature-back
โ feature-iot
โ feature-log
- master : ์ด์ ์๋ฒ๋ก ๋ฐฐํฌํ๊ธฐ ์ํ ๋ธ๋์น
- develop : ๋ค์ ์ถ์ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๋ ๋ธ๋์น
- feature : ์ธ๋ถ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๋ ๋ธ๋์น
- front : ํ๋ก ํธ์๋๋ฅผ ๊ฐ๋ฐํ๋ ๋ธ๋์น
- back : ๋ฐฑ์๋๋ฅผ ๊ฐ๋ฐํ๋ ๋ธ๋์น
- iot : ์๋ฒ ๋๋๋ฅผ ๊ฐ๋ฐํ๋ ๋ธ๋์น
- log : ๊ธฐ๋ก ๋ฐ ๊ธฐํ