Skip to content

๐ŸŽค ์•„์ด๋Œ ์Šค์ผ€์ค„ ์กฐํšŒ๋ถ€ํ„ฐ ๐ŸŽซ ์ฝ˜์„œํŠธ ์˜ˆ๋งค, ๐Ÿš• ํƒ์‹œํŒŸ ๋งค์นญ๊นŒ์ง€ ํ•œ ๋ฒˆ์— ์ œ๊ณตํ•˜๋Š” ํŒฌ ํ”Œ๋žซํผ

Notifications You must be signed in to change notification settings

prgrms-web-devcourse-final-project/WEB7_9_WY-_BE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

601 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“… Kalendar

K-POP ํŒฌ์„ ์œ„ํ•œ ํ†ตํ•ฉ ์ผ์ • ๊ด€๋ฆฌ ๋ฐ ํŒฌ ํ™œ๋™ ํ”Œ๋žซํผ

๐Ÿ“‘ ๋ชฉ์ฐจ


๐ŸŽฏ ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

Kalendar๋Š” K-POP ํŒฌ๋“ค์ด ์•„ํ‹ฐ์ŠคํŠธ ์ผ์ • ํ™•์ธ๋ถ€ํ„ฐ ๊ณต์—ฐ ์˜ˆ๋งค, ํ˜„์žฅ ์ด๋™๊นŒ์ง€ ํ•œ ๊ณณ์—์„œ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ํ†ตํ•ฉ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.

๐Ÿ˜ฅ ์ด๋Ÿฐ ๋ถˆํŽธํ•จ์„ ๊ฒช๊ณ  ๊ณ„์‹ ๊ฐ€์š”?

  • ์ข‹์•„ํ•˜๋Š” ์•„ํ‹ฐ์ŠคํŠธ ์ผ์ •์„ ํ™•์ธํ•˜๋ ค๋ฉด ์—ฌ๋Ÿฌ SNS, ํŒฌ์นดํŽ˜, ๊ณต์‹ ์‚ฌ์ดํŠธ๋ฅผ ์ผ์ผ์ด ๋ฐฉ๋ฌธํ•ด์•ผ ํ•จ
  • ๊ณต์—ฐ ์˜ˆ๋งค ์‚ฌ์ดํŠธ์™€ ์ผ์ • ์ •๋ณด๊ฐ€ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ์–ด ๋ถˆํŽธํ•จ
  • ๊ณต์—ฐ์žฅ๊นŒ์ง€ ๊ฐ€๋Š” ๊ตํ†ตํŽธ์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ์นดํ†ก ์˜คํ”ˆ์ฑ„ํŒ…๋ฐฉ์„ ๋’ค์ ธ์•ผ ํ•จ
  • ํŒฌ๋“ค๋ผ๋ฆฌ ์ž๋ฐœ์ ์œผ๋กœ ๋งŒ๋“  ํƒ์‹œํŒŸ์— ์ฐธ์—ฌํ•˜๊ณ  ์‹ถ์ง€๋งŒ ์‹ ๋ขฐ๋„๊ฐ€ ๊ฑฑ์ •๋จ

โœจ Kalendar๊ฐ€ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค

  • Kalendar๋Š” ์ผ์ • ํ™•์ธ โ†’ ์˜ˆ๋งค โ†’ ์ด๋™๊นŒ์ง€ ํŒฌ ํ™œ๋™์˜ ์ „ ๊ณผ์ •์„ ํ•˜๋‚˜์˜ ํ”Œ๋žซํผ์—์„œ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๐Ÿš€ ์ฃผ์š” ๊ธฐ๋Šฅ

1. ๐Ÿ“… ํ†ตํ•ฉ ์ผ์ • ๊ด€๋ฆฌ

  • ํŒ”๋กœ์šฐํ•œ ์•„ํ‹ฐ์ŠคํŠธ๋“ค์˜ ๋ชจ๋“  ์ผ์ •์„ ํ•˜๋‚˜์˜ ์บ˜๋ฆฐ๋”์—์„œ ํ™•์ธ
  • ์ฝ˜์„œํŠธ, ํŒฌ๋ฏธํŒ…, ๋ฐฉ์†ก, ์ปด๋ฐฑ ๋“ฑ ์ผ์ • ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ๋ถ„๋ฅ˜
  • ์ค‘์š”ํ•œ ์ผ์ •์— ๋Œ€ํ•œ ์‹ค์‹œ๊ฐ„ ์•Œ๋ฆผ (SSE ๊ธฐ๋ฐ˜)

2. ๐ŸŽซ ๊ณต์—ฐ ์˜ˆ๋งค ์‹œ์Šคํ…œ

  • ํ”Œ๋žซํผ ๋‚ด์—์„œ ์ง์ ‘ ์˜ˆ๋งค ์ง„ํ–‰
  • ๋Œ€๊ธฐ์—ด ์‹œ์Šคํ…œ์œผ๋กœ ๊ณต์ •ํ•œ ์˜ˆ๋งค ๊ธฐํšŒ ์ œ๊ณต
  • Redis ๋ถ„์‚ฐ๋ฝ ๊ธฐ๋ฐ˜์˜ ์•ˆ์ •์ ์ธ ์ขŒ์„ ์„ ์  ์ฒ˜๋ฆฌ
  • ์‹ค์‹œ๊ฐ„ ์ขŒ์„ ์ƒํƒœ ํ™•์ธ

3. ๐Ÿš— ์ด๋™ํŒŸ ๋งค์นญ

  • ๊ณต์—ฐ์žฅ ์™•๋ณต์„ ์œ„ํ•œ ํ•ฉ์Šน ํŒŒํ‹ฐ ์ƒ์„ฑ ๋ฐ ์ฐธ์—ฌ
  • ์ถœ๋ฐœ์ง€, ๋„์ฐฉ์ง€, ์‹œ๊ฐ„, ์„ฑ๋ณ„, ์ธ์› ๋“ฑ ์ƒ์„ธ ์กฐ๊ฑด ์„ค์ •
  • ํŒŒํ‹ฐ์žฅ์˜ ์‹ ์ฒญ์ž ์Šน์ธ/๊ฑฐ์ ˆ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ

4. ๐Ÿ’ฌ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…

  • WebSocket ๊ธฐ๋ฐ˜ ํŒŒํ‹ฐ๋ณ„ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…
  • ํŒŒํ‹ฐ ์ฐธ์—ฌ ์‹œ ์ž๋™ ์ฑ„ํŒ…๋ฐฉ ์ž…์žฅ
  • ํŒŒํ‹ฐ์žฅ์˜ ๋ฉค๋ฒ„ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ (๊ฐ•ํ‡ด ๋“ฑ)

๐Ÿ›  ๊ธฐ์ˆ  ์Šคํƒ

Frontend

React Next.js TypeScript MUI Zustand React Query

Backend

Spring Boot Spring Security Java 21 JPA QueryDSL JWT WebSocket SSE

Database & Cache

PostgreSQL Redis Redisson

Payment

Toss Payments

Infrastructure

Docker AWS AWS S3 Terraform

DevOps & Tools

GitHub Actions Gradle Swagger JUnit JMeter


๐Ÿš€ ์‹œ์ž‘ํ•˜๊ธฐ

ํ•„์ˆ˜ ์š”๊ตฌ์‚ฌํ•ญ

  • Node.js 18.0 ์ด์ƒ
  • Java 21 ์ด์ƒ
  • PostgreSQL 14.0 ์ด์ƒ
  • Redis 7.0 ์ด์ƒ
  • Docker & Docker Compose

์„ค์น˜ ๋ฐ ์‹คํ–‰

1. ์ €์žฅ์†Œ ํด๋ก 

git clone https://github.com/prgrms-web-devcourse-final-project/WEB7_9_WY-_BE.git
cd WEB7_9_WY-_BE

2. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •

# Backend ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •
cp backend/.env.example backend/.env
# ํ•„์š”ํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๊ฐ’์„ .env ํŒŒ์ผ์— ์ž…๋ ฅํ•˜์„ธ์š”

# Frontend ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •
cp frontend/.env.example frontend/.env
# ํ•„์š”ํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๊ฐ’์„ .env ํŒŒ์ผ์— ์ž…๋ ฅํ•˜์„ธ์š”

3. Docker Compose๋กœ ์‹คํ–‰

docker-compose up -d

4. ๊ฐœ๋ณ„ ์‹คํ–‰ (๊ฐœ๋ฐœ ๋ชจ๋“œ)

Backend

cd backend
./gradlew bootRun

Frontend

cd frontend
pnpm install
pnpm run dev

๐Ÿ“š API ๋ฌธ์„œ

Swagger UI๋ฅผ ํ†ตํ•ด API ๋ฌธ์„œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ฐœ๋ฐœ ํ™˜๊ฒฝ: http://localhost:8080/swagger-ui/index.html
  • ํ”„๋กœ๋•์…˜: https://idol-kalendar.shop/swagger-ui/index.html

๐Ÿ“… ๊ฐœ๋ฐœ ์ผ์ •

1์ฐจ ์Šคํ”„๋ฆฐํŠธ (1์ฃผ) - MVP ๊ฐœ๋ฐœ

  • โœ… ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐ ์„ธํŒ…
  • โœ… ์ธ์ฆ/์ธ๊ฐ€ ์‹œ์Šคํ…œ
  • โœ… ์•„ํ‹ฐ์ŠคํŠธ ๊ด€๋ฆฌ ๋ฐ ํŒ”๋กœ์šฐ ๊ธฐ๋Šฅ
  • โœ… ์บ˜๋ฆฐ๋” ๊ธฐ๋ณธ ๊ธฐ๋Šฅ
  • โœ… ํŒŒํ‹ฐ ๋งค์นญ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ
  • โœ… ๋งˆ์ดํŽ˜์ด์ง€ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ

2์ฐจ ์Šคํ”„๋ฆฐํŠธ (2์ฃผ) - ํ•ต์‹ฌ ๊ธฐ๋Šฅ ๊ณ ๋„ํ™”

  • ๐Ÿ”„ ์˜ˆ๋งค ์‹œ์Šคํ…œ ๊ตฌ์ถ• (๋Œ€๊ธฐ์—ด, ์ขŒ์„ ์„ ์ )
  • ๐Ÿ”„ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ๊ธฐ๋Šฅ
  • ๐Ÿ”„ ์•Œ๋ฆผ ์‹œ์Šคํ…œ (SSE)
  • ๐Ÿ”„ AWS ๋ฐฐํฌ ๋ฐ ์•ˆ์ •ํ™”

3์ฐจ ์Šคํ”„๋ฆฐํŠธ (1์ฃผ) - ์•ˆ์ •ํ™” ๋ฐ ๋งˆ๋ฌด๋ฆฌ

  • โณ ์ฝ”๋“œ ๋ฆฌํŒฉํ„ฐ๋ง ๋ฐ ์ตœ์ ํ™”
  • โณ ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ์•ˆ์ •ํ™”
  • โณ ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ ๋ฐ ๊ฐœ์„ 
  • โณ ๋ฌธ์„œํ™” ์™„์„ฑ

๐ŸŽฌ ๋ฐ๋ชจ ์˜์ƒ

๋ฐ๋ชจ ์˜์ƒ์€ ํ”„๋กœ์ ํŠธ ์™„์„ฑ ํ›„ ์ถ”๊ฐ€ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.


๐Ÿ‘ฅ ํŒ€์› ์†Œ๊ฐœ

์ด๋ฆ„ ์—ญํ•  ๋‹ด๋‹น ๊ธฐ๋Šฅ
์•ˆ๋ณ‘์„  PO ์ธ์ฆ/์ธ๊ฐ€, ์˜ˆ๋งค ์‹œ์Šคํ…œ
๋ฐฑ์Šน๋ฒ” ๋ฐฑ์—”๋“œ ํŒ€์žฅ ํŒŒํ‹ฐ ๋งค์นญ, ์ฑ„ํŒ… ์‹œ์Šคํ…œ
์กฐ์˜์žฌ ํ”„๋ก ํŠธ ํŒ€์žฅ ํ”„๋ก ํŠธ ๊ฐœ๋ฐœ
๋ฐ•์ค€์„ ์•„ํ‚คํ…ํŠธ ์„ค๊ณ„ ๋ฉ”์ธํŽ˜์ด์ง€, ์•„ํ‹ฐ์ŠคํŠธ ๊ด€๋ฆฌ, ์˜ˆ๋งค ์‹œ์Šคํ…œ
๊น€์˜ˆ์ง„ ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ / ์„ฑ๋Šฅ ๊ฐœ์„  ์บ˜๋ฆฐ๋”, ์•Œ๋ฆผ ์‹œ์Šคํ…œ
์ •ํ˜œ์—ฐ ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ / ์„ฑ๋Šฅ ๊ฐœ์„  ๋งˆ์ดํŽ˜์ด์ง€, ์˜ˆ๋งค ์‹œ์Šคํ…œ

๐Ÿค ํ˜‘์—… ๋ฐฉ์‹

์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜

  • ์ •๊ธฐ ํšŒ์˜: ์ฃผ 1ํšŒ (๋งค์ฃผ ์›”์š”์ผ ์ „์ฒด ํšŒ์˜)
  • ๊ธด๊ธ‰ ์ƒํ™ฉ: Slack ์ฆ‰์‹œ ๊ณต์œ 

์ฝ”๋“œ ๊ด€๋ฆฌ

  • Git Flow ์ „๋žต ์‚ฌ์šฉ
  • PR ํ•„์ˆ˜ ๋ฆฌ๋ทฐ
  • Swagger ๊ธฐ๋ฐ˜ API ๋ฌธ์„œ ์‹ค์‹œ๊ฐ„ ์—…๋ฐ์ดํŠธ

ํ’ˆ์งˆ ๊ด€๋ฆฌ

  • JUnit ๊ธฐ๋ฐ˜ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ
  • JMeter ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ
  • ์ฝ”๋“œ ๋ฆฌ๋ทฐ ํ•„์ˆ˜

About

๐ŸŽค ์•„์ด๋Œ ์Šค์ผ€์ค„ ์กฐํšŒ๋ถ€ํ„ฐ ๐ŸŽซ ์ฝ˜์„œํŠธ ์˜ˆ๋งค, ๐Ÿš• ํƒ์‹œํŒŸ ๋งค์นญ๊นŒ์ง€ ํ•œ ๋ฒˆ์— ์ œ๊ณตํ•˜๋Š” ํŒฌ ํ”Œ๋žซํผ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5