Skip to content

RyuTa960625/WhoRU

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Logo

์šฐ๋ฆฌ๋“ค์˜ ๋Œ€๋‚˜๋ฌด ์ˆฒ, whorU!โ€Š

๐Ÿ“’Notion

๐Ÿงท๋ชฉ์ฐจ

  1. ์„œ๋น„์Šค ์†Œ๊ฐœ
  2. ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ
  3. ํŒ€์› ๊ตฌ์„ฑ
  4. ๊ธฐ์ˆ  ์Šคํƒ
  5. ์—ญํ•  ๋ถ„๋‹ด
  6. ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜
  7. 1.1 ํŒจ์น˜
  8. ์ฃผ์š” ๊ธฐ๋Šฅ

๐Ÿ‘€ 1. ์„œ๋น„์Šค ์†Œ๊ฐœ

๐Ÿ“จ whorU๋ž€?


์šฐ๋ฆฌ๋“ค์˜ ๋Œ€๋‚˜๋ฌด ์ˆฒ Whoru! ์–ธ์ œ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ์ข‹์„๊นŒ์š”?
  • ์ง€๊ธˆ ๋‚ด ๊ฐ์ •์„ ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ์ „ํ•˜๊ณ  ์‹ถ์–ด!
  • ๋‚˜๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ์—” ์•„๊นŒ์šด ์‚ฌ์ง„๋“ค!
  • ๋‚ด ๋ชฉ์†Œ๋ฆฌ ์–ด๋•Œ?

    ์ต๋ช…์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋žœ๋คํ•œ ๋Œ€์ƒ์—๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๋ณด์„ธ์š”!



    whorU ์„œ๋น„์Šค ๋ฐ”๋กœ ๊ฐ€๊ธฐ



    2. ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ

    whorU ํ”„๋กœ์ ํŠธ๋Š” ์šด์˜์ ์ธ ์ธก๋ฉด์„ ๊ณ ๋ คํ•˜์—ฌ ๊ฐœ๋ฐœํ•˜๋Š”๊ฒƒ๊ณผ

    ์‚ฌ์šฉ์ž๋“ค๋กœ๋ถ€ํ„ฐ์˜ ์‹ค์ œ ํ”ผ๋“œ๋ฐฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ 1.1 ํŒจ์น˜๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

    ๋”ฐ๋ผ์„œ ์šด์˜์ ์ธ ์ธก๋ฉด์—์„œ๋Š” ๊ฐœ๋ฐœ์ž๋“ค์ด ์‰ฝ๊ฒŒ ์ด์Šˆ์— ๋Œ€์‘ํ•˜๊ธฐ ์œ„ํ•ด ๋กœ๊น…, ๋ชจ๋‹ˆํ„ฐ๋ง ํˆด์„ ์‚ฌ์šฉํ•˜์˜€๊ณ 

    ๊ฐœ๋ฐœ ์„œ๋ฒ„ EC2 ์™€ ์šด์˜ ์„œ๋ฒ„ EC2๋ฅผ ์ตœ๋Œ€ํ•œ ๋™์ผํ•œ ํ™˜๊ฒฝ์œผ๋กœ ๊ตฌ์ถ•ํ•˜์—ฌ

    ๋‹ค์Œ ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ์— ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ์—†์ด ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

    ํ”ผ๋“œ๋ฐฑ์€ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ตฌ๊ธ€์„ค๋ฌธ์„ ํ†ตํ•ด ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค.



    ๐Ÿ“Ž3. ํŒ€์› ๊ตฌ์„ฑ

    ๊น€์ •ํ˜„

    Back-End

    ์ •๋ฏผํ˜ธ

    Infra

    ๊น€ํšŒ์ฐฝ

    Back-End

    ๋ฅ˜ํƒœ์ˆ˜

    Front-End

    ๊ฐ•์ •์ˆ˜

    Front-End

    ์˜ค์Šนํ˜„

    Front-End



    ๐Ÿ› ๏ธ 4. ๊ธฐ์ˆ  ์Šคํƒ

    Back-End

    Logo

    Version

    Spring boot : 3.2.4
    JDK 21
    Gradle : 8.7
    JWT : 0.12.3
    MySQL : 8.3.0
    Redis : 7.2.4
    



    Front-End

    Logo

    Version

    Node : 20.11.1
    React : 18.2.0
    Vite : 5.1.6
    


    Infra

    Logo

    Version

    Docker : 26.0.2
    Nginx : 1.25.5
    


    Tools

    Logo


    ๐Ÿ‘ช 5. ์—ญํ•  ๋ถ„๋‹ด

    ๐Ÿ˜ ๊น€์ •ํ˜„

    • ๋ฉ”ํŠธ๋ฆญ ๋ชจ๋‹ˆํ„ฐ๋ง ํ™˜๊ฒฝ ๊ตฌ์ถ•
    • WAS Log ์ˆ˜์ง‘ ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง ํ™˜๊ฒฝ ๊ตฌ์ถ•
    • ์ˆ˜์ง‘ ์ปจํ…์ธ  ๊ฐœ๋ฐœ
    • ์‚ฌ์šฉ์ž ์‹ ๊ณ  ๋กœ์ง ๊ฐœ๋ฐœ
    • ๊ฐœ๋ฐœ ์„œ๋ฒ„ ํ™˜๊ฒฝ ๊ตฌ์ถ• ๋ฐ ์šด์šฉ

    ๐Ÿ˜‡ ์ •๋ฏผํ˜ธ

    • FE, BE ๋ธŒ๋žœ์น˜ ๋ณ„ CI/CD ํ™˜๊ฒฝ ๊ตฌ์ถ•
    • ์นด์นด์˜ค, ๊ตฌ๊ธ€ ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„
    • Spring Security ๊ฐœ๋ฐœ
    • ํšŒ์›๊ด€๋ฆฌ API ๊ฐœ๋ฐœ
    • ์ตœ์ข… ํ”„๋กœ์ ํŠธ ๋ฐœํ‘œ

    ๐Ÿ˜Œ ๊น€ํšŒ์ฐฝ

    • ๋ฉ”์„ธ์ง€ ๋„๋ฉ”์ธ ๊ตฌํ˜„
    • ๊ด€๋ฆฌ์ž ๊ณต์ง€์‚ฌํ•ญ ๋„๋ฉ”์ธ ๊ตฌํ˜„
    • Firebase Cloud Message ํ‘ธ์‹œ์•Œ๋ฆผ ๋ฐฑ์—”๋“œ ๊ตฌํ˜„

    ๐Ÿ˜Ž ๋ฅ˜ํƒœ์ˆ˜

    • ์šฐํŽธํ•จ ํŽ˜์ด์ง€
    • ๋ฐ์ผ๋ฆฌ ๋ฉ”์‹œ์ง€ ํŽ˜์ด์ง€
    • ๊ฐœ์ธ ๋ฉ”์‹œ์ง€ ํŽ˜์ด์ง€
    • ๋ฉ”์‹œ์ง€ ์ „์†ก ํŽ˜์ด์ง€

    ๐Ÿ˜Š ๊ฐ•์ •์ˆ˜

    • ์†Œ์…œ ๋กœ๊ทธ์ธ
    • ํšŒ์› ๊ด€๋ฆฌ
    • ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€

    ๐Ÿค“ ์˜ค์Šนํ˜„

    • ๋งˆ์ดํŽ˜์ด์ง€ ๋””์ž์ธ
    • ์ˆ˜์ง‘ ์ปจํ…์ธ 


    โš™๏ธ 6. ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜

    System Architecher


    7. 1.1 ํŒจ์น˜

    ๊ธฐ์กด์˜ 1.0 ver ์˜ ์ฃผ์š” ์‚ฌ์šฉ์ž ๊ธฐ๋Šฅ๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•˜์Šต๋‹ˆ๋‹ค.

    • ๋ฉ”์„ธ์ง€ ๋žœ๋ค๋ฐœ์†ก ๋ฐ ๋‹ต์žฅ

      • ๋ฉ”์„ธ์ง€ ์†ก์‹ ์ž๋ฅผ ์ œ์™ธํ•œ ๋žœ๋คํ•œ 1๋ช…์—๊ฒŒ ๋ฉ”์„ธ์ง€๋ฅผ ์ „์†กํ•˜๊ณ  Firebase ์•Œ๋ฆผ์„ ๋ณด๋‚ธ๋‹ค.

      • ๋ฉ”์„ธ์ง€๋ฅผ ๋ฐ›์€ ์‚ฌ๋žŒ์€ 1ํšŒ์— ํ•œํ•ด์„œ ๋‹ต์žฅ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

    • ๋žœ๋ค๋ฐ•์Šค ๊ธฐ๋Šฅ

      • ํ•˜๋ฃจ ์ตœ๋Œ€ 3ํšŒ, ๋ฉ”์„ธ์ง€ ์ „์†ก์‹œ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

      • ๋žœ๋ค๋ฐ•์Šค์—์„œ ๋“ฑ๊ธ‰์— ๋”ฐ๋ฅธ ํ™•๋ฅ ๋กœ ํ”„๋กœํ•„ ์•„์ด์ฝ˜์„ ํš๋“ํ•  ์ˆ˜ ์žˆ๋‹ค.

    • ๋ฌธ์˜ํ•˜๊ธฐ ๊ธฐ๋Šฅ

      • ๋ฌธ์˜ํ•˜๊ธฐ ๊ธ€์„ ๋“ฑ๋กํ•˜๋ฉด ๊ด€๋ฆฌ์ž๊ฐ€ ๋‹ต๋ณ€์„ ๋‹ฌ ์ˆ˜ ์žˆ๋‹ค.
    • ํ”„๋กœํ•„ ์„œ๋น„์Šค

      • ๋žœ๋ค๋ฐ•์Šค๋ฅผ ์—ด์–ด ๋ณผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํš๋“ํ•œ ์•„์ด์ฝ˜ ์ปฌ๋ ‰์…˜์„ ์—ด๋žŒํ•  ์ˆ˜ ์žˆ๋‹ค.

      • ํš๋“ํ•œ ์•„์ด์ฝ˜์˜ ๊ฒฝ์šฐ ํ”„๋กœํ•„ ์•„์ด์ฝ˜ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

      • Firebase ์•Œ๋ฆผ ์ˆ˜์‹ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํž ์ˆ˜ ์žˆ๋‹ค.

    ์ด์— ๋”ฐ๋ผ 1.0์„ ๋ฐฐํฌํ•œ ์ดํ›„ ๊ตฌ๊ธ€ ์„ค๋ฌธ ๋ฐ ์ง์ ‘์ ์ธ ์†Œํ†ต์„ ํ†ตํ•ด ํ”ผ๋“œ๋ฐฑ์„ ๋ชจ์•˜๊ณ 

    ํ”ผ๋“œ๋ฐฑ์„ ์š”์•ฝํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    • ์œ ์ €๊ฐ€ ๋งŽ์œผ๋ฉด ๋งŽ์„์ˆ˜๋ก ๋‹ต์žฅ์„ ๋ฐ›๋Š”๋ฐ๊นŒ์ง€ ์‹œ๊ฐ„์ด ์˜ค๋ž˜๊ฑธ๋ฆฐ๋‹ค.

    • ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋‚ด๊ณ  ํ•˜๋ฃจ 3๋ฒˆ ๋žœ๋ค๋ฐ•์Šค๋ฅผ ํš๋“ํ•˜๊ณ  ๋‚˜๋ฉด ๋‹ต์žฅ์ด ์˜ค๊ธฐ๊นŒ์ง€ ์ปจํ…์ธ ๊ฐ€ ์—†๋‹ค.

    • ๋žœ๋ค๋ฐ•์Šค ์–ป๋Š”ํšŸ์ˆ˜ 3ํšŒ ์ œํ•œ์ด ๋„ˆ๋ฌด ์ ์€๊ฒƒ ๊ฐ™๋‹ค.

    • ๋‹ต์žฅ๋ฉ”์„ธ์ง€ ์ˆ˜์‹ ์‹œ ์–ด๋–ค ๋ฉ”์„ธ์ง€์˜ ๋‹ต์žฅ์ธ์ง€ ์•Œ์ˆ˜ ์žˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค.

    • ์•Œ๋ฆผ ์ˆ˜์‹ ์ด ์ž˜ ์•ˆ๋œ๋‹ค.

    ์ด์— ๋”ฐ๋ผ ์ €ํฌํŒ€์ด ๊ฒฐ์ •๋‚ด๋ฆฐ 1.1 ํŒจ์น˜์‚ฌํ•ญ์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    ์œ ์ €์˜ ์ปจํ…์ธ ๋ฅผ ๋Š˜๋ฆฌ๊ธฐ ์œ„ํ•œ ํŒจ์น˜

    1. ๋ฉ”์„ธ์ง€ ์ „์†ก ์‹œ์Šคํ…œ์— ์šฐํŽธํ•จ ์‹œ์Šคํ…œ ํŒจ์น˜

    2. ๋ฐ์ผ๋ฆฌ ๋ฉ”์„ธ์ง€ ๊ธฐ๋Šฅ ํŒจ์น˜

    3. ๋žœ๋ค๋ฐ•์Šค ํš๋“๋ฐฉ๋ฒ• ๋ณ€๊ฒฝ

    4. ๋‹ต์žฅ ๋ฉ”์„ธ์ง€์ผ ๋•Œ, ์–ด๋–ค ๋ฉ”์„ธ์ง€์˜ ๋‹ต์žฅ์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋‹ฌ ์ œ๊ณต

    ํŽธ์˜์„ฑ ํŒจ์น˜

    1. ๋ชจ๋ฐ”์ผ ํ™˜๊ฒฝ์—์„œ ๋ฉ”์„ธ์ง€๋ฅผ ์“ฐ๋Š” ํŽ˜์ด์ง€์— ์ง„์ž…์‹œ ํ‚ค๋ณด๋“œ๊ฐ€ ์ผœ์ง€๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ

    ์ฃผ์š” ๋ฒ„๊ทธ์‚ฌํ•ญ

    1. IOS ํ™˜๊ฒฝ์—์„œ Firebase ์•Œ๋ฆผ์ด ์„ค์ •๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ

    ๐ŸŽฅ 8. ์ฃผ์š” ๊ธฐ๋Šฅ

    ๋ฉ”์‹œ์ง€ ์ „์†ก ๋ฐ My Message

    • ํ…์ŠคํŠธ, ์ด๋ฏธ์ง€, ์Œ์„ฑ 3๊ฐ€์ง€์˜ Media Type ์ง€์›
    • ์ „์†ก ์‹œ 30% ํ™•๋ฅ ๋กœ ๋žœ๋ค๋ฐ•์Šค ํš๋“
    • ์ „์†ก ์‹œ ๋žœ๋ค ๋Œ€์ƒ์ด ์•„๋‹Œ ๊ณตํ†ต ์šฐํŽธํ•จ์œผ๋กœ ์ „์†ก
    • ์šฐํŽธํ•จ์—์„œ ๊ฐ€์ ธ์˜จ ๋ฉ”์„ธ์ง€๋Š” My Message์—์„œ ํ™•์ธ๊ฐ€๋Šฅ
    • ๋‹ต์žฅ ๋ฉ”์„ธ์ง€์˜ ๊ฒฝ์šฐ My Message์— ๋ณด๊ด€๋˜๋ฉฐ, ์–ด๋–ค ๋ฉ”์„ธ์ง€์˜ ๋‹ต์žฅ์ด์—ˆ๋Š”์ง€ from ๋ฒ„ํŠผ์„ ํ†ตํ•ด ๋ชจ๋‹ฌ๋กœ ํ™•์ธ๊ฐ€๋Šฅ
    • My Message์—์„œ ๋ฉ”์„ธ์ง€ ์‹ ๊ณ  ๊ฐ€๋Šฅ
    ํ…์ŠคํŠธ ๋ฉ”์„ธ์ง€ ์ „์†ก ์ด๋ฏธ์ง€ ๋ฉ”์„ธ์ง€ ์ „์†ก ์Œ์„ฑ ๋ฉ”์„ธ์ง€ ์ „์†ก
    ํ…์ŠคํŠธ ๋ฉ”์‹œ์ง€ ์ „์†ก ์ด๋ฏธ์ง€ ๋ฉ”์‹œ์ง€ ์ „์†ก ์Œ์„ฑ ๋ฉ”์‹œ์ง€ ์ „์†ก
    My Message ์‹ ๊ณ 

    ๋ฐ์ผ๋ฆฌ ๋ฉ”์„ธ์ง€

    • ๋‹น์ผ ๋‚ ์งœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ 00:00:00 ~ 23:59:59 ์‚ฌ์ด์˜ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Œ
    ๋ฐ์ผ๋ฆฌ ๋ฉ”์„ธ์ง€

    ์šฐํŽธํ•จ

    • ์ต๋ช…์œผ๋กœ๋ถ€ํ„ฐ ์ „์†ก๋œ ๋ฉ”์‹œ์ง€๋Š” ์šฐํŽธํ•จ์— ์ €์žฅ
    • ์‚ฌ์šฉ์ž๋Š” ์šฐํŽธํ•จ์—์„œ ํ•ด๋‹นํ•˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๊ฐ€๋กœ์ฑŒ ์ˆ˜ ์žˆ์Œ
    • ๊ฐ€๋กœ์ฑ„๋ฉด ์‚ฌ์šฉ์ž์˜ ๋ฉ”์‹œ์ง€๋กœ ๊ท€์†๋˜๋ฉฐ, 1ํšŒ์— ํ•œํ•ด์„œ ๋‹ต์žฅ ๊ฐ€๋Šฅ
    ์šฐํŽธํ•จ
    ๋ฉ”์‹œ์ง€ ๊ฐ€๋กœ์ฑ„๊ธฐ

    ๋ฌธ์˜ํ•˜๊ธฐ

    • ์‚ฌ์šฉ์ž๋Š” ๋ฌธ์˜ํ•˜๊ธฐ๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌ์ž์™€ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ์Œ
    ๋ฌธ์˜ํ•˜๊ธฐ ๊ด€๋ฆฌ์ž ๋‹ต๋ณ€ ํ›„

    ๊ด€๋ฆฌ์ž

    • ๊ด€๋ฆฌ์ž๋Š” ๊ณต์ง€์‚ฌํ•ญ์„ ์ž‘์„ฑ ๋ฐ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Œ
    • ๊ด€๋ฆฌ์ž๋Š” ๋ฌธ์˜์‚ฌํ•ญ๋“ค์„ ์กฐํšŒํ•˜๊ณ , ๋‹ต๊ธ€์„ ๋‹ฌ ์ˆ˜ ์žˆ์Œ
    • ๊ด€๋ฆฌ์ž๋Š” ์‹ ๊ณ ๋‚ด์—ญ์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๊ณ , ์‚ฌ์šฉ์ž ์ •์ง€ ์ฒ˜๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Œ
    • ๊ณต์ง€์‚ฌํ•ญ ์ž‘์„ฑ์‹œ ๋ชจ๋“  ํšŒ์›์—๊ฒŒ Firebase ํ‘ธ์‹œ์•Œ๋ฆผ ๋ฐœ์†ก
    ๊ณต์ง€์‚ฌํ•ญ ์‹ ๊ณ  ๋ฌธ์˜์‚ฌํ•ญ
    ๊ด€๋ฆฌ์ž

    ํ‘ธ์‹œ์•Œ๋ฆผ

    • ์‚ฌ์šฉ์ž๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๋ฐ ํฌ๊ทธ๋ผ์šด๋“œ์—์„œ FCM ์•Œ๋ฆผ์„ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ์Œ
    ๊ณต์ง€์‚ฌํ•ญ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๊ณต์ง€์‚ฌํ•ญ ํฌ๊ทธ๋ผ์šด๋“œ ๋‹ต์žฅ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๋‹ต์žฅ ํฌ๊ทธ๋ผ์šด๋“œ

  • About

    No description, website, or topics provided.

    Resources

    Stars

    Watchers

    Forks

    Releases

    No releases published

    Packages

    No packages published