Home - Team-HGD/SniffMEET GitHub Wiki

391451379-c64cdb32-ad35-405e-9776-3bc6be7fb300

ํ˜„์žฌ ๋ฐฐํฌ(1.7v) ๊ธฐ์ค€ ์„œ๋น„์Šค

๊ฐ„๋žตํ•œ ๊ธฐ๋Šฅ ์„ค๋ช…๐Ÿ“ฑ

  • ์˜จ๋ณด๋”ฉ ํ™”๋ฉด์œผ๋กœ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฐ˜๋ ค๊ฒฌ ์ •๋ณด๋งŒ ๊ธฐ์ž…ํ•ด ์ต๋ช… ๋กœ๊ทธ์ธ์ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋Œ€๋ฉด์œผ๋กœ 5-10cm ์ •๋„ ๊ธฐ๊ธฐ๊ฐ„ ๊ฑฐ๋ฆฌ์™€ ๋ฐฉํ–ฅ์„ ์œ ์ง€ํ•˜๋ฉด ์„œ๋กœ์˜ ๋ฐ˜๋ ค๊ฒฌ ํ”„๋กœํ•„์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฐ˜๋ ค๊ฒฌ ํ”„๋กœํ•„์„ ๊ณต์œ  ํ›„ ์ˆ˜๋ฝํ•˜๋ฉด ๋ฉ”์ดํŠธ ๊ด€๊ณ„๊ฐ€ ํ˜•์„ฑ๋ฉ๋‹ˆ๋‹ค.
  • ๋ฉ”์ดํŠธ์—๊ฒŒ ์‚ฐ์ฑ… ์š”์ฒญ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ์ง€๋„์—์„œ ๋งŒ๋‚  ์žฅ์†Œ๋ฅผ ์„ ํƒํ•˜๊ณ  ๋ฉ”์„ธ์ง€์™€ ํ•จ๊ป˜ ์š”์ฒญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
  • ์‚ฐ์ฑ… ์š”์ฒญ์— ๋Œ€ํ•ด์„œ ์ˆ˜๋ฝ, ๊ฑฐ์ ˆ ์‘๋‹ต์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฐ์ฑ… ์š”์ฒญ์—๋Š” 1๋ถ„ ๋‹ต๋ณ€ ์ œํ•œ์‹œ๊ฐ„์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ œํ•œ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ์ž๋™์œผ๋กœ ๊ฑฐ์ ˆ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
  • ์‚ฐ์ฑ… ์š”์ฒญ, ์ˆ˜๋ฝ, ๊ฑฐ์ ˆ์— ๋Œ€ํ•œ ์•Œ๋ฆผ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ์—ฐ ์˜์ƒ ๐ŸŽฅ

์˜จ๋ณด๋”ฉ๊ณผ ๋กœ๊ทธ์ธ ๋ฉ”์ดํŠธ ๋งบ๊ธฐ ์‚ฐ์ฑ… ์š”์ฒญ ์ •๋ณด ์ˆ˜์ •

๋ฉ”์ดํŠธ ๋งบ๊ธฐ ์‹œ์ ์˜ ํ”„๋กœํ•„๋“œ๋ž ๋™์ž‘

ProfileDrop

๊ธฐ์ˆ ์„ ํฌํ•จํ•œ ๊ธฐ๋Šฅ ์„ค๋ช…๐Ÿ’ก

1๏ธโƒฃ Profile Drop ๊ธฐ๋Šฅ

NameDrop ํ˜•ํƒœ์˜ ๋ฐฉ์‹์œผ๋กœ ๊ธฐ๊ธฐ๊ฐ„ ํŠน์ • ์•ก์…˜์— ๋Œ€ํ•œ ๋ฐ˜์‘์œผ๋กœ ๋ฐ˜๋ ค๊ฒฌ ํ”„๋กœํ•„ ์นด๋“œ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ๋žŒ์ด ๋Œ€๋ฉด์œผ๋กœ ๋งŒ๋‚˜ ์„œ๋กœ์˜ ๋ฐ˜๋ ค๊ฒฌ ํ”„๋กœํ•„์„ ๊ณต์œ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ํŠน์ • ๊ฑฐ๋ฆฌ์™€ ๋ฐฉํ–ฅ์„ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋Š” NearbyInteraction๊ณผ ํ”ผ์–ด ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ณต์œ ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” MultipeerConnectivity ๊ธฐ์ˆ ์„ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜๋Š” ๋™์ž‘ ๋ฐฉ์‹์— ๋Œ€ํ•œ ํ”Œ๋กœ์šฐ์ž…๋‹ˆ๋‹ค.

  • ๊ธฐ๊ธฐ๋“ค์€ ๊ฐ๊ฐ NISession๊ณผ MPCSession์„ ๋…๋ฆฝ์ ์œผ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ ๊ธฐ๊ธฐ๋“ค์€ MPCSession์„ ํ†ตํ•ด Advertising / Browsing ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ๊ธฐ๊ฐ€ ๋ฐœ๊ฒฌ๋œ๋‹ค๋ฉด Invite ํ•˜๊ณ  ์„ธ์…˜์„ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
  • NISession์€ ์‹œ์ž‘๋˜๋ฉด ์ž๋™์œผ๋กœ ๊ธฐ๊ธฐ๋งˆ๋‹ค DiscoveryToken์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • DiscoveryToken์„ ๊ธฐ๊ธฐ๋ผ๋ฆฌ ๊ตํ™˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ MPCSession์„ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค.
  • DiscoveryToken์ด ์ •์ƒ์ ์œผ๋กœ ๊ตํ™˜๋˜๋ฉด NISession์œผ๋กœ ์—ฐ๊ฒฐ๋˜๊ณ  ๊ธฐ๊ธฐ์˜ ๊ฑฐ๋ฆฌ์™€ ๋ฐฉํ–ฅ์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ดํ›„, ํ•ด๋‹นํ•˜๋Š” ๊ฑฐ๋ฆฌ์™€ ๋ฐฉํ–ฅ์— ์žˆ๋Š” ๊ธฐ๊ธฐ์™€ MPCSession์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ(ํ”„๋กœํ•„ ์นด๋“œ)๋ฅผ ๊ตํ™˜ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ๊ตํ™˜์ด ๋งˆ์น˜๋ฉด ํ”„๋กœํ•„ ๊ณต์œ ๊ฐ€ ๋˜์—ˆ๋‹ค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ๋Œ€๋ฐฉ์—๊ฒŒ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
  • ์ƒ๋Œ€๋ฐฉ์—๊ฒŒ ๋ฐ์ดํ„ฐ ๊ณต์œ ๊ฐ€ ๋˜์—ˆ๋‹ค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๊ณ  ์ž์‹ ๋„ ์ƒ๋Œ€๋ฐฉ์˜ ํ”„๋กœํ•„์„ ๋ฐ›์•˜๋‹ค๋ฉด NI, MPC Session ๋ชจ๋‘ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

2๏ธโƒฃ Supabase ์„œ๋ฒ„ ํ†ต์‹ 

SniffMEET์€ ์„œ๋ฒ„ ํ”„๋กœ๋ฐ”์ด๋”๋กœ Supabase๋ฅผ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ์ต๋ช… ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ์‚ฌ์šฉ

    ์„œ๋ฒ„์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์Šคํ† ๋ฆฌ์ง€์— ์ ‘๊ทผํ•˜๋ ค๋ฉด ์ธ์ฆ๋œ ์‚ฌ์šฉ์ž์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํšŒ์›๊ฐ€์ž…์„ ํ•˜์ง€ ์•Š์•„๋„ ์šฐ๋ฆฌ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์ต๋ช… ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค.

    ์‚ฌ์šฉ์ž๋Š” ํšŒ์›๊ฐ€์ž…๊ณผ ๋กœ๊ทธ์ธ์„ ํ•˜์ง€ ์•Š์•„๋„ ์ดˆ๊ธฐ ์ •๋ณด ์ž…๋ ฅ๋งŒ ํ•œ๋‹ค๋ฉด ์ธ์ฆ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

  • ์ง์ ‘ HTTP REST API ํ†ต์‹ ์œผ๋กœ ์„œ๋ฒ„์™€ ํ†ต์‹ 

    ์ €ํฌ HGD ํŒ€์€ third-party ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ง์ž๋Š” ๋ฃฐ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Supabase SDK ๋˜ํ•œ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ ์ด์— ์ง์ ‘ HTTP REST API๋กœ ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค.

  • Supabase Network Layer SniffMEET์˜ Supabase์™€์˜ ํ†ต์‹  ๋ ˆ์ด์–ด๋Š” ํฌ๊ฒŒ AuthManager, DatabaseManager, StorageManager, SessionManager๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ๊ฐ Manager๋“ค์˜ ์—ญํ• ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค

    1. AuthManager๋Š” ์‚ฌ์šฉ์ž์˜ ์ธ์ฆ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

      ์„œ๋ฒ„์— ์ต๋ช… ์‚ฌ์šฉ์ž๋ฅผ ๋“ฑ๋กํ•˜๊ณ  ์„ธ์…˜์„ ๋ฐ›์•„์˜ค๋ฉฐ, ์•ฑ์ด ๋‹ค์‹œ ์‹คํ–‰๋˜์—ˆ์„ ๋•Œ ์„ธ์…˜์„ ๋ณต์›ํ•˜๊ณ , ์„ธ์…˜์ด ๋งŒ๋ฃŒ๋˜์—ˆ์„ ๋•Œ ์„ธ์…˜์„ ๊ฐฑ์‹ ํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

    2. DatabaseManager๋Š” ์„œ๋ฒ„์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

      url, ํ—ค๋”, ์ฟผ๋ฆฌ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ฐ›๊ณ  Supabase ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜์—ฌ ์„œ๋ฒ„์˜ ํ…Œ์ด๋ธ”์— ์‚ฝ์ž…/๊ฐฑ์‹ /์š”์ฒญ ์ž‘์—…์„ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

    3. StorageManager๋Š” ์„œ๋ฒ„์˜ ์Šคํ† ๋ฆฌ์ง€์— ์ ‘๊ทผํ•˜์—ฌ ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋กœ๋“œ/๋‹ค์šด๋กœ๋“œ ํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

      ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ url, ํ—ค๋”, ์ฟผ๋ฆฌ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํ†ตํ•ด Supabase ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

    4. Supabase์˜ ๋ชจ๋“  ํ†ต์‹  ์ž‘์—…์€ SessionManager๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ์„ธ์…˜์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

      SessionManager๋Š” ํ˜„์žฌ ์„ธ์…˜์˜ ๋งŒ๋ฃŒ ์‹œ๊ฐ„์„ ํ™•์ธํ•˜๊ณ , ๊ฐฑ์‹ ์ด ํ•„์š”ํ•˜๋ฉด ๊ฐฑ์‹ ์„ ์š”์ฒญํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

  • Supabase ์œ ์ € ์ธ์ฆ ๊ณผ์ •

    Supabase์˜ ์œ ์ € ์ธ์ฆ์€ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์˜ anon-key์™€ ์œ ์ €์˜ JWT ํ† ํฐ์œผ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

    ์„œ๋ฒ„์—์„œ ์„ธ์…˜์„ ๋ฐ›์•„์™€์„œ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์œ ์ € ์ƒ์„ฑ๊ณผ ์„ธ์…˜ ๊ฐฑ์‹  ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋กœ์ง์œผ๋กœ ์ด๋ฃจ์–ด ์ง‘๋‹ˆ๋‹ค.

์ต๋ช… ๋กœ๊ทธ์ธ ์„ธ์…˜ ๊ฐฑ์‹ 
  1. ์œ ์ € ์ƒ์„ฑ

    ๊ณต๊ฐœ ํ‚ค์ธ anon-key๋ฅผ ์ด์šฉํ•˜์—ฌ ์™„์ „ ์ƒˆ๋กœ์šด ์œ ์ €์— ๋Œ€ํ•œ ์„ธ์…˜์„ ๋ฐ›์•„์˜ค๋Š” ์ž‘์—…์„ ํ•ฉ๋‹ˆ๋‹ค.

    ์„œ๋ฒ„์˜ auth ํ…Œ์ด๋ธ”์— ์ƒˆ๋กœ์šด ์œ ์ €๊ฐ€ ์ƒ์„ฑ๋˜๊ฒŒ ๋˜๋ฉฐ, ์‘๋‹ต์œผ๋กœ JWT, ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ, ์œ ์ € ์ •๋ณด์™€ ๊ฐ™์ด ์„ธ์…˜์„ ๊ตฌ์„ฑํ•˜๋Š” ์ •๋ณด๊ฐ€ ์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. AuthManager๋Š” ์ด ์ •๋ณด๋ฅผ ์ด์šฉํ•˜์—ฌ Session์„ ๋งŒ๋“ค์–ด SessionManager์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

  2. ์„ธ์…˜ ๊ฐฑ์‹ 

    Refresh Token์„ ์ด์šฉํ•˜์—ฌ ํ˜„์žฌ ์œ ์ €์˜ ์„ธ์…˜์„ ๊ฐฑ์‹ ํ•˜๋Š” ์ž‘์—…์„ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

    ์„œ๋ฒ„์— Refresh Token์„ ์ด์šฉํ•˜์—ฌ ์š”์ฒญ์„ ํ•˜๊ฒŒ ๋˜๋ฉด, ์„ธ์…˜์ด ๋งŒ๋ฃŒ๋œ ์œ ์ €์˜ ์ƒˆ๋กœ์šด JWT, ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ, ์œ ์ € ์ •๋ณด๋ฅผ ๊ฐฑ์‹ ๋ฐ›์•„ ์˜ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ต๋ช… ๋กœ๊ทธ์ธ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ AuthManager๊ฐ€ ์ด ์ •๋ณด๋ฅผ ์ด์šฉํ•˜์—ฌ Session์„ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด SessionManager๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.


3๏ธโƒฃ ์‚ฐ์ฑ… ์š”์ฒญ/์ˆ˜๋ฝ ๊ธฐ๋Šฅ

์‚ฐ์ฑ… ์š”์ฒญ ํ™”๋ฉด ์›ํ•˜๋Š” ์žฅ์†Œ ์„ ํƒ ์žฅ์†Œ์™€ ๋ฉ”์„ธ์ง€ ์ž…๋ ฅ ํ›„ ์‚ฐ์ฑ… ์š”์ฒญ
  • ๋ฉ”์ดํŠธ ๊ด€๊ณ„์ธ ์œ ์ €์—๊ฒŒ๋งŒ ์‚ฐ์ฑ… ์š”์ฒญ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์‚ฐ์ฑ… ์š”์ฒญ์€ ๋งŒ๋‚  ์žฅ์†Œ๋ฅผ ์„ ํƒํ•˜๊ณ  ๊ฐ„๋‹จํ•œ ๋ฉ”์„ธ์ง€์™€ ํ•จ๊ป˜ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์‚ฐ์ฑ… ์žฅ์†Œ๋ฅผ ์„ ํƒํ•˜๋Š” ๊ธฐ๋Šฅ์€ MapKit๋ฅผ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์˜ ํ˜„์žฌ ์œ„์น˜ ๊ถŒํ•œ์„ ๋ฐ›๊ณ  ์šฐ์„ ์ ์œผ๋กœ ์‚ฌ์šฉ์ž์˜ ์œ„์น˜๋ฅผ ์ง€๋„์— ๋ณด์ด๋„๋ก ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
์‚ฐ์ฑ… ์‘๋‹ต ์•Œ๋ฆผ ์‚ฐ์ฑ… ์š”์ฒญ ์‘๋‹ต ํ™•์ธ ์ˆ˜๋ฝ ํ˜น์€ ์‘๋‹ต ์ œํ•œ ์‹œ๊ฐ„ ์ดˆ๊ณผ์‹œ ์ž๋™ ๊ฑฐ์ ˆ ์ฒ˜๋ฆฌ
  • ์ƒ๋Œ€๋ฐฉ์ด ์‚ฐ์ฑ… ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด ์‘๋‹ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์‚ฐ์ฑ… ์š”์ฒญ์— ๋Œ€ํ•œ ์œ„์น˜๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์‘๋‹ต์—๋Š” ์ œํ•œ์‹œ๊ฐ„์ด ์žˆ์–ด ์‚ฐ์ฑ… ์š”์ฒญ ๋ณด๋‚ด๋Š” ์‹œ๊ฐ„๋ถ€ํ„ฐ 1๋ถ„ ์•ˆ์— ์‘๋‹ตํ•˜์ง€ ์•Š์œผ๋ฉด ์ž๋™ ๊ฑฐ์ ˆ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
    • ์ œํ•œ์‹œ๊ฐ„์€ 1์ดˆ ๋งˆ๋‹ค ๊ฐ์†Œ์‹œํ‚ค๊ธฐ ์œ„ํ•ด Just๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฆ‰์‹œ ์ฒซ ๊ฐ’์„ ๋ฐœํ–‰ ํ›„, 1์ดˆ ๋งˆ๋‹ค publishํ•˜๋ฉด ์ œํ•œ ์‹œ๊ฐ„์ด ์ดˆ๊ณผ๋œ ๊ฒฝ์šฐ์—๋Š” ์ž๋™ ๊ฑฐ์ ˆ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

4๏ธโƒฃ ์•Œ๋ฆผ ๊ธฐ๋Šฅ

์•Œ๋ฆผ ์„œ๋ฒ„์— ์‚ฐ์ฑ… ์š”์ฒญ์„ postํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ํ”Œ๋กœ์šฐ๋กœ ๋ฉ”์ดํŠธ์—๊ฒŒ ์•Œ๋ฆผ์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

  1. receiver์˜ id ๊ฐ’์„ ํ†ตํ•ด Supabase DB์—์„œ device token์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
  2. device token์„ ์ฐพ์€ ๊ฒฝ์šฐ notification ํ…Œ์ด๋ธ”์— ์•Œ๋ฆผ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  3. APNs์— ์•Œ๋ฆผ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

๋ฉ”์ดํŠธ๊ฐ€ 1๋ถ„ ์•ˆ์— ์‚ฐ์ฑ… ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ์„œ๋ฒ„์—์„œ ๊ฑฐ์ ˆํ•ฉ๋‹ˆ๋‹ค.

  1. ์‚ฐ์ฑ… ์š”์ฒญ์„ ๋ฐ›์œผ๋ฉด ๊ฑฐ์ ˆํ•˜๋Š” Task๋ฅผ 1๋ถ„ ๋’ค ์Šค์ผ€์ค„์— ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.
  2. 1๋ถ„ ๋’ค, ๊ฑฐ์ ˆ ๋กœ์ง ์‹คํ–‰ ์ง์ „ walk_request ํ…Œ์ด๋ธ”์„ ์กฐํšŒํ•ด ์š”์ฒญ์˜ ์ƒํƒœ๊ฐ€ pending์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  3. ์š”์ฒญ์˜ ์ƒํƒœ๊ฐ€ pending์ธ ๊ฒฝ์šฐ ์‚ฐ์ฑ… ์š”์ฒญ ๊ฑฐ์ ˆ ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๐ŸŒˆ ๐Ÿ“ ๋ฌธ์„œ

ํŒ€๋…ธ์…˜ Wiki ๋””์ž์ธ ํ”„๋กœ๋•ํŠธ ๋ฐฑ๋กœ๊ทธ

๋งˆ์ง€๋ง‰ ์ˆ˜์ •์ผ 2024.12.06.