Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/beyond-sw-camp/be04-4th-pi-moodholic
๐
๊น์ฌํ ๐
๋ฐ๊ฒฝ๋ ๐
์ ๋ํธ ๐
์ด๋๋ณด๋ผ ๐
์ดํ์ฐ
https://github.com/beyond-sw-camp/be04-4th-pi-moodholic
docker google-cloud jenkins k8s mariadb oauth2 openai-api openweathermap-api react-native redis sprng-boot vue3
Last synced: about 2 months ago
JSON representation
๐ ๊น์ฌํ ๐ ๋ฐ๊ฒฝ๋ ๐ ์ ๋ํธ ๐ ์ด๋๋ณด๋ผ ๐ ์ดํ์ฐ
- Host: GitHub
- URL: https://github.com/beyond-sw-camp/be04-4th-pi-moodholic
- Owner: beyond-sw-camp
- Created: 2024-04-18T00:45:37.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-04-22T02:23:05.000Z (10 months ago)
- Last Synced: 2024-04-22T06:11:28.970Z (10 months ago)
- Topics: docker, google-cloud, jenkins, k8s, mariadb, oauth2, openai-api, openweathermap-api, react-native, redis, sprng-boot, vue3
- Language: CSS
- Homepage:
- Size: 69 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
![001](https://github.com/Bodrami/Practice_Template/assets/149561287/c8f36c21-0cdc-406c-a842-00768ee2980c)
[![Hits](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2Fbeyond-sw-camp%2Fbe04-4th-PI-MoodHolic.git&count_bg=%23006EFF&title_bg=%23767676&icon=keybase.svg&icon_color=%23E7E7E7&title=Today&edge_flat=false)](https://hits.seeyoufarm.com)
๐ Introduce Our Team
> **ํ๋ช ์ 3.141592์กฐ (PIE)** ๋ก ๋ฌดํ๋๋ก(PI) ๊ฐ๋ฐ์ ์ฆ๊ธฐ๋ฉฐ ๋ฌดํ๋๋ก ์ฑ์ฅํ๊ณ ์๋ ๊ฐ๋ฐํ์๋ค์ด ๋ชจ์ฌ '๊ฐ์น๋ ๊ฐ์ดํ ๋ ๋ ์ข์ โ๊ฐ.์นโ๊ฐ ๋๋ค. ๋ผ๋ ์ฌ๋ก๊ฑด์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ด๋ฒ ํ๋ก์ ํธ์์๋ ์ฌ๋ฌ ๊ฐ์ง ์ฃผ์ ์ค ํ์๋ฅผ ํตํด ์ ์ ํ๊ณ ๊ฐ์๊ฐ ๋งก์ ๋ถ๋ถ์ ์ฑ ์๊ฐ์ ๊ฐ์ง๊ณ ๊ฐ๋ฐ์ ๊ตฌํํ๋ ํ์ ํ ์ ์๋ ํ์ํฌ๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์์ต๋๋ค. ํ๋์ ์๋ฌ๋ ํผ์๊ฐ ์๋๋ผ ํ์๋ค๊ณผ ๋จธ๋ฆฌ๋ฅผ ๋ง๋๊ณ ์๋ก ๋ฏฟ๊ณ ์์งํ๋ฉฐ ์ ๊ทน์ ์ธ ์์ฌ์ํต์ ํตํด ์ด๋ค ์๋ฌ์๋ ๊ตด๋ณตํ์ง ์๊ณ ์ด๊ฒจ๋ด ๊ฐ๋ฐํ ์ ์๋ ํ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ์ด๋ฒ ํ๋ก์ ํธ์์๋ 2์ฃผ์ ๋จ๊ธฐ๊ฐ๋์ ๊ธฐํ๋ถํฐ ํ๋ก ํธ, ๋ฐฑ, ์๋ฒ ์ฐ๋ ๋ฑ ๊ฐ๋ฐ์ ์ ๋ฐ์ ์ธ ๊ณผ์ ์ ๊ฒฝํํด๋ณด๋ฉด์ ๊ทธ๋์ ๋ฐฐ์ด ๋ด์ฉ์ ์ง์ ์ฌ์ฉํด๋ณด๋ฉด์ ๋ณต์ตํ๋ ๊ธฐํ๋ ๊ฐ์ ธ๋ณด์์ต๋๋ค.๐ฅ Contact & Group
๐ค Members
[](https://github.com/jaehyeon-SMU) **๊น์ฌํ** ย ย [](https://github.com/Virtue14) **๋ฐ๊ฒฝ๋** ย ย [](https://github.com/letsplaycoding) **์ ๋ํธ** ย ย [](https://github.com/Bodrami) **์ด๋๋ณด๋ผ** ย ย [](https://github.com/daersh) **์ดํ์ฐ**๐ ๏ธ Technology Stack
### โ๏ธ Front-Endย ย ย ย ย ย
### โ๏ธ Back-End
ย ย ย ย ย ย ย ย ย ย
### โ๏ธ Production
### โ๏ธ CI/CD
ย ย ย ย
![แแ ณแแ ณแ แ ตแซแแ ฃแบ_2024-04-03_แแ ฉแแ ฎ_ ovebg-preview (1)_animation](https://github.com/ThisDotE/InnerJoinUs/assets/149561287/839d399a-f74a-4d12-80c8-040cbfcc049d)[![Typing SVG](https://readme-typing-svg.demolab.com?font=Fira+Code&weight=900&size=22&pause=1000&color=F7C621&vCenter=true&multiline=true&random=false&width=438&height=52&lines=Welcome+We+are+Team+PI)](https://git.io/typing-svg)
[![Typing SVG](https://readme-typing-svg.demolab.com?font=Fira+Code&weight=900&size=40&pause=1000&color=085EF7&vCenter=true&random=false&width=438&height=70&lines=Mood+Holic!!)](https://git.io/typing-svg)# ๐ Mood Holic ์๊ฐ
### ๐ ๊ธฐํ ๋ฐฐ๊ฒฝ
> ํ๋ ์ฌํ์์๋ ์คํธ๋ ์ค, ๋ถ์, ์ฐ์ธ ๋ฑ์ ์ ์ ๊ฑด๊ฐ ๋ฌธ์ ๊ฐ ์ฆ๊ฐํ๊ณ ์์ต๋๋ค. ์ด๋ฌํ ๋ฌธ์ ์ ๋์ฒํ๊ณ ๊ฐ์ ์ ๊ด๋ฆฌํ๋ ๊ฒ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๋ฐ๋ผ์ ๊ฐ์ธ์ด ๊ฐ์ ์ ์ ๋ฆฌํ๊ณ ๊ด๋ฆฌํ๋๋ฐ ๋์์ ์ฃผ๋ ํด์ด ํ์ํ๋ค๋ ํ์์ฑ์ด ์๋ค๊ณ ์๊ฐํ์ต๋๋ค. ๋ํ ์ฌ์ฉ์๋ค์ ๊ฐ์ธํ๋ ์๋น์ค๋ฅผ ์ ํธํ๊ณ ์์ ์ ๊ฐ์ ์ํ์ ์ ํธ๋์ ๋ง์ถ ์ถ์ฒ์ ๋ฐ๋ ๊ฒ์ ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํค๋๋ฐ ๋์์ด ๋์๋ ๊ฒฝํ์ ๊ฐ์ง๊ณ ์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ๊ธฐํํ๊ฒ ๋์์ต๋๋ค.### ๐ก ํด๊ฒฐ ์ปจ์
- **์ผ๊ธฐ ์์ฑ**: ์ฌ์ฉ์๋ ํ๋ฃจ๋ง๋ค์ ๊ฐ์ ์ ์ ๋ฆฌํ๋ฉด์ ๊ฒช์๋ ์ด๋ ค์์ด๋ ๋ฐฐ์ด ์ ๋ฐ ์ฑ์ฅํ ๊ฒฝํ ๋ฑ์ ์์ ๋กญ๊ฒ ์ ๋ฆฌํ ์ ์์ต๋๋ค.
- **GPT๋ฅผ ํตํ ๊ฒฐ๊ณผ ๋์ถ**: GPT ํ๋กฌํํธ๋ฅผ ํตํด ์ผ๊ธฐ๋ฅผ ์ ๋ฌํ์ฌ ํ์์ ๊ธฐ๋ถ ์ ์, ์ถ์ฒ ์ปจํ ์ธ (์์,์์ ,์ํ)๋ฅผ ์ ๋ฌ๋ฐ์ ํ์์๊ฒ ํด๋น ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
- **ํต๊ณ ๋ถ์**: ์ ์ฅ๋ ๋ฐ์ดํฐ๋ค์ ๊ธฐ๋ฐ์ผ๋ก ํ ํ์์ ๋ํ ๊ธฐ๋ถ, ์์, ์์ , ์ํ ์ทจํฅ ๋ถ์ ๋ฑ์ ํต๊ณ๋ก ์๊ฐํ ํ ์ ์์ต๋๋ค. (ex. ๊ทธ๋ํ)### โจ ๊ธฐ๋ ํจ๊ณผ
1. ๊ฐ์ ๊ด๋ฆฌ ๋ฐ ์ ์์ ์์ : ์ฌ์ฉ์๊ฐ ์ผ๊ธฐ๋ฅผ ์์ฑํ๋ฉด์ ์์ ์ ๊ฐ์ ์ ์ ๋ฆฌํ๊ณ ์ดํดํ ์ ์์ต๋๋ค. ์ผ๊ธฐ ์์ฑ์ ๋ง์์ ์ง์๋ฅผ ์ ์งํ๊ณ ์ ์์ ์์ ์ ๋๋ชจํ๋๋ฐ ๋์์ด ๋ฉ๋๋ค.
2. ๊ฐ์ธ ์ฑ์ฅ ๋ฐ ์๊ธฐ ์ธ์: ์ฌ์ฉ์๊ฐ ์ด๋ ค์, ์ฑ์ฅ, ๋ฐฐ์ด ์ ๋ฑ์ ์ผ๊ธฐ์ ๊ธฐ๋กํจ์ผ๋ก์จ ์์ ์ ๊ฐ์ธ์ ์ธ ์ฑ์ฅ์ ์ถ์ ํ๊ณ ์ธ์ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋ ๋์ ๋ฐฉํฅ์ผ๋ก ๋์๊ฐ ์ ์๋ ์ธ์ฌ์ดํธ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
3. ๊ฐ์ธํ๋ ์ถ์ฒ: GPT๋ฅผ ์ฌ์ฉํ์ฌ ์ผ๊ธฐ ๋ด์ฉ์ ๋ถ์ํ๊ณ , ์ฌ์ฉ์์ ๊ฐ์ ์ํ์ ๋ฐ๋ผ ์ ํฉํ ์์, ์์ , ์ํ ๋ฑ์ ์ถ์ฒํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ฐ์ธํ๋ ์ถ์ฒ์ ์ฌ์ฉ์๊ฐ ํธ์ํจ์ ์ฐพ๊ฑฐ๋ ๊ฐ์ ์ ํ๋ณตํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
4. ์ฌ์ฉ์ ๊ด์ฌ์ฌ ํ์ ๋ฐ ์๋น์ค ๊ฐ์ : ์ฌ์ฉ์์ ์ผ๊ธฐ ๋ด์ฉ์ ํตํด ๊ฐ์ , ์์, ์์ , ์ํ ์ทจํฅ ๋ฑ์ ๋ถ์ํจ์ผ๋ก์จ ์ฌ์ฉ์์ ๊ด์ฌ์ฌ์ ์ฑํฅ์ ํ์ ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์๋น์ค๋ฅผ ๊ฐ์ ํ๊ณ ๋ณด๋ค ๋ง์ถคํ๋ ์ฝํ ์ธ ๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
5. ํต๊ณ ๋ถ์์ ํตํ ์ธ์ฌ์ดํธ ๋์ถ: ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ํต๊ณ ๋ถ์์ ์ฌ์ฉ์๋ค์ ๊ฐ์ ๋ณํ, ์ทจํฅ ๋ณํ, ์ฑ์ฅ ๊ณผ์ ๋ฑ์ ์ดํดํ๋ ๋ฐ ๋์์ ์ค ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ํธ๋ ๋ ํ์ ์ด๋ ์ฌ์ฉ์๋ค์๊ฒ ๋ ๋์ ์๋น์ค๋ฅผ ์ ๊ณตํ ์ ์๋ ์ธ์ฌ์ดํธ๋ฅผ ๋์ถํ ์ ์์ต๋๋ค.
ย ย ย **=> ์ด์ฒด์ ์ผ๋ก, ์ด๋ฌํ ์์คํ ์ ์ฌ์ฉ์๋ค์ ์ ์์ ๊ฑด๊ฐ๊ณผ ์ฑ์ฅ์ ์ง์ํ๊ณ , ๊ฐ์ธํ๋ ์๋น์ค๋ฅผ ์ ๊ณตํ์ฌ ๋ณด๋ค ๋ง์กฑ์ค๋ฌ์ด ๊ฒฝํ์ ์ ๊ณตํ ์ ์์ต๋๋ค.**
### ๐ ์ฃผ์ํ์ด์ง ์๊ฐ
- **์ผ๊ธฐ ์์ฑ**: ์ฌ์ฉ์๋ ํ๋ฃจ๋ง๋ค์ ๊ฐ์ ์ ์ ๋ฆฌํ๋ฉด์ ๊ฒช์๋ ์ด๋ ค์์ด๋ ๋ฐฐ์ด ์ ๋ฐ ์ฑ์ฅํ ๊ฒฝํ ๋ฑ์ ์์ ๋กญ๊ฒ ์ ๋ฆฌํ ์ ์์ต๋๋ค.
- **GPT๋ฅผ ํตํ ๊ฒฐ๊ณผ ๋์ถ**: GPT ํ๋กฌํํธ๋ฅผ ํตํด ์ผ๊ธฐ๋ฅผ ์ ๋ฌํ์ฌ ํ์์ ๊ธฐ๋ถ ์ ์, ์ถ์ฒ ์ปจํ ์ธ (์์,์์ ,์ํ)๋ฅผ ์ ๋ฌ๋ฐ์ ํ์์๊ฒ ํด๋น ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
- **ํต๊ณ ๋ถ์**: ์ ์ฅ๋ ๋ฐ์ดํฐ๋ค์ ๊ธฐ๋ฐ์ผ๋ก ํ ํ์์ ๋ํ ๊ธฐ๋ถ, ์์, ์์ , ์ํ ์ทจํฅ ๋ถ์ ๋ฑ์ ํต๊ณ๋ก ์๊ฐํ ํ ์ ์์ต๋๋ค. (ex. ๊ทธ๋ํ)# ๐ ์ถ์ง ๊ณํ
### ๐๏ธ Table: ์ถ์ง์ฒด๊ณ
| ๊ตฌ๋ถ | ์กฐ์ง | ์ฃผ์ ์ญํ |
| --- | --- | --- |
| ์ฃผ๊ด | team 3.141592(PI) | ์น ํ์ด์ง ๊ตฌ์ถ ๋ฐ ๋ฐฐํฌ |
| ์ง์๊ธฐ๊ด | ํํ์์คํ x์์ฝ์ | ์ฅ๋น ์ง์ ๋ฐ ํ๋ฆฌํฐ ์ ๊ฒ |- ์ถ์ง ์ผ์ : 2024-04-01 ~ 2024-04-17
- ์์ ์ํ๊ณต๊ฐ: ์์ธ ๋์๊ตฌ ๋ณด๋ผ๋งค๋ก 87 SFC๋น๋ฉ 3F 1๊ฐ์์ค, ์๊ฒฉ ์ํต(Discord ๋ฐ slack)
# ๐ Mood Holic's System Architecture
![แแ ณแแ ณแ แ ตแซแแ ฃแบ 2024-04-19 แแ ฉแแ ฎ 3 38 52](https://github.com/beyond-sw-camp/be04-4th-PI-MoodHolic/assets/149561287/3f6df52b-e5b1-49ff-9fee-25bc0d7b9ddc)
# ๐ ์๋ฐฐ์ด ๊ธฐ์ ๋ชฉ๋ก
* Google Cloud - ํด๋ผ์ฐ๋์ ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ํ์ฌ ์ด๋ฏธ์ง url๋ง ๊ด๋ฆฌํ ์ ์๋๋ก ํจ
* V-Calendar - ๋ฌ๋ ฅ API๋ก ๋ฉ์ธ ํ๋ฉด (๋ค์ด์ด๋ฆฌ ๋ฌ๋ ฅ)๊ธฐ๋ฅ ๊ตฌํ
* vue-chart - ํต๊ณ, ์์น๋ฅผ ํ๋ก ์ถ๋ ฅํ๊ธฐ ์ํ API
* react native - ํ์ด์ค๋ถ์์ ๋ง๋ ์คํ์์ค ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ ์์ํฌ๋ก ๊ตฌํํ ์น์ ์ฑ์ผ๋ก ๊ตฌํ# ๐ ์ผ์ ๊ด๋ฆฌ (Sprint Kanban)
### โฐ Sprint Kanban 1์ฃผ์ฐจ
![image](https://github.com/Bodrami/Practice_Template/assets/149561287/11c62c6d-9e3d-4671-91a7-f3dc4040cf54)### โฐ Sprint Kanban 2์ฃผ์ฐจ
![image](https://github.com/Bodrami/Practice_Template/assets/149561287/ae2f3747-8762-4fbc-a350-996fc0f4df45)# ๐ Mood Holic Story Board
Story Board
![InnerJoinUs_แแ ณแแ ฉแ แ ต-แแ ฉแแ ณ_wire-frame__แแ ตแแ ณแผแแ ฎแแ งแซแแ ฌแซ-แแ ฅแบแแ กแซ_แแ ฉแจแแ กแแ ฉแซ](https://github.com/beyond-sw-camp/be04-4th-PI-MoodHolic/assets/149561287/dcfd0ba0-5c5d-4ca6-9b35-903cc45636d7)# ๐ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ
Mood.Holic.APP
```
๐ public
โโย ๐ Favicon.ico
๐ src
โโย ๐ assets
โย ย โโย ๐ css
โย ย โโย ๐ icon
โโย ๐ components
โย ย โโย ๐ category๋ณ ํด๋
โย ย ย ย ย โโย ๐ .vue ํ์ผ // Login.Vue ํ์ผ ๋ฑ
โโย ๐ App.vue
โโย ๐ main.js
โโย ๐ store
ย ย ย โโย ๐ store.js
โโย ๐ view
โย ย โโย ๐ category๋ณ ํด๋
โย ย ย ย ย โโย ๐ .vue ํ์ผ
โโย ๐ router
ย ย ย โโย ๐ index.js
```Mood.Holic.BE
```
๐ Akatsuki
โโ ๐ MoodHolicBE
โโ ๐ MoodHolicFE
```Mood.Holic.FE
```
๐ .github
โโย ๐ Template
๐ public
๐ public
โโย ๐ Favicon.ico
๐ src
โโย ๐ assets
โย ย โโย ๐ css
โย ย โโย ๐ icon
โย ย โโย ๐ imges
โโย ๐ components
โย ย โโย ๐ calendar
โย ย โโย ๐ header
โย ย โโย ๐ main
โโย ๐ router
โย ย โโย ๐ router.js
โโย ๐ store
โย ย โโย ๐ store.js
โโย ๐ views
โโย ๐ App.Vue
โโย ๐ main.js
โโ ๐ .gitignore
โโ ๐ index.html
โโ ๐ jsconfig.json
โโ ๐ package.json
โโ ๐ package-lock.json
โโ ๐ README.md
โโ ๐ vite.config.js
```# ๐ DB Modeling (ERD, DDD, DDL, DML)
๐๏ธ ERD
![ERD](https://github.com/Bodrami/Practice_Template/assets/149561287/6484caa0-d971-4916-a3ce-e25ac9415492)๐๏ธ DDD
![image](https://github.com/Bodrami/Practice_Template/assets/149561287/1058f95c-04fc-4181-ad25-a2f4adb7a7e0)
๐๏ธ DDL
DDL ๊ตฌ๋ฌธ
```sql
DROP DATABASE IF EXISTS moodholic;CREATE DATABASE IF NOT EXISTS moodholic default CHARACTER SET UTF8;
USE moodholic;
DROP TABLE diary CASCADE;
DROP TABLE diary_emotion CASCADE;
DROP TABLE diary_food CASCADE;
DROP TABLE diary_food_like CASCADE;
DROP TABLE diary_movie CASCADE;
DROP TABLE diary_movie_like CASCADE;
DROP TABLE diary_music CASCADE;
DROP TABLE diary_music_like CASCADE;
DROP TABLE emotion CASCADE;
DROP TABLE food CASCADE;
DROP TABLE member CASCADE;
DROP TABLE movie CASCADE;
DROP TABLE music CASCADE;CREATE TABLE `member` (
`member_id` BIGINT AUTO_INCREMENT NOT NULL,
`nickname` VARCHAR(50) NULL,
`provider` VARCHAR(30) NULL,
`email` VARCHAR(50) NULL,
PRIMARY KEY (`member_id`)
);CREATE TABLE `diary` (
`diary_id` INT AUTO_INCREMENT NOT NULL,
`date` DATE NULL,
`content` TEXT NULL,
`status` BOOLEAN NULL DEFAULT FALSE,
`Img_path` TEXT NULL,
`member_id` BIGINT NOT NULL,
`summary` VARCHAR(255) NULL,
PRIMARY KEY (`diary_id`)
);CREATE TABLE `emotion` (
`emotion_id` INT AUTO_INCREMENT NOT NULL,
`emotion_score` INT NULL,
PRIMARY KEY (`emotion_id`)
);CREATE TABLE `music` (
`music_id` INT AUTO_INCREMENT NOT NULL,
`music_name` VARCHAR(255) NULL,
`singer` VARCHAR(255) NULL,
`music_genre` VARCHAR(255) NULL,
PRIMARY KEY (`music_id`)
);CREATE TABLE `food` (
`food_id` INT AUTO_INCREMENT NOT NULL,
`food_name` VARCHAR(255) NULL,
`food_category` ENUM('ํ์','์ค์','์์','์ผ์','์์์') NULL,
`food_spicy` INT NULL,
PRIMARY KEY (`food_id`)
);CREATE TABLE `movie` (
`movie_id` INT AUTO_INCREMENT NOT NULL,
`movie_name` VARCHAR(255) NULL,
`movie_genre` VARCHAR(255) NULL,
PRIMARY KEY (`movie_id`)
);CREATE TABLE `diary_music` (
`diary_music_id` INT AUTO_INCREMENT NOT NULL,
`diary_id` INT NOT NULL,
`music_id` INT NOT NULL,
`music_like` BOOLEAN NULL,
PRIMARY KEY (`diary_music_id`)
);CREATE TABLE `diary_food` (
`diary_food_id` INT AUTO_INCREMENT NOT NULL,
`diary_id` INT NOT NULL,
`food_id` INT NOT NULL,
`food_like` BOOLEAN NULL,
PRIMARY KEY (`diary_food_id`)
);CREATE TABLE `diary_movie` (
`diary_movie_id` INT AUTO_INCREMENT NOT NULL,
`movie_id` INT NOT NULL,
`diary_id` INT NOT NULL,
`movie_like` BOOLEAN NULL,
PRIMARY KEY (`diary_movie_id`)
);CREATE TABLE `diary_emotion` (
`diary_emotion_id` INT AUTO_INCREMENT NOT NULL,
`diary_id` INT NOT NULL,
`emotion_id` INT NOT NULL,
PRIMARY KEY (`diary_emotion_id`)
);CREATE TABLE `comment` (
`comment_id` INT AUTO_INCREMENT NOT NULL,
`diary_id` INT NOT NULL,
`comment_content` VARCHAR(255) NOT NULL,
PRIMARY KEY (`comment_id`)
);ALTER TABLE `diary`
ADD CONSTRAINT `fk_member_id` FOREIGN KEY (`member_id`)
REFERENCES `member`(`member_id`);ALTER TABLE `diary_music`
ADD CONSTRAINT `fk_diary_id1` FOREIGN KEY (`diary_id`)
REFERENCES `diary`(`diary_id`);ALTER TABLE `diary_music`
ADD CONSTRAINT `fk_music_id` FOREIGN KEY (`music_id`)
REFERENCES `music`(`music_id`);ALTER TABLE `diary_food`
ADD CONSTRAINT `fk_diary_id2` FOREIGN KEY (`diary_id`)
REFERENCES `diary`(`diary_id`);ALTER TABLE `diary_food`
ADD CONSTRAINT `fk_food_id` FOREIGN KEY (`food_id`)
REFERENCES `food`(`food_id`);ALTER TABLE `diary_movie`
ADD CONSTRAINT `fk_diary_id3` FOREIGN KEY (`diary_id`)
REFERENCES `diary`(`diary_id`);ALTER TABLE `diary_movie`
ADD CONSTRAINT `fk_movie_id` FOREIGN KEY (`movie_id`)
REFERENCES `movie`(`movie_id`);ALTER TABLE `diary_emotion`
ADD CONSTRAINT `fk_diary_id4` FOREIGN KEY (`diary_id`)
REFERENCES `diary`(`diary_id`);ALTER TABLE `diary_emotion`
ADD CONSTRAINT `fk_emotion_id` FOREIGN KEY (`emotion_id`)
REFERENCES `emotion`(`emotion_id`);ALTER TABLE `comment`
ADD CONSTRAINT `fk_diary_id5` FOREIGN KEY (`diary_id`)
REFERENCES `diary`(`diary_id`);
```๐๏ธ DML
DML ๊ตฌ๋ฌธ
```sql
INSERT
INTO member
(email,nickname, provider)
VALUES
('[email protected]','์ธ๋ฅด๋๋', 'google')
, ('[email protected]', '์ฐ์ฃผ์ต๊ฐ๋ฏธ๋จ', 'naver')
, ('[email protected]', '๋ฆฌ์นด์๋ฆฌ','google')
, ('[email protected]', '์ฅฌ๋ผ๊ธฐ์๋','google')
, ('[email protected]', '๋ฅ์ณ๋งํฌ์ด', 'naver')
, ('[email protected]', '๊ฐ๋ฌธ๋นํ๋์', 'google')
, ('[email protected]', '๋งํธ๋ค', 'naver')
, ('[email protected]','์ด๋๊ฐ๊บผ์ผ', 'google')
, ('[email protected]', '๊ฒ์์กฐ์','naver')
, ('[email protected]', 'ํํ์๋ฆฌ', 'google')
, ('[email protected]', '๊ทค๋ ๋ ', 'google')
, ('[email protected]', '๋ฌผ๋ณต์ญ์', 'google')
, ('[email protected]', '์งํ์ฒ์ฒ', 'naver')
, ('[email protected]', 'littleUnivers','naver')
, ('[email protected]', 'handselim', 'google')
, ('[email protected]', '์ค๋์ก', 'naver')
, ('[email protected]', 'god๋์', 'google')
, ('[email protected]', '์ด์ธ์นด์ด', 'google')
, ('[email protected]', '๋ฐ๋์ฌ์ด', 'naver')
, ('[email protected]', '๋ณด์ฐํ๋ฆฌ', 'naver')
, ('[email protected]', '๋ฒค์กฐ์นด์ธ', 'naver')
, ('[email protected]', '์ดํ์ธ๊ตฐ', 'google')
, ('[email protected]', '๋ค๋ถ์๋ถ', 'google')
, ('[email protected]', 'ํ๋ผ๋์ค', 'google')
, ('[email protected]', 'ํํฌ์ค๋ฒ', 'google')
, ('[email protected]', '๋ง์ด์นด๋์ดํธ', 'google')
, ('[email protected]', '๋ง๋ฅธ์์ฐ๋ณถ์', 'naver')
, ('[email protected]', '๋ฉ์ํฌํ๋ฏธ์', 'naver')
, ('[email protected]', 'DragonVicroty', 'google')
, ('[email protected]', 'ํค๋ฌ์๋ฃจ๋', 'naver')
, ('[email protected]', 'rpwkr', 'naver');
INSERT
INTO diary
(`date`,`content`,`member_id`, `summary`)
VALUES
(
'2024-03-25'
,'์ค๋์ ์ค๋๋ง์ ์น๊ตฌ์ ์ด๋์ผ์นดํ์์ ๋ง๋ ์ฝ๋๋ธ๋ฃจ๋ฅผ ๋ง์๋ฉฐ ์๋ค๋ฅผ ๋จ์๋ค.
์ ์ฌ์น์ด์ผ๊ธฐ์ ๋กค์ด์ผ๊ธฐ๋ฅผ ํ๋๋ฐ ์ญ์ ๋ด ๋ฒ ํ๋ผ ๊ทธ๋ฐ์ง ๋ํ๋ ์ฆ๊ฑฐ์์ ๊ธฐ๋ถ์ด ๋งค์ฐ ์ข์๋ค.
์ฌ์ง์ด ์ด๋ ์กฐ๊ฐ๊ตฌ์ด๋ ๋จน์ด์ ์ง์ง ์ฐ์ผ๋ก ๊ด๋๊ฐ ๋์ฌ๋งํผ ์์๋๊ฒ ๊ฐ๋ค.
๋ด์ผ๋ ์ด์ ๋๋ก ๊ธฐ๋ถ์ข์ ์ผ๋ง ๊ฐ๋ํ์ผ๋ฉด ์ข๊ฒ ๋ค.',
8,
'๊ธฐ๋ถ ์ข์๋ค'
),
(
'2024-03-26'
,'๊ธฐ๋ถ์ด ์ข๊ธฐ๋ ๊ฐ๋ฟ ์์๋ถํฐ ๊ผฌ์๋ค.
ํ์ฌ์์ ์์ฌ๊ฐ ๊ฐ์๊ธฐ ์ค์ ํ๋ก์ ํธ ๋ง๊ฐ์ผ์ด ๋ค๊ฐ์ค๊ณ ์์ผ๋ ์ค๋ ์ผ๊ทผ์ ํ๋ผ๋ ๋ง์ ํ๋๊ฒ ์๋๊ฒ ๋๊ฐ
์ค๋ ์ง๊ฐ์ ์ผ๊ตฌ๋ณด๋ฉด์ ์์ํ ๋งฅ์ฃผ๋ง์๋ฉด์ ์ด๋ ค๊ณ ํ๋๋ฐ ๊ธฐ๋ถ์ด ๋๋ฌด ์์ข์์ก๋ค.
์ง๊ธ ์ด์๊ฐ์ ํ์ฌ์์ ์ผ๊ธฐ๋ ์ฐ๊ณ ์๋ค๋ ์ง์ง ํ๋๋ค',
8,
'ํ๊ฐ ๋ฌ๋ค'
),
(
'2024-03-27'
,'์ค๋๋ง์ ๋์๊ด์ ๊ฐ์ ์ฑ ์ ์ฝ์๋ค.
์กฐ์ฉํ๊ณ ์ง์คํ๊ธฐ ์ข์ ํ๊ฒฝ์์ ์๊ฐ๊ฐ๋ ์ค ๋ชฐ๋๋ค.
๋ณ๋ค๋ฅธ ํน๋ณํ ์ผ ์์ด ํธ์ํ๊ณ ์กฐ์ฉํ ํ๋ฃจ์๋ค.
๊ฐ๋์ ์ด๋ฐ ํ์จํ ํ๋ฃจ๋ ๊ด์ฐฎ์ ๊ฒ ๊ฐ๋ค. ',
8,
'๋๋ฆ ๊ด์ฐฎ์ ํ๋ฃจ'
),
(
'2024-03-28'
,'์ค๋ ์์ฃผ ํ๋ณตํ ๊ฟ์ ๊ฟจ๋ค. ๋ฐ๋ก ์ต๋ง์ฅ์๊ฐ ๋๋ ๊ฟ!! ๊ทผ๋ฐ ๊นผ๋๋ ๋ด ๋์์ ๋ณด์ด๋๊ฑด
์ด์ ๋จน๊ณ ์์น์ด ๋ง๊ตญ์ ๊ทธ๋ฆ๊ณผ ์ด๋ถ์ ๋จ์ด์ง ์กฑ๋ฐ ํ์กฐ๊ฐ์ด์๋ค. ์์นจ๋ถํฐ ์์ฃผ ์ฟ๊ฐ์ ํ๋ฃจ๋ค.
์ค๋ ๋ด ๋์ ๋๊ตฌ ๊ฑธ๋ฆฌ๊ธฐ๋ง ํด๋ด๋ผ ์ง์ง ๋ถ๋ ธ์กฐ์ ์ฅ์ ๊ฐ ๋ญ์ง ๋ณด์ฌ์ฃผ์ง.',
8,
'ํ๊ฐ ๋ง์ด ๋ฌ๋ค'
),
(
'2024-03-29'
,'์๋ก์ด ์ทจ๋ฏธ๋ก ๊ทธ๋ฆผ ๊ทธ๋ฆฌ๊ธฐ๋ฅผ ์์ํ๋ค. ์ ๊ทธ๋ฆฌ์ง๋ ๋ชปํ์ง๋ง, ์ฐฝ์์ ๊ณผ์ ์์ฒด๊ฐ ์ฆ๊ฑฐ์ ๋ค.
์๋ก์ด ๊ฒ์ ๋ฐฐ์ฐ๋ ์ค๋ ์ด ์์๋ค. ์ด์ ๋ ์ข ์ปจ๋์ ์ด ์์ข์์ง๋ง ๊ทธ๋ฆผ๊ทธ๋ฆฌ๊ธฐ์ ๋ด ์๋ก์ด ์ฌ๋ฅ์ ์ฐพ์๊ฒ ๊ฐ
๊ฐ์์ ๊ธฐ๋ถ์ด ๋ชน์ ๋งค์ฐ ์ข๋ค. ๋ด์ผ๋ ์ ํ๋ธ ๋ณด๋ฉด์ ๊ทธ๋ ค๋ด์ผ์ง.',
8,
'์ ๋น๋ก์ด ๊ธฐ๋ถ์ด ๋ ๋ค'
),
(
'2020-02-02' ,
'์ค๋์ ์ํ๋ ์ด์๋๋ฐ ์ํ์ ๋๋ฌด ๋ชป๋ดค๋ค. ๋ด ๋ชฉํ ์ ์๋ 80์ ์ด์๋๋ฐ
65์ ๋ฐ์ ๋ชป๋ง์์ ๊ธฐ๋ถ์ด ์ฐ์ธํ๋ค. ์์ผ๋ก ๋ ์ด์ฌํํด์ผํ ๊ฒ ๊ฐ๋ค๊ณ ์๊ฐํ๋๋ฐ
์ฉ๊ธฐ๊ฐ ์๋๋ค. ๊ทธ๋๋ ์ด์ฌํ ํด์ผ๊ฒ ๋ค!',
1,
'์ฐ์ธํ๋ค..'
),
(
'2021-02-21' ,
'์ค๋์ ๋ถ๋ชจ๋์ ๊ฒฐํผ๊ธฐ๋ ์ผ์ด์ด์ ์ ๊ฝ๋ค๋ฐ์ ์ฌ๋๋ ธ๋๋ฐ ๋ถ๋ชจ๋๊ป์ ๊ต์ฅํ ์ข์ํ์ จ๋ค.
๋๊ตฐ๊ฐ์๊ฒ ์ ๋ฌผ์ ํ๋ ํ์์ ์์ด์ ์๋๋ฐฉ์ด ๊ธฐ๋ถ ์ข์ํ๋ค๋ฉด ์ ๋ฌผ์ ์ฃผ๋ ์ฌ๋
์ ์ฅ๋ ๊ธฐ๋ถ์ด ์ข์์ง๋ค๋ ๊ฒ์ ์ฒ์ ์์๋ค. ๋๊ตฐ๊ฐ์๊ฒ ์ ๋ฌผ์ ํ๋ค๋ ๊ฒ์ ๋๋ฆ
๊ธฐ๋ถ ์ข์ ์ผ์ด์๊ตฌ๋~',
2,
'๋ฟ๋ฏํ ๊ธฐ๋ถ~'
),
(
'2022-02-22' ,
'์ค๋ ๋์๊ฒ ์์ด์ ๋งค์ฐ ์ค์ํ ๋ ์ด์๋ค. ์ค๋์ ๋์ ๋ํ ์กธ์ ์๋ ์ด์๋ค.
ํ์ง๋ง ์์นจ๋ถํฐ ๋จธ๋ฆฌ ๋๋ผ์ด๋ฅผ ์ ๋๋ก ํ์ง ๋ชปํ๊ณ ํ๊ต์ ๊ฐ๋ ๊ธธ์ ์๋ฅ์ ๋ง์
์ฐ์ง๋ฐฉ์ ๋ค๋ ค ์ป์ด์ผํ๋ค..๊ทธ๋ ๊ธฐ์ ์กธ์ ์๋ ์ต์ ์ด์๋ค. ๋ด ์ธ์์ ๋จ ํ๋ฒ ์๋
๋ ์ธ๋ฐ ์ด๋ ๊ฒ ๋ง๋ฌด๋ฆฌํ๋ ๊ธฐ๋ถ์ด ์ง์ง ๋๋นด๋ค.' ,
3,
'์ฌ์์๋ ๋ '
),
(
'2023-02-23' ,
'3๋ ๋์ ์ฃผ 1ํ์ฉ ๋ณต๊ถ์ ๊ตฌ๋งคํ๋ ๋.. ํญ์ ๋์ฒจ๋ง ๋๋ ๋.. ํ์ง๋ง ๋๋์ด ๋ณต๊ถ
3๋ฑ์ ๋น์ฒจ๋์๋ค!! ๋น๋ก 1๋ฑ ๋น์ฒจ๊ธ์ก์ ๋นํด ์ด๋ผํ ๋น์ฒจ๊ธ์ก์ด์ง๋ง ์ด์ ๋๊ฐ ์ด๋์ธ๊ฐ..
๋๋ ์ค๋ ์๊ณ ๊ธฐ๋ฅผ ๋จน์ ๊ฒ์ด๋ค!!' ,
4,
'์ฑ๊ณตํ ๋๋!'
),
(
'2024-02-24' ,
'์ค๋ ํ๊ต๋ฅผ ํ๋ฉฐ ํ ์ํํธ ์์ ์ง๋๊ฐ๊ณ ์์๋ค. ๊ทธ๋ ๋ค๋ ธ๋ ์๋ฆฌ.."ํฝ!!"
๋ด ์์ ์์ ์ฐ์ ๊ณฝ์ด ํฐ์ก๊ณ ๊ทธ๋ก ์ธํด ๋ด ๋ชธ์ ํฐ ์ฐ์ ์ ๋ฒ๋ฒ ์ด ๋์ด์์๋ค.
๊ทธ ์งํ ๋ค๋ฆฌ๋ ์๋ฆฌ "๊น๊น๊น~" ์ํํธ ์์์ ์ด๋ฑํ์๋ค์ด ๋์๊ฒ ์ฐ์ ๋ฅผ ๋์ง ๊ฒ์ด์๋ค.
๋๋ ์๋ฆฌ๋ฅผ ์ง๋ฅด๋ฉฐ ์์ ํ๋ค. ํ์ง๋ง ๊ทธ ํ์๋ค์ ๋ถ๋ชจ๋ค์ด ์ฐพ์์ ์ ๋ฐํ์ฅ์ผ๋ก
์๋ฆฌ์ง๋ฅด์ง ๋ง๋ผ๋ฉฐ ๋์๊ฒ ๋๋ ค ํ๋ฅผ ๋ด์๋ค. ์ฐจ๋ผ๋ฆฌ ์ ์ถ์ฐ ์๋๊ฐ ์ค๋๊ฐ์ผ๋ฉด ์ข๊ฒ ๋ค๊ณ
์๊ฐํ ํ๋ฃจ์๋ค.' ,
5,
'๊ธฐ๋ถ ์ก์น๋ค ์ง์ง'
)
;
```# ๐ ๊ฐ๋ & ๋ ผ๋ฆฌ Modeling
๐๏ธ ๊ฐ๋ Modeling
![image](https://github.com/PI-Akatsuki/Mood.Holic.BE/assets/149561287/9ec3fc4c-bd5c-48b5-a1b5-1c0ad93c51cb)
๐๏ธ ๋ฌผ๋ฆฌ Modeling
![image](https://github.com/beyond-sw-camp/be04-4th-PI-MoodHolic/assets/101622086/0a510766-4a52-47ef-9803-e5bd51868935)
# ๐ Mood Holic Menu ๊ตฌ์กฐ๋
![image](https://github.com/beyond-sw-camp/be04-4th-PI-MoodHolic/assets/149561287/be7b1c1d-8c00-48de-b97a-8efded48fa66)# ๐ Wire Frame
### Mood Holic's Wire Frame![wireframe](https://github.com/Bodrami/Practice_Template/assets/149561287/663043e3-76de-451b-9e0a-443f577d39c4)
# ๐ API ๋ช ์ธ์
![image](https://github.com/Bodrami/Practice_Template/assets/149561287/55505a91-a533-427d-bd90-8ec3700420ed)
![image](https://github.com/Bodrami/Practice_Template/assets/149561287/de8d83ff-5a5f-4db5-8286-9c26fa03362e)
![image](https://github.com/Bodrami/Practice_Template/assets/149561287/4237f314-89e5-4201-bf3d-01f13fb19147)
![image](https://github.com/Bodrami/Practice_Template/assets/149561287/69fef2a4-61bb-4a05-a689-42a162c85b11)
![image](https://github.com/Bodrami/Practice_Template/assets/149561287/e5775913-aea7-4c08-b470-af949459292b)
![image](https://github.com/Bodrami/Practice_Template/assets/149561287/ba14361e-9af2-4852-84d7-47815867f00e)
![image](https://github.com/Bodrami/Practice_Template/assets/149561287/414158fa-67f8-48a6-bad2-54a5589f6182)
![image](https://github.com/Bodrami/Practice_Template/assets/149561287/1eea62c5-0e4a-4163-8105-cefc9040179a)
![image](https://github.com/Bodrami/Practice_Template/assets/149561287/165bb337-6681-4594-8738-4842d89bf8ac)# ๐ Mood Holic ๋ฐฐํฌ๋ฌธ์
MoodHolic's Build ๋ฐ ๋ฐฐํฌ ๋ฌธ์
![002](https://github.com/Bodrami/Practice_Template/assets/149561287/f5aba2be-a183-484a-b3cd-f57437269f74)
![003](https://github.com/Bodrami/Practice_Template/assets/149561287/24cb0dd5-2e02-46bb-b660-10bb60a5e9e5)
![004](https://github.com/Bodrami/Practice_Template/assets/149561287/e8259811-97b3-4b5f-9046-28634dc7a212)
![005](https://github.com/Bodrami/Practice_Template/assets/149561287/849c7ce9-5cea-409c-913e-ba4e24a6c341)
![006](https://github.com/Bodrami/Practice_Template/assets/149561287/e595a949-abe4-46f4-9b26-5a49a48fd956)
![007](https://github.com/Bodrami/Practice_Template/assets/149561287/54443273-cfdd-45b1-8c73-6152f573c394)
![008](https://github.com/Bodrami/Practice_Template/assets/149561287/db3fdba2-2993-41e2-8425-bd193bcff73f)
![009](https://github.com/Bodrami/Practice_Template/assets/149561287/867f6210-a8be-4c8c-9fc3-70b0c8ab36d1)
![010](https://github.com/Bodrami/Practice_Template/assets/149561287/b2dbf151-c30b-4a04-8f07-ef81401b5f7e)
![011](https://github.com/Bodrami/Practice_Template/assets/149561287/a7894a31-656a-475b-8d66-8a0337634b78)
![012](https://github.com/Bodrami/Practice_Template/assets/149561287/63a22fd3-2bc3-495d-9437-5c98ba4ed2ab)
![013](https://github.com/Bodrami/Practice_Template/assets/149561287/ab1f5b0a-9e26-4ebc-b63e-1842b7106a3c)
![014](https://github.com/Bodrami/Practice_Template/assets/149561287/111cf134-9c9b-4b7a-8fbf-42ce20a43a0d)
![015](https://github.com/Bodrami/Practice_Template/assets/149561287/2cd8d404-d8e1-4fb9-8dd3-06f689706f15)
![016](https://github.com/Bodrami/Practice_Template/assets/149561287/087d4224-4899-41aa-bb2f-6765482f7f1f)
![017](https://github.com/Bodrami/Practice_Template/assets/149561287/e79c46f0-d9f0-4299-9c66-571ae115b27e)
![018](https://github.com/Bodrami/Practice_Template/assets/149561287/0105f573-7f4c-453f-a33d-856e7a3cb607)
![019](https://github.com/Bodrami/Practice_Template/assets/149561287/d78ed86f-674b-4528-becd-e25a8534d153)
![020](https://github.com/Bodrami/Practice_Template/assets/149561287/04ea2ac9-a63d-47ee-9e18-c48196e4ab38)
# ๐ CI/CD ๊ธฐ๋ฅ ๋ช ์ธ์
![image](https://github.com/beyond-sw-camp/be04-4th-PI-MoodHolic/assets/101622086/027b8e68-81f2-4f75-aa1b-255891a4cfbd)# ๐ ์ถํ ๊ณ ๋ํ ๊ธฐ๋ฅ
* ํ๋ก ํธ ์ฌ์ ๋ฆฌ: ์น์ฌ์ดํธ์ ํ๋ก ํธ์๋๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ์ฌ์ ๋นํ์ฌ ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํค๊ณ ๋์์ธ์ ํ๋์ ์ผ๋ก ์ ๋ฐ์ดํธ
* ์น๊ณผ ๋ค์ดํฐ๋ธ ์ฑ ๋ถ๋ฆฌ: ํ์ฌ ์น์ฌ์ดํธ๋ฅผ ๋ค์ดํฐ๋ธ ์ฑ๊ณผ ๋ณ๋๋ก ๊ฐ๋ฐํ์ฌ ๊ฐ ํ๋ซํผ์ ์ต์ ํ๋ ์ฑ๋ฅ๊ณผ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณต
* ์์ด์ฝ ๋๊ฐ: ์ฌ์ฉ์ ๋ค์ด์ด๋ฆฌ ์์ฑ ์ ๋๋ค์ผ๋ก ์์ด์ฝ(or ์บ๋ฆญํฐ)์ด ํ๋ฅ ์ ์ผ๋ก ์์ฑ
* ๋ฑ์ง ๋ฑ๋ก: ์ฌ์ฉ์๊ฐ ๋ชจ์ ์์ด์ฝ ๋๊ฐ ์ค์์ ์ฌ์ฉ์ ํ๋กํ์ ์๋ ๋ฑ์ง๋ฅผ ๋ฑ๋กํ ์ ์์
* TODO ๋ฆฌ์คํธ: ์ฌ์ฉ์๊ฐ ์์ ํญ๋ชฉ๋ค์ ๊ด๋ฆฌํ ์ ์๋ TODO ๋ฆฌ์คํธ๋ฅผ ๊ตฌํ
* ๋ง์ดํ์ด์ง/๋ด์ ๋ณด ์์ : ์ฌ์ฉ์๊ฐ ์์ ์ ๊ฐ์ธ ์ ๋ณด๋ฅผ ์ฝ๊ฒ ์ ๋ฐ์ดํธํ๊ณ ๊ด๋ฆฌํ ์ ์๋ ๊ธฐ๋ฅ์ ๊ฐ์ ํ๊ณ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ํ
* ๋ค์ด์ด๋ฆฌ ํ ํ๋ฆฟ ์ฒดํ ๋ฐ ๋ฏธ๋ฆฌ๋ณด๊ธฐ: ์ฌ์ฉ์ ํ์๊ฐ์ ์ ์น/์ฑ์ ๋ํ ์ดํด๋ฅผ ๋๊ธฐ ์ํด ์ฌ์ฉ๋ ๋ค์ด์ด๋ฆฌ ์์๋ ์ฒดํํ๊ธฐ ๊ธฐ๋ฅ# ๐ Acatsuki's ํ๊ณ
| **์ด๋ฆ** | **ํ๊ณ ** |
|:--------:|:------:|
| **๊น์ฌํ** | ์ด๋ฒ ํ๋ก์ ํธ๋ ๊ทธ๋์ ๋ฐฐ์ ๋ ๊ฒ์ ๋ชจ๋ ์ด์ฉํ๋ ๋ฐฑ์๋๋ JPA๋ก ๊ฐ๋ฐํ๊ณ , ํ๋ก ํธ์ค๋๋ vue๋ก ๊ฐ๋ฐํ์ฌ ์ฐ๋ํ๊ณ , CI/CD๋ฅผ ์๋์ผ๋ก ํด์ฃผ๋ ์ ํจ์ค์ ์ฟ ๋ฒ๋คํฐ์ค๋ฑ์ ์ ์ฉ์์ผ๋ณด๋ ํ๋ก์ ํธ์์ต๋๋ค. ์ฃผ์ ๋ฅผ ์ ์ ํ๊ณ DB๋ชจ๋ธ๋ง ๋ฑ ๊ทธ๋์ ๋ฐฐ์ ๋ ๊ณผ์ ์ ๋ค์ ํด๋ณด๋ฉฐ ๋ณต์ตํ ์ ์์๋ ์ข์ ๊ธฐํ์์ต๋๋ค. ์ด์ด ์ข๊ฒ๋ ์ด๋ฒ ํ๋ก์ ํธ์์ ์ ๊ฐ CI/CD๋ถ๋ถ์ ๋งก๊ฒ๋์๋๋ฐ, ํ๋ฒ๋ ํด๋ณด์ง ์์ ๊ฑฑ์ ์ด ๋ง์ด ๋๊ธฐ๋ ํ์ง๋ง ํํธ์ผ๋ก๋ ์ค๋ ๋ ๋ง์๋ ์์ง์์ ์์์ต๋๋ค. ์์ํ๋๋๋ก ํผ์ ํด๋ณด๋ ๊ณ์ ์ค๋ฅ๊ฐ ๋๊ณ , ์ ์ฉ์ด ์๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์์ผ๋, ๊ณผ์ ์ ๋ค์ ๋ณต์ตํ๊ณ ์ด๋ค์์ผ๋ก ์ ์๋ํ๋์ง๋ฅผ ํ์ ํ์ ๋ฌธ์ ๊ฐ ํ๋์ฉ ํด๊ฒฐ๋๊ธฐ ์์ํ์ต๋๋ค. ์ด ๊ฒฝํ์ ํตํด ๋ฌด์์ด๋ ๊ทธ๋ฅ ์ฝ๋๋ฅผ ๋ฐ๋ผ์น๊ธฐ๋ณด๋จ ์ฌ๊ธฐ์ ์ด๊ฑธ ์ ์ ์ฉํด์ผํ๋์ง๋ฑ ์ฐ๋ ์ด์ ๋ฅผ ์๋ ๊ฒ์ด ํจ์ฌ ์ค์ํ๋จ ์ฌ์ค์ ์๊ฒ ๋์์ต๋๋ค. ๋ค์์ ํ ํ๋ก์ ํธ์๋ ์ ํจ์ค ์ ์ฟ ๋ฒ๋คํฐ์ค ๋์ aws๋ฅผ ์ฌ์ฉํด์ ํด๋ณด๊ณ ์ถ์ด์ก๊ณ , ๋จ์ํ dockerhub์๋ง image๋ฅผ ์ฌ๋ฆฌ๊ณ ์๋์ผ๋ก restartํด์ฃผ๋๊ฒ์ด ์๋๋ผ, ๊ฐ์ฌ๋์ด ๋ง์ํ์ argo๋ฑ์ ์จ์ dockerhub์ ํธ์๋๊ฒ์ ๊ฐ์งํด ์๋์ผ๋ก ๋ฐฐํฌ ํ ์ ์๋ ํ๊ฒฝ์ ๊ตฌ์ถํด๋ณด๊ณ ์ถ์ด์ก์ต๋๋ค. |
| **๋ฐ๊ฒฝ๋** | ์ด๋ฒ ํ๋ก์ ํธ์์ ์ ๋ ์ฌ๋ฌ ๊ฐ์ง ์๋ก์ด ๊ธฐ์ ๋ค์ ์ ํ๊ณ ํ์ตํ๋ ๊ธฐํ๋ฅผ ๊ฐ์ก์ต๋๋ค. ํนํ Oauth 2.0, OpenAI API, Redis-server, React Native ๋ฑ์ ๊ธฐ์ ์ด ํ๋ก์ ํธ์ ํต์ฌ ์์์์ต๋๋ค. ์ด๋ฌํ ๊ธฐ์ ๋ค์ ์ค์ ๋ก ์ ์ฉํด๋ณด๋ฉด์ ๋ง์ ๊ฒ์ ๋ฐฐ์ฐ๊ณ ์ฑ์ฅํ ์ ์์์ต๋๋ค. ์ ์ ์ฒ ํ์ "ํ ์ ์๋ค๊ณ ์๊ฐํ๋ฉด ํ ๊ฒ์ด๊ณ , ๋ชปํ๋ค๊ณ ์๊ฐํ๋ฉด ๋ชป ํ ๊ฒ"์ด๋ผ๋ ๊ฒ์ ๋๋ค. ์ด๋ฌํ ๋ง์ธ๋์ ์ ๊ฐ์ง๊ณ ์ด๋ ค์ด ์ํฉ์์๋ ํด๊ฒฐ์ฑ ์ ์ฐพ์๋ด๋ ๋ฐ ์ค์ ์ ๋์์ต๋๋ค. ํ๋ก์ ํธ๋ฅผ ํตํด ๊ธฐ์ ์ ์ธ ์ง์๋ฟ๋ง ์๋๋ผ, ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ๋ ํฌ๊ฒ ํฅ์๋์์ต๋๋ค. ์๋ก์ด ๊ธฐ์ ์ ๋ฐฐ์ฐ๋ ๊ณผ์ ์์ ๋ฐ์ํ๋ ๋ค์ํ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๋ฉด์, "์๋๋ค๊ณ ์๊ฐํ๋ฉด ๋ชปํ ๊ฒ"์ด๋ผ๋ ๋ง์ธ๋์ ์ ๋ฒ๋ฆฌ๊ณ "์ ๋๋ฉด ๋๊ฒ ํด์ผ ํ๋ค"๋ ์ ๊ทน์ ์ธ ์์ธ๋ฅผ ๋ฐฐ์ธ ์ ์์์ต๋๋ค. ์ด๋ฒ ํ๋ก์ ํธ๋ ์ ์๊ฒ ๋ง์ ๊ธฐ์ ์ ๋์ ๊ณผ ํจ๊ป ์ฌ๋ฆฌ์ ์ฑ์ฅ์ ๊ธฐํ๋ฅผ ์ ๊ณตํ์ต๋๋ค. ์ ๋ ๊ธฐ์ ์ ํ๊ณ๋ฅผ ๋์ด์๋ ๊ฒ๋ฟ๋ง ์๋๋ผ, ๊ทธ ๊ณผ์ ์์ ๋ฐ์ํ๋ ๋ฌธ์ ๋ค์ ๋ํด ์ ๊ทน์ ์ผ๋ก ๋์ฒํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ ์ต๋๋ค. ์์ผ๋ก๋ ์ด๋ฌํ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ๋์์์ด ๋ฐฐ์ฐ๊ณ ์ฑ์ฅํ๋ ๊ฐ๋ฐ์๊ฐ ๋๊ธฐ ์ํด ๋ ธ๋ ฅํ ๊ฒ์ ๋๋ค. |
| **์ ๋ํธ** | ์ด๋ฒ ํ๋ก์ ํธ์์๋ Vue3,HTML,CSS์ ๋ผ์ฐํ ๊ธฐ์ ์ ํ์ฉํ๋ฉฐ ํ๋ก ํธ์๋ ์ธก๋ฉด์์ ๋ง์ด ๋์ ํ๊ณ ํ๋ฐ์๊ตญ ์ ์งํ ๋๋์ด ๋ค์์ต๋๋ค. ๋ค๋ง ๋ฐ์ํ css์์ ๋ง์ด ๋ต๋ตํ๊ณ , ์ ์ญcss๋ฅผ importํ๋ ๊ณผ์ ์์ ์ ์ญ๋ณ์ ์ถฉ๋์ด ์ผ์ด๋ ์ ๋ฅผ ๋ง์ด ๋จน์ด ๋ต๋ตํ์ต๋๋ค. ํด๋์ค๋ช ์ด ์ค๋ณต๋๋ฉด ์ด๋ ๊ฒ ์ถฉ๋์ด ๋ ์ ์๋ค๋ ๊ฒ์ ๊นจ๋ซ๊ณ ์ด๋ฅผ ํตํด ์์ผ๋ก ๋ด๊ฐ ๊ฐ์ผํ ๊ธธ์ ์๋ ๋๋งน์ด๋ฅผ ํ๋ ์น์ด ๊ฒ ๊ฐ์ ๋ฟ๋ฏํจ์ด ๋ค์์๊ณ , ํ๋ก์ ํธ ์ด๋ฐ์๋ mariadb๋ฅผ ํ์ฉํด DDL ๊ตฌ๋ฌธ๊ณผ DML์ ์์ฑํด ์ดํ์ ํ๋ก ํธ ์์ ์ ํ ๋๋ ๋ถํ์ํ๊ฒ ์ค๋ณต๋๋ img๋ icon์ ์์ ์ญ์ ํ์ฌ ํต์ผ์ํค๋ ๊ณผ์ ์ ํตํด ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ๋ ํ์ผ์ ๋ํด์ ํต์ผ์ฑ์ด ์๋ค๋ฉด ๋ ์ข์ ๊ฐ๋ฐ ํ๊ฒฝ์ด ๋๋ค๋ ๊ฒฝํ์ ํ๋ณด์์ต๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ์์ฌ์ด ๊ฑด ์ด๋ฒ ํ๋ก์ ํธ์์๋ ๋ฐฑ์๋ ๊ฐ๋ฐ์ ๊ฑฐ์ ํ์ง ๋ชปํด์ ๋ค์ ํ๋ก์ ํธ์์๋ ๋ง์ด ๊ณต๋ถํ๋ฉฐ ๋ฐฑ์๋์ ํ๋ก ํธ์๋๋ฅผ ๋ ๋ค ๋งก๊ณ ์ถ์ ๋ง์์ด ์๊ฒผ์ต๋๋ค. |
| **์ด๋๋ณด๋ผ** | ํ๋ก์ ํธ๋ฅผ ํตํด ๊ทธ ๋์ ๋ฐฐ์ ๋ Front-end์ ์ฌ๋ฌ๊ฐ์ง ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด์ ํผ๊ทธ๋ง๋ก ๋์์ธํ๋ ํ๋ฉด๋ค์ด ๋์ ์ผ๋ก ์์ง์ด๋๊ฑธ ์ง๊ด์ ์ผ๋ก ๋ณด์ฌ์ง๋ ํฅ๋ฏธ๋ก์ ๊ณ , ๋ฐฑ๊ณผ ์ฐ๋์ ํตํด DB์ ๋ณด๋ฅผ ๊ฐ์ ธ์ ์์๋ณด๋ฉด์ Back-end์ Devops ์ ๋ํ ์ ๋ฐ์ ์ธ ๋ด์ฉ์ ๋ณต์ตํ๊ณ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ฉด์ ์ค์ ๋ก ์ด์๋๋ ์นํ์ด์ง์ฒ๋ผ ๊ณ ๋ํ์์ผ๋ณด๊ณ ์ถ๋ค๋ ๋ง์์ด ์ปค์ก์ต๋๋ค. ํ์๋ค๊ณผ ํํธ๋ฅผ ๋ถ๋ฐฐํ๊ณ 2์ฃผ๋์ ๊ตฌํํด๋ด๋๋ฐ ์ด๋ ค์์ด ์์์ต๋๋ค. ์ฃผ๋ก ๋งก์ ํ๋ก ํธ์์๋ ํ์ผ๊ตฌ์กฐ๊ฐ ๋ฐ๋๊ฑฐ๋ ํ์ผ๋ช ์ด ์์ ๋์ด ์๋ฒ๊ฐ ๋์๊ฐ์ง ์๊ฑฐ๋ ๋ฐฑ ์ฐ๋์ด ์ฝ์ง ์์์ง๋ง ํฌ๊ธฐํ์ง ์๊ณ ํ์๋ค๊ณผ ์๋ฌ ๋ฌธ์ ์ ์ ์ฐพ์๋ณด๊ณ ๋๊น์ง ํจ๊ป ๊ตฌํํ ์ ์์ด ๋ฟ๋ฏํ๊ธฐ๋ ํ๊ณ ๊นจ๋ฌ์ ์ ๋ ์์์ต๋๋ค. ํ๋ก ํธ๋ฅผ ๋งก์๋ค๊ณ ๋ฐฑ๋ ๋์น์ง ๋ง์์ผ๊ฒ ๋ค๊ณ ์๊ฐ์ด ๋ค์๊ณ , ํ๋ก์ ํธ์ ์ ์ฒด์ ์ธ ํ๋ฆ์ ์ดํดํ ์ ์๋๋ก ๋ถ์กฑํ ๋ถ๋ถ์ ์ฐพ์ ๋ฐ๋ก ์ฝ๋๋ก ์ฐ์ตํ๋ ์ต๊ด์ ๋ค์ฌ์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์์ต๋๋ค. ๋ํ ํ๋ก์ ํธ๋ฅผ ํ๋์ฉ ๊ฑฐ๋ญํ ์๋ก ์ ์ ๋ํ ๊ฐ๊ดํ๊ฐ ์ ์ ๊ณ ๋ํ๋๋ ๋๋์ ๋ฐ์ผ๋ฉด์ ๋ด๋ฉด์ ์ผ๋ก๋ ์ฑ์ฅํด๊ฐ๊ณ ์๋ค๋ ๋๋์ ๋ฐ์์ผ๋ฉฐ, ๊ฐ๋ฐ์ ์์ด์ ๋๋ ์ด๋ค ๊ฒ์ด ๋ถ์กฑํ๊ณ ์ด๋ค ๋ถ๋ถ์ ์ํ๊ณ ์๋์ง ์๊ฐ์ ๋ฆฌ๋ฅผ ํ ์ ์์์ต๋๋ค. ๋ ๋์๊ฐ ๋ค์ ํ๋ก์ ํธ๋ฅผ ๋ค์ด๊ฐ๊ธฐ ์ , ์ด๋ก ์ ์ผ๋ก ๋ณต์ต์ด ํ์ํ ๋ถ๋ถ์ด๋ ์ง๊ธ๊น์ง ๊ตฌํํ๋ ํ๋ก์ ํธ์ ๊ธฐ๋ฅ์ ์ดํดํ๊ณ ์ด๋ป๊ฒ ์ ์ฉ์ด ๋๋์ง์ ๋ํ ์ดํด๊ฐ ํ์ํ๋ค๊ณ ์๊ฐํ๊ณ , ๋น๋ก ๋จ๋ค๊ณผ ์์ํ ์ถ๋ฐ์ ์ ๋ค๋ฅด์ง๋ง ๊ฒฐ๊ณผ์ ์ผ๋ก ๋น๊ตํ์ง ์๊ณ ๊ทธ ๋ถ์กฑํ ์๊ฐ์ ์ฑ์ฐ๋ ๊ฒ์ ์ง์คํ๊ณ ์ ์์ ์ ๋ฏฟ๊ณ ์ข์ ๋ณด๋จ ์ด๊ฒจ๋ด๋ ํ์ ๊ธฐ๋ฅด๊ณ ์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ํตํด ๊ฒฝํํ ์ ์์ด ํ์ธต ๋ ์ฑ์ฅํ ์ ์์๋ ๊ธฐํ์๋ ๊ฒ ๊ฐ์์ต๋๋ค. |
| **์ดํ์ฐ** | ํ๋ก์ ํธ๋ฅผ ํ๋ฉด์ ๋ฐฑ์๋์ ํ๋ก ํธ์๋ ์์ชฝ์์ ๋งก์ ๋ถ๋ถ์ด ์์ด์ ์ ๋ง ๋ง์ ๊ฒ์ ๋ฐฐ์ฐ๊ณ ๊ฒฝํํ์ต๋๋ค. ๋ฐฑ์๋์์๋ ๋ฐ์ดํฐ ํ์ฑ, ๋ค์ด์ด๋ฆฌ, ํต๊ณ, ์ด๋ฏธ์ง, ์ถ์ฒ ์์คํ ์ ๋ค๋ฃจ์๋๋ฐ, ์ด ๊ณผ์ ์์ ์์์น ๋ชปํ ์ด๋ ค์๊ณผ ์๋ฌ๋ค์ ๋ง์ฃผํ์ต๋๋ค. ํนํ ๋ฐ์ดํฐ ํ์ฑ๊ณผ ํต๊ณ ์ฒ๋ฆฌ ๋ถ๋ถ์์๋ ์ฌ๋ฌ ๊ฐ์ง ๋ฌธ์ ์ ์ง๋ฉดํ์ฌ ๋ง์ ๊ณ ๋ฏผ์ ํ๊ฒ ๋์์ต๋๋ค. ๋ฐ์ดํฐ ํ์ฑ์ ์ฌ์ฉ์๋ก๋ถํฐ ์ ๋ ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ChatGPT์ ์ ์กํ์ฌ ์๋ต๋ฐ์ ๋ด์ฉ์ ํ์ฑํ๋ ๊ฒ์ผ๋ก ์ด ๊ณผ์ ์์ ์๊ธฐ์น ๋ชปํ ๋ฐ์ดํฐ ํ์์ด๋ ๋๋ฝ๋ ๋ฐ์ดํฐ ๋ฑ์ผ๋ก ์ธํ ์๋ฌ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฐ์ดํฐ ์ ํจ์ฑ ๊ฒ์ฌ์ ์์ธ ์ฒ๋ฆฌ๋ฅผ ๋ ์ธ๋ฐํ๊ฒ ์ฒ๋ฆฌํ์์ต๋๋ค. ํต๊ณ ์ฒ๋ฆฌ ๋ถ๋ถ์์๋ ๋ค์ํ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ๊ณ ์๊ฐํํ๋ ๊ณผ์ ์์ ๋ง์ ์ด๋ ค์์ ๊ฒช์์ต๋๋ค. ์ด๋ค ํต๊ณ ์งํ๋ฅผ ์ ํํ ์ง, ์ด๋ป๊ฒ ์๊ฐํ๋ฅผ ํ ์ง ๋ฑ์ ๋ํ ๊ณ ๋ฏผ์ด ๋ง์์ต๋๋ค. ๊ธฐ์กด์ ๋ค๋ค๋ณด์ง ์์ ๊ฒ๋ค์ ํ์ฉํ๋ฉด์ ์ ์๊ฒ ๋ง์ ๊ฒฝํ์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค. |