Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

๐ŸŒ… ๊น€์žฌํ˜„ ๐ŸŒ… ๋ฐ•๊ฒฝ๋• ๐ŸŒ… ์‹ ๋™ํ˜ธ ๐ŸŒ… ์ด๋“œ๋ณด๋ผ ๐ŸŒ… ์ดํ˜„์šฐ

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์— ์ „์†กํ•˜์—ฌ ์‘๋‹ต๋ฐ›์€ ๋‚ด์šฉ์„ ํŒŒ์‹ฑํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ด ๊ณผ์ •์—์„œ ์˜ˆ๊ธฐ์น˜ ๋ชปํ•œ ๋ฐ์ดํ„ฐ ํ˜•์‹์ด๋‚˜ ๋ˆ„๋ฝ๋œ ๋ฐ์ดํ„ฐ ๋“ฑ์œผ๋กœ ์ธํ•œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์™€ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ๋” ์„ธ๋ฐ€ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํ†ต๊ณ„ ์ฒ˜๋ฆฌ ๋ถ€๋ถ„์—์„œ๋Š” ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•˜๊ณ  ์‹œ๊ฐํ™”ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋งŽ์€ ์–ด๋ ค์›€์„ ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ํ†ต๊ณ„ ์ง€ํ‘œ๋ฅผ ์„ ํƒํ• ์ง€, ์–ด๋–ป๊ฒŒ ์‹œ๊ฐํ™”๋ฅผ ํ•  ์ง€ ๋“ฑ์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์ด ๋งŽ์•˜์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด์— ๋‹ค๋ค„๋ณด์ง€ ์•Š์€ ๊ฒƒ๋“ค์„ ํ™œ์šฉํ•˜๋ฉด์„œ ์ €์—๊ฒŒ ๋งŽ์€ ๊ฒฝํ—˜์ด ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. |