๐ŸŒ ์›น ์‚ฌ์šฉ๋ฒ•

๐ŸŒ ์›น ์‚ฌ์šฉ๋ฒ•

ํ‰์†Œ ๋งค๋ฌผ / ๋งŒ๋‚จ / ๋งค์นญ ๊ด€๋ฆฌ๋Š” ๋ชจ๋‘ ์—ฌ๊ธฐ์—์„œ. ๋ชจ๋ฐ”์ผ ํฐ์—์„œ๋„ ์ž˜ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค (ํ•˜๋‹จ ํƒญ๋ฐ”).

๐Ÿ’ก ๊ฟ€ํŒ ํ•„๋…: ํ™ˆ ํ™”๋ฉด์— ์ถ”๊ฐ€ํ•˜๊ธฐ (์•ฑ์ฒ˜๋Ÿผ ์“ฐ๊ธฐ)

ํฐ์—์„œ ๋งค๋ฒˆ URL ์น  ํ•„์š” ์—†์ด ํ™ˆ ํ™”๋ฉด์— ํ•‘ํฌ ํ•˜ํŠธ ์•„์ด์ฝ˜ ๐Ÿ’— ์ถ”๊ฐ€ํ•ด๋‘๋ฉด ์ผ๋ฐ˜ ์•ฑ์ฒ˜๋Ÿผ ์ผœ๊ธฐ/๋„๊ธฐ ๊ฐ€๋Šฅ.

ํ™ˆ ํ™”๋ฉด์— ์ถ”๊ฐ€ ๋‹จ๊ณ„๋ณ„

iOS (์‚ฌํŒŒ๋ฆฌ)

  1. ์‚ฌํŒŒ๋ฆฌ์—์„œ meetcute URL ์ ‘์† (์˜ˆ: https://abc.trycloudflare.com)
  2. ํ•˜๋‹จ ๊ฐ€์šด๋ฐ ๊ณต์œ  ๋ฒ„ํŠผ โฌ†๏ธ
  3. ์Šคํฌ๋กค โ†’ "โž• ํ™ˆ ํ™”๋ฉด์— ์ถ”๊ฐ€"
  4. ์ด๋ฆ„ ํ™•์ธ โ†’ ์ถ”๊ฐ€

Android (ํฌ๋กฌ)

  1. ํฌ๋กฌ์—์„œ URL ์ ‘์†
  2. ์šฐ์ƒ๋‹จ โ‹ฎ โ†’ "ํ™ˆ ํ™”๋ฉด์— ์ถ”๊ฐ€"

์ผ๋ฐ˜ ์ฑ…๊ฐˆํ”ผ๋ž‘ ๋ญ๊ฐ€ ๋‹ค๋ฅธ๊ฐ€์š”?

  • URL ๋ฐ”๊ฐ€ ์•ˆ ๋ณด์ž„ (ํ’€์Šคํฌ๋ฆฐ)
  • ํ•‘ํฌ ํ•˜ํŠธ ๐Ÿ’— ์•„์ด์ฝ˜
  • ์•ฑ ์Šค์œ„์ฒ˜์— ๋”ฐ๋กœ ์นด๋“œ๋กœ ๋– ์„œ ๋‹ค๋ฅธ ์•ฑ ์ „ํ™˜ ๋น ๋ฆ„
  • ๋ชจ๋ฐ”์ผ ๋‹คํฌ๋ชจ๋“œ / ์„ธ์ดํ”„์—์–ด๋ฆฌ์–ด ์ž๋™ ์ธ์‹

โš ๏ธ ์•Œ์•„๋‘˜ ์ 

  • URL ์ด ๋ฐ”๋€Œ๋ฉด (cloudflared ์žฌ์‹œ์ž‘ ์‹œ quick mode ๋“ฑ) ์•„์ด์ฝ˜์€ ์˜› URL ๋กœ ๊ฐ€์„œ "์‚ฌ์ดํŠธ ๋ชป ์ฐพ์Œ" ๋œธ
  • URL ๋ฐ”๋€Œ๋ฉด ํ…”๋ ˆ๊ทธ๋žจ์œผ๋กœ ์ž๋™ ์•Œ๋ฆผ ์˜ด โ€” ๊ทธ๋•Œ ์ƒˆ URL ๋กœ ๋‹ค์‹œ "ํ™ˆ ํ™”๋ฉด์— ์ถ”๊ฐ€" ํ•˜๋ฉด ๋จ
  • ์˜๊ตฌ URL ์“ฐ๋ ค๋ฉด named tunnel ์…‹์—… (์šด์˜ ๊ฐ€์ด๋“œ โ†’ ์™ธ๋ถ€ ๋…ธ์ถœ ์ฐธ์กฐ)

1. ๋ฉ”๋‰ด ํ•œ๋ˆˆ์—

์œ„์น˜ ๋ฌด์—‡
๐Ÿ  ํ™ˆ (/) ๋Œ€์‹œ๋ณด๋“œ ยท ์‹ ๊ทœ/์ž ์ž๋Š” ๋งค๋ฌผ ยท ์ง„ํ–‰ ์ค‘ ๋งค์นญ ยท ์ตœ๊ทผ ํ™œ๋™
๐Ÿ‘ฅ ๋งค๋ฌผ (/persons) ๋“ฑ๋ก/๊ฒ€์ƒ‰/ํ•„ํ„ฐ/์ƒํƒœ ๋ฑƒ์ง€
๐Ÿ’ž ๋งŒ๋‚จ (/encounters) ๋ชจ๋“  ๋งŒ๋‚จ ๊ธฐ๋ก + ๊ฒฐ๊ณผ๋ณ„ ํ•„ํ„ฐ
๐Ÿ”€ ํ˜ธํ™˜์„ฑ (/compatibility) ๋‘ ๋งค๋ฌผ ๋น ๋ฅธ ๋น„๊ต
๐Ÿ“จ ์š”์ฒญ (/requests) ๋‹ค๋ฅธ ๋งˆ๋‹ด๋šœํ•œํ…Œ ๋ณด๋‚ธ/๋ฐ›์€ ์†Œ๊ฐœ ์š”์ฒญ
๐Ÿ‘ค ๋‚ด์ •๋ณด (/settings) ๋‹‰๋„ค์ž„, ํ…”๋ ˆ๊ทธ๋žจ, DB ์ƒํƒœ
๋งค๋‰ด์–ผ (/manual) ์ด ๋ฌธ์„œ

2. ๋งค๋ฌผ(=์†Œ๊ฐœํ•ด์ค„ ์‚ฌ๋žŒ) ๋“ฑ๋ก

๋“ฑ๋ก ํ๋ฆ„

  1. ๋งค๋ฌผ ๋ชฉ๋ก โ†’ + ์ƒˆ ๋งค๋ฌผ
  2. ์„ฑ๋ณ„ (๋“ฑ๋ก ํ›„ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€ โ€” public_id ๋ฐœ๊ธ‰ ๊ธฐ์ค€)
  3. ํ•„์ˆ˜ 5์นธ: ์ด๋ฆ„ยท์‚ฌ๋Š”๊ณณยท์ง์žฅยท๋‚˜์ดยทํ‚ค
  4. ์‚ฌ์ง„ 1~5์žฅ (jpg/png/webp/heic โ€” EXIF ์ž๋™ ํšŒ์ „)
  5. ์ด์ƒํ˜• / ๋ฉ”๋ชจ๋Š” "์ถ”๊ฐ€ ์ •๋ณด (์„ ํƒ)" ํŽผ์ณ์„œ ์ž…๋ ฅ ๋˜๋Š” ๋“ฑ๋ก ํ›„ ์ˆ˜์ •์—์„œ

ID ๊ทœ์น™

  • M-001 / F-001 / X-001 ํ˜•์‹์œผ๋กœ ์ž๋™ ๋ฐœ๊ธ‰
  • ๊ฐ™์€ ์„ฑ๋ณ„ ๋‚ด์—์„œ max+1, ์‚ญ์ œํ•ด๋„ ์žฌ์‚ฌ์šฉ ์•ˆ ๋จ

์ด๋ฆ„(๋ฉ”๋ชจ์šฉ) โ€” ๋‹ค๋ฅธ ๋งˆ๋‹ด๋šœํ•œํ…Œ ์•ˆ ๋ณด์—ฌ์š”

  • "์ด๋ฆ„" ํ•„๋“œ๋Š” ๋ณธ์ธ์ด ๋ถ€๋ฅด๊ธฐ ํŽธํ•œ ๋ฉ”๋ชจ์šฉ
  • owner ๋ณธ์ธ๊ณผ ์ฑ…์ž„์ž๋งŒ ํ‘œ์‹œ (๋‹ค๋ฅธ ๋งˆ๋‹ด๋šœ ํ™”๋ฉด์—” public_id ๋งŒ)
  • ์‹ค๋ช… ๊ทธ๋Œ€๋กœ ๋ฐ•์•„๋„ ๋ฌด๋ฐฉ (๋‹ค๋ฅธ ์‚ฌ๋žŒํ•œํ… ์•ˆ ๋ณด์ž„)

3. ๋งค๋ฌผ ์ƒํƒœ (์ž๋™ ๊ณ„์‚ฐ)

๋ฑƒ์ง€ ํŒ๋‹จ ๊ธฐ์ค€
๐ŸŸข ์†Œ๊ฐœ ๊ฐ€๋Šฅ ๋งŒ๋‚จ ๊ธฐ๋ก ์—†๊ฑฐ๋‚˜ ๋ชจ๋‘ ์ข…๋ฃŒ
๐ŸŸก ์ง„ํ–‰ ์ค‘ PENDING/CONTINUING ๋งŒ๋‚จ 1๊ฐœ ์ด์ƒ
๐Ÿ’— ๋งค์นญ๋จ MATCHED ๋งŒ๋‚จ 1๊ฐœ ์ด์ƒ

์ƒํƒœ๋Š” ์ €์žฅ X ยท ํ•ญ์ƒ ๋งŒ๋‚จ ๊ธฐ๋ก์œผ๋กœ๋ถ€ํ„ฐ ์ž๋™ ๊ณ„์‚ฐ. ๋งค๋ฌผ ์ˆ˜์ •์œผ๋กœ ์ง์ ‘ ๋ชป ๋ฐ”๊ฟˆ.

4. ๋งŒ๋‚จ ๊ธฐ๋ก (Encounter)

์ƒˆ ๋งŒ๋‚จ

  • /encounters/new ๋˜๋Š” ๋งค๋ฌผ ์ƒ์„ธ์˜ + ์ƒˆ ๋งŒ๋‚จ
  • ๋‘ ๋งค๋ฌผ ์„ ํƒ + ๋งŒ๋‚œ ๋‚ ์งœ + ๊ฒฐ๊ณผ(PENDING ๊ธฐ๋ณธ) + ๋ฉ”๋ชจ

๊ฒฐ๊ณผ ์ข…๋ฅ˜

๊ฐ’ ์˜๋ฏธ ์ƒํƒœ ์˜ํ–ฅ
PENDING ๋งŒ๋‚จ ์žกํž˜ / ๊ฒฐ๊ณผ ๋ฏธ์ • โ†’ ์ง„ํ–‰ ์ค‘
CONTINUING ๊ณ„์† ๋งŒ๋‚˜๋Š” ์ค‘ โ†’ ์ง„ํ–‰ ์ค‘
MATCHED ๋งค์นญ ์„ฑ๊ณต (์‚ฌ๊ท€๊ธฐ๋กœ) โ†’ ๋งค์นญ๋จ
ENDED_A A๊ฐ€ ๊ฑฐ์ ˆ (์ด๋ ฅ๋งŒ)
ENDED_B B๊ฐ€ ๊ฑฐ์ ˆ (์ด๋ ฅ๋งŒ)
MUTUAL_END ์–‘์ชฝ ๋‹ค ๋…ธ (์ด๋ ฅ๋งŒ)

๊ฒฐ๊ณผ ๋ณ€๊ฒฝ ์ด๋ ฅ (๐Ÿ“œ ์ž๋™)

outcome ์ด ๋ฐ”๋€” ๋•Œ๋งˆ๋‹ค ์ž๋™ ์ด๋ฒคํŠธ 1๊ฑด์”ฉ ๊ธฐ๋ก โ€” ๋งค๋ฌผ ์ƒ์„ธ / ๋งŒ๋‚จ ํŽธ์ง‘ ํŽ˜์ด์ง€์— ์‹œ๊ฐ„์ˆœ ํƒ€์ž„๋ผ์ธ. - ๋ณ€๊ฒฝ ์‚ฌ์œ  ๋ฉ”๋ชจ๋ฅผ ์ž…๋ ฅ๋ž€์— ์งง๊ฒŒ ์ ์œผ๋ฉด ๊ฐ™์ด ๋ฐ•ํž˜ - notes-only ์ˆ˜์ •์€ ์ด๋ฒคํŠธ ์•ˆ ๋งŒ๋“ฆ (์†Œ์Œ ๋ฐฉ์ง€) - ๋ˆ„๊ฐ€ ๋ฐ”๊ฟจ๋Š”์ง€ ๋‹‰๋„ค์ž„์œผ๋กœ ๊ธฐ๋ก

์˜ˆ: "PENDING (์ตœ์ดˆ ๋“ฑ๋ก) โ†’ CONTINUING (1์ฐจ ์ž˜๋จ) โ†’ MATCHED (์‚ฌ๊ท€๊ธฐ๋กœ ํ•จ)" ๊ฐ™์€ ์Šคํ† ๋ฆฌ๊ฐ€ ์‹œ๊ฐ„์ˆœ์œผ๋กœ ์Œ“์ž„.

5. ๋งค๋ฌผ ํ™œ๋™ ์ถ”์ 

๋งค๋ฌผ ์ƒ์„ธ์— ์ž๋™ ํ‘œ์‹œ: - ์ด ๋งŒ๋‚จ / ๋งค์นญ / ์ง„ํ–‰ ์ค‘ / ๋งˆ์ง€๋ง‰ ํ™œ๋™ ์นด๋“œ - ๋งŒ๋‚จ ์ด๋ ฅ ํƒ€์ž„๋ผ์ธ - ๐Ÿ“ ์ •๋ณด ๋ณ€๊ฒฝ ์ด๋ ฅ โ€” age/์‚ฌ๋Š”๊ณณ/์ง์žฅ/ํ‚ค/์ด์ƒํ˜•/๋ฉ”๋ชจ/์ด๋ฆ„ ์ˆ˜์ • ์‹œ ์ž๋™ ์Šค๋ƒ…์ƒท, beforeโ†’after ์ƒ‰๊น” ํ‘œ์‹œ, ํŽธ์ง‘์ž ๋‹‰๋„ค์ž„

๋งค๋ฌผ ๋ชฉ๋ก ํ•„ํ„ฐ

์ƒ๋‹จ /persons ํ•„ํ„ฐ: - ํ™œ๋™: ์ง„ํ–‰ ์ค‘ / 30์ผ+ ๋ฏธํ™œ๋™ / ํ•œ ๋ฒˆ๋„ ๋งŒ๋‚จ X - ์ •๋ ฌ: ๋“ฑ๋ก์ˆœ / ์ตœ๊ทผ ํ™œ๋™์ˆœ / ์˜ค๋ž˜ ์ž ์ž๋Š”์ˆœ - owner: ๋‚ด ๋งค๋ฌผ / ๋ฏธ์ง€์ • / ํŠน์ • ๋งˆ๋‹ด๋šœ

5.5 ๋งค๋ฌผ ๊ณต๊ฐœ ๋ฒ”์œ„ ๐Ÿ”’

๋งค๋ฌผ ๋“ฑ๋กํ•œ ์‚ฌ๋žŒ(owner)์ด ๋งค๋ฌผ ์ˆ˜์ • ํ™”๋ฉด์—์„œ ๊ณต๊ฐœ ๋ฒ”์œ„๋ฅผ ์ •ํ•  ์ˆ˜ ์žˆ์–ด์š”:

  • ๋ชจ๋‘ ๊ณต๊ฐœ (๊ธฐ๋ณธ) โ€” ๋ชจ๋“  ๋งˆ๋‹ด๋šœ๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ์Œ
  • ํŠน์ • ๋งˆ๋‹ด๋šœ๋งŒ โ€” ์„ ํƒํ•œ ๋งˆ๋‹ด๋šœ + ๋‚˜ + ์ฑ…์ž„์ž๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ

๋น„๊ณต๊ฐœ๋กœ ์„ค์ •ํ•˜๋ฉด: - ๋งค๋ฌผ ๋ชฉ๋ก์—์„œ ์ œ์™ธ๋˜์–ด ๋ณด์ž„ (ํ—ˆ๋ฝ ์•ˆ ๋œ admin) - ๋งค๋ฌผ ์ƒ์„ธ ํŽ˜์ด์ง€ 403 - ๋งค๋ฌผ ์ƒ์„ธ ํ—ค๋”์— ๐Ÿ”’ ๋น„๊ณต๊ฐœ ๋ฑƒ์ง€ (owner / ์ฑ…์ž„์ž์—๊ฒŒ๋งŒ ํ‘œ์‹œ)

๊ณต๊ฐœ ๋ฒ”์œ„ ๋ณ€๊ฒฝ์€ owner ๋ณธ์ธ ๋˜๋Š” ์ฑ…์ž„์ž๋งŒ ๊ฐ€๋Šฅ. ๋‹ค๋ฅธ ๋งˆ๋‹ด๋šœ๋Š” ์„ค์ • UI ์ž์ฒด ์•ˆ ๋ณด์ž„.

6. ๋‹ค๋ฅธ ๋งˆ๋‹ด๋šœ์˜ ๋งค๋ฌผ์— ์†Œ๊ฐœ ์š”์ฒญ ๋ณด๋‚ด๊ธฐ ๐Ÿ“จ

๊ฐ™์ด ์“ฐ๋Š” ๋งˆ๋‹ด๋šœ๊ฐ€ 2๋ช…+ ์ผ ๋•Œ: 1. ๋‹ค๋ฅธ ๋งˆ๋‹ด๋šœ ์†Œ์œ  ๋งค๋ฌผ ์ƒ์„ธ โ†’ ๐Ÿ“จ ์†Œ๊ฐœ ์š”์ฒญ ๋ฒ„ํŠผ 2. ๋‚ด ๋งค๋ฌผ ์ค‘ ์–ด๋А ๊ฒƒ ์†Œ๊ฐœ? + ๋ฉ”๋ชจ โ†’ ๋ณด๋‚ด๊ธฐ 3. ์ƒ๋Œ€ ๋งˆ๋‹ด๋šœ๊ฐ€ /requests ์—์„œ ํ™•์ธ โ†’ ๋ณธ์ธ์ด IRL๋กœ ๋งค๋ฌผ์— ๋ฌผ์–ด๋ด„ 4. ์ˆ˜๋ฝ โ†’ ๋งŒ๋‚จ ๊ธฐ๋ก(PENDING) ์ž๋™ ์ƒ์„ฑ, ์–‘์ชฝ ๋งค๋ฌผ ํƒ€์ž„๋ผ์ธ์— ์ฆ‰์‹œ ๋…ธ์ถœ 5. ๊ฑฐ์ ˆ โ†’ ์‚ฌ์œ  ๋ฉ”๋ชจ์™€ ํ•จ๊ป˜ ๋ณด๋‚ธ์ด์—๊ฒŒ ์•Œ๋ฆผ

์š”์ฒญ ์ƒํƒœ: PENDING / ACCEPTED / DECLINED / WITHDRAWN

์ž๊ธฐ ๋งค๋ฌผ๋ผ๋ฆฌ ๋งค์นญ์€ ์š”์ฒญ X โ€” ๊ทธ๋ƒฅ /encounters/new ์—์„œ ๋‘ ๋งค๋ฌผ ๊ณจ๋ผ ๋ฐ”๋กœ ๊ธฐ๋ก.

7. ํ˜ธํ™˜์„ฑ ์ฒดํฌ

/compatibility ๋˜๋Š” ๋งค๋ฌผ ์ƒ์„ธ์˜ ํ˜ธํ™˜์„ฑ ์ฒดํฌ: - ๋‘ ๋งค๋ฌผ ์„ ํƒ - ์ด์ „ ๋งŒ๋‚จ ๊ธฐ๋ก / ์„ฑ๋ณ„ / ๋‚˜์ด ์ฐจ์ด / ํ‚ค ์ฐจ์ด ๋ถ„์„ - "์ด ๋‘˜๋กœ ๋งŒ๋‚จ ๊ธฐ๋ก ๋งŒ๋“ค๊ธฐ" ๋ฒ„ํŠผ์œผ๋กœ ๋ฐ”๋กœ ๋“ฑ๋ก

8. ๊ฒ€์ƒ‰

๋งค๋ฌผ ๋ชฉ๋ก ๊ฒ€์ƒ‰์ฐฝ: ID / ์ด๋ฆ„ / ์ง€์—ญ / ์ง์žฅ ๋ถ€๋ถ„ ์ผ์น˜.

9. ๋งค๋ฌผ ์ˆ˜์ • ๊ถŒํ•œ

  • ๋“ฑ๋กํ•œ admin (owner) ๋งŒ ์ˆ˜์ •/์‚ญ์ œ
  • ์ฑ…์ž„์ž(๐Ÿ‘‘)๋Š” ๋ชจ๋“  ๋งค๋ฌผ ์ˆ˜์ •/์‚ญ์ œ (override)
  • ๋ฏธ์ง€์ • ๋งค๋ฌผ์€ ๋ˆ„๊ตฌ๋‚˜ (๋‹ด์•„๊ฐ€๊ฒŒ)
  • ๊ถŒํ•œ ์—†๋Š” ์‚ฌ๋žŒ์—๊ฒ ๐Ÿ”’ ํ‘œ์‹œ

10. ์‚ญ์ œ ์ •์ฑ…

๋งค๋ฌผ ์‚ญ์ œ โ†’ ํ•˜๋“œ ์‚ญ์ œ

  • DB row + ์‚ฌ์ง„ ํŒŒ์ผ + ์ •๋ณด ๋ณ€๊ฒฝ ์ด๋ ฅ ์˜๊ตฌ ์ œ๊ฑฐ
  • ๋งŒ๋‚จ ๊ธฐ๋ก์€ ๋ณด์กด โ€” FK ๋Š๊ณ  public_id (deleted) ์Šค๋ƒ…์ƒท์œผ๋กœ ์ทจ์†Œ์„  ํ‘œ์‹œ
  • ํ•œ ๋ฒˆ ์‚ญ์ œํ•˜๋ฉด ๋ณต๊ตฌ X. ๋ณด๊ด€ํ•  ๊ฑฐ๋ฉด ๊ทธ๋ƒฅ ๋‘์„ธ์š”.

๋งŒ๋‚จ ๊ธฐ๋ก ์‚ญ์ œ

  • ์ž˜๋ชป ์ž…๋ ฅํ•œ ๊ฒฝ์šฐ๋งŒ
  • ๊ฒฐ๊ณผ ๋ณ€๊ฒฝ ์ด๋ ฅ(EncounterEvent)๋„ ํ•จ๊ป˜ ์‚ญ์ œ