/swimming-community-app-backend

๐Ÿ‘™ ์ˆ˜์˜ ์ปค๋ฎค๋‹ˆํ‹ฐ ์›น์‚ฌ์ดํŠธ - backend

Primary LanguageJava

๐Ÿฅฝ์–ดํ‘ธ์–ดํ‘ธ - ์ˆ˜์˜ ์ปค๋ฎค๋‹ˆํ‹ฐ ์•ฑ

๐Ÿ’ก ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ

์ˆ˜์˜์— ์ทจ๋ฏธ๊ฐ€ ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์ด ์ด์šฉํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ฉํ•˜์—ฌ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ œ์ž‘ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • ์ˆ˜์˜์žฅ ๊ฒ€์ƒ‰(์ง€๋„)
  • ์ˆ˜์˜์žฅ ๋ฆฌ๋ทฐ
  • ์ˆ˜์˜ ์ผ์ง€ ์ž‘์„ฑ
  • ์ˆ˜์˜ ์ปค๋ฎค๋‹ˆํ‹ฐ

โš™ ๊ฐœ๋ฐœํ™˜๊ฒฝ

  • java 17
  • Build Tool : Gradle 7.5.1
  • Web Server : Nginx
  • Database : MySQL 8.0, Redis
  • CI / CD : GitHub Actions, Docker Hub, Docker Compose, Docker Container
  • IDE : Intellij

๐Ÿ“Š ERD

์–ดํ‘ธ์–ดํ‘ธ (1)


๐Ÿ–ฑ UserFlow


๐Ÿ’ป ํ™”๋ฉด๊ตฌ์„ฑ ๋ฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„

  1. ๋กœ๊ทธ์ธ
    • ์นด์นด์˜ค ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ
    • ๊ด€๋ฆฌ์ž ๊ณ„์ •(adimin)
    • ๋กœ๊ทธ์ธ
    • JWT์™€ Spring Security์˜ ํ•„ํ„ฐ๋ฅผ ์ด์šฉํ•œ ๋กœ๊ทธ์ธ ๋ฐฉ์‹
    • Access Token๊ณผ Refresh Token์„ Redis์— ์ผ์ • ์‹œ๊ฐ„(30๋ถ„) ๊ฐ„๊ฒฉ์œผ๋กœ ํ™•์ธ ํ›„, ์žฌ๋ฐœ๊ธ‰
    • ์•„์ด๋”” ์ฐพ๊ธฐ
    • ๋น„๋ฐ€๋ฒˆํ˜ธ ์ฐพ๊ธฐ
      • Naver Cloud ๋ฌธ์ž๋ฐœ์†ก ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ€์ž…ํ•˜์˜€๋˜ ํ•ธ๋“œํฐ๋ฒˆํ˜ธ๋กœ ์ธ์ฆ ๋ฌธ์ž ๋ฐœ์†ก

๋กœ๊ทธ์ธ




  1. ํšŒ์›๊ฐ€์ž…
    • ์ผ๋ฐ˜ ํšŒ์›๊ฐ€์ž…
    • ํ•ธ๋“œํฐ ๋ฒˆํ˜ธ ์ธ์ฆ
    • ๋ฆฌ๋ทฐ์˜ ์ •ํ™•๋„๋ฅผ ์œ„ํ•ด์„œ Naver Cloud ๋ฌธ์ž๋ฐœ์†ก ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ํ•ธ๋“œํฐ๋ฒˆํ˜ธ๋กœ ์ธ์ฆ ๋ฌธ์ž ๋ฐœ์†ก
    • redis์— ์ธ์ฆ๋ฒˆํ˜ธ 3๋ถ„์ดํ›„ ์‚ญ์ œ ์ฒ˜๋ฆฌ (์ธ์ฆ๋ฒˆํ˜ธ๊ฐ€ 6์ž๋ฆฌ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ธ์ฆ๋ฒˆํ˜ธ ์ค‘๋ณต๋ฌธ์ œ ์ตœ์†Œํ™”)

ํšŒ์›๊ฐ€์ž…




  1. ๋‚ด ๊ณ„์ •
    • ํšŒ์› ์ •๋ณด ์กฐํšŒ
    • ํšŒ์› ์ˆ˜์ •
    • ํšŒ์›ํƒˆํ‡ด

๋‚ด๊ณ„์ • ํŽ˜์ด์ง€




  1. ๋ฉ”์ธ ํŽ˜์ด์ง€
    • ์ปค๋ฎค๋‹ˆํ‹ฐ ์ตœ์‹ ๊ธ€ 5๊ฐœ

๋ฉ”์ธํŽ˜์ด์ง€




  1. ์ˆ˜์˜์žฅ ๊ฒ€์ƒ‰ํŽ˜์ด์ง€
    • ์นด์นด์˜ค๋งต API๋ฅผ ์ด์šฉํ•œ ์ง€๋„ ๊ตฌํ˜„
    • ํ˜„์žฌ์œ„์น˜์ฐพ๊ธฐ
    • ์ง€๋„๊ธฐ์ค€ ๊ฒ€์ƒ‰๋ฆฌ์ŠคํŠธ
    • ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰๋ฆฌ์ŠคํŠธ
์ˆ˜์˜์žฅ ๊ฒ€์ƒ‰์–ด ๊ฒ€์ƒ‰์ˆ˜์˜์žฅ ํ˜„์žฌ ์œ„์น˜ ๊ฒ€์ƒ‰



  1. ์ˆ˜์˜์žฅ ๋ฆฌ๋ทฐํŽ˜์ด์ง€
    • ๋ฆฌ๋ทฐ๋ชฉ๋ก ๋ฐ ์ƒ์„ธ ํŽ˜์ด์ง€
    • ๋ฆฌ๋ทฐ ๋ชฉ๋ก ์ž‘์„ฑ / ์ˆ˜์ • / ์‚ญ์ œ

๋‚ด๊ณ„์ • ํŽ˜์ด์ง€




  1. ์ปค๋ฎค๋‹ˆํ‹ฐ
  • ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ / ์ˆ˜์ • / ์‚ญ์ œ
  • S3 ํŒŒ์ผ ์—…๋กœ๋“œ, ์‚ญ์ œ (ํ”„๋ก ํŠธ ๋ฏธ์™„์„ฑ)
  • ๋Œ“๊ธ€์“ฐ๊ธฐ
  • ์ข‹์•„์š” ๋ˆ„๋ฅด๊ธฐ
  • ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ(์นดํ…Œ๊ณ ๋ฆฌ ๊ฒ€์ƒ‰ ๋ฐ ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰)

์ปค๋ฎค๋‹ˆํ‹ฐ




  1. ์ˆ˜์˜ ์ผ์ง€
    • ์ˆ˜์˜ ์ผ์ง€ ๋‚ ์งœ๋ณ„ ์กฐํšŒ ์บ˜๋ฆฐ๋”
    • ์ˆ˜์˜ ์ผ์ง€ ์ž‘์„ฑ ๋ฐ ํ‰๊ท  ์กฐํšŒ
    • ์ผ์ง€ ๋ชฉ๋ก ์ž‘์„ฑ / ์ˆ˜์ • / ์‚ญ์ œ
    • S3 ํŒŒ์ผ ์—…๋กœ๋“œ, ์‚ญ์ œ (ํ”„๋ก ํŠธ ๋ฏธ์ž‘์—…)

์ผ์ง€ ์กฐํšŒ ์ˆ˜์ •

์ผ์ง€ ์‚ญ์ œ