Skip to content

๐Ÿ“— 10.29 ์ฃผ์ œ & ์š”๊ตฌ์‚ฌํ•ญ ์ž‘์„ฑ

Sujong Kwak edited this page Nov 4, 2024 · 1 revision

๐Ÿ“‹ ์ฃผ์ œ ์„ ์ • & ๊ธฐํš/์š”๊ตฌ์‚ฌํ•ญ ์ž‘์„ฑ

1. ํŒ€์› ๊ฐœ์ธ ๋ชฉํ‘œ ๊ณต์œ 

  • ์ˆ˜์ •: CRDT ๊ตฌํ˜„
  • ๋ฏธ๋ผ: CRDT ์ง‘์ค‘, ์บ”๋ฒ„์Šค๋Š” ๋ถ€์ฐจ์ 
  • ํƒœ์—ฐ: CRDT ์œ„์ฃผ
  • ๋‹ค์†”: ์ˆœ์ˆ˜ ์บ”๋ฒ„์Šค ํƒœ๊ทธ ๊ตฌํ˜„ (ํ•„์••, ์„  ๋‘๊ป˜, ์ƒ‰์ƒ ๋“ฑ)
  • ์„ ์•„: ์บ”๋ฒ„์Šค ๊ธฐ๋Šฅ ๊ตฌํ˜„

2. ํ”„๋กœ์ ํŠธ ๋ฐฉํ–ฅ์„ฑ ๋…ผ์˜

2.1 ๊ด€์‹ฌ ์ฃผ์ œ์™€ ์˜ˆ์ƒ๋˜๋Š” ์ฑŒ๋ฆฐ์ง€

  1. ์ฃผ์ œ

    • ์ŠคํŒŒ์ด/ํ˜‘์—… ์บ์น˜๋งˆ์ธ๋“œ ๊ฒŒ์ž„: ์ž์ฒด ์ œ์ž‘ CRDT + P2P ํ†ต์‹  + ์บ”๋ฒ„์Šค API๋ฅผ ํ™œ์šฉํ•œ ๋“œ๋กœ์ž‰ ๊ธฐ๋Šฅ
  2. ์˜ˆ์ƒ๋˜๋Š” ์ฑŒ๋ฆฐ์ง€

    • ๊ธฐ์ˆ ์  ๋‚œ๊ด€: ์ง์ ‘ ๋‹ค๋Œ€๋‹ค ๊ณต๋™ ์‹ค์‹œ๊ฐ„ ํŽธ์ง‘ ๊ตฌํ˜„
    • P2P ์—ฐ๊ฒฐ์˜ ์ œ์•ฝ
      • ํด๋ผ์ด์–ธํŠธ ์„ฑ๋Šฅ ๋ฐ ์—ฐ๊ฒฐ ํ•œ๊ณ„
      • ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ ์œ ์ง€ ๋ฌธ์ œ
      • ๋‹ค์ค‘ ์—ฐ๊ฒฐ ์‹œ ๋ณ‘๋ชฉ ํ˜„์ƒ

2.2 ๊ณผ์ œ ์ˆ˜ํ–‰ ๊ณ„ํš

  1. ์ด๋ฒˆ ์ฃผ ํ•„์ˆ˜ ๊ณผ์ œ
    • ์บ”๋ฒ„์Šค ๋ฐ CRDT ๊ด€๋ จ ๊ธฐ์ดˆ ํ•™์Šต
  2. ์ด๋ฒˆ ์ฃผ ์„ ํƒ ๊ณผ์ œ
    • CRDT์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์—†์ด ์บ”๋ฒ„์Šค ํ”„๋กœํ† ํƒ€์ž… ์ œ์ž‘

2.3 ๋ฐฉํ–ฅ์„ฑ ์‹œ๋‚˜๋ฆฌ์˜ค

  1. ๊ฐœ๋ฐœ ๋กœ๋“œ๋งต

    • 1-3์ฃผ์ฐจ: CRDT ๋ฐ ๊ฒŒ์ž„ ๊ธฐ๋ณธ ๊ตฌํ˜„, ์บ”๋ฒ„์Šค API๋ฅผ ํ™œ์šฉํ•œ ๊ทธ๋ฆผํŒ ๋ฐ UI ๊ตฌํ˜„
    • 3์ฃผ์ฐจ ํ‰๊ฐ€: CRDT ๊ตฌํ˜„ ๊ฐ€๋Šฅ์„ฑ ์žฌ๊ฒ€ํ†  ํ›„ ๋ฐฉํ–ฅ์„ฑ ์ตœ์ข… ๊ฒฐ์ •
  2. ์‹œ๋‚˜๋ฆฌ์˜ค

    • CRDT ๊ตฌํ˜„ ์„ฑ๊ณต ์‹œ: ๊ฒŒ์ž„ ๊ณ ๋„ํ™” (๋ธ”๋Ÿฌํ•‘ ๋ฐ ํ˜‘์—… ์š”์†Œ ์ถ”๊ฐ€)
    • CRDT ๊ตฌํ˜„ ์–ด๋ ค์šธ ์‹œ: ์บ”๋ฒ„์Šค ๊ธฐ๋Šฅ ๊ณ ๋„ํ™” (ํ•„์••, ๋„ํ˜• ์กฐ์ž‘, ์ƒ‰ ์ฑ„์šฐ๊ธฐ ๋“ฑ)

3. ์ƒ์„ธ ๊ธฐ๋Šฅ ๋ชฉ๋ก ์ •์˜

๐Ÿ‘พ ํ”„๋กœ์ ํŠธ ๊ธฐํš ๋ฐ ๊ฒŒ์ž„ ๊ทœ์น™ ์ •์˜

3.1 Epic, Story, Task

Epic 1: ์‹ค์‹œ๊ฐ„ ๋“œ๋กœ์ž‰ ์บ”๋ฒ„์Šค

Story: ์‚ฌ์šฉ์ž๋Š” ์›น์—์„œ ์ž์œ ๋กญ๊ฒŒ ๊ทธ๋ฆผ์„ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ธฐ๋ณธ์ ์ธ ๋“œ๋กœ์ž‰ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

ID Task Priority Description
1.1.1 Canvas ๊ธฐ๋ณธ ๊ตฌ์กฐ ์„ค์ • High Canvas ์—˜๋ฆฌ๋จผํŠธ ์ƒ์„ฑ, width/height ์„ค์ •, context ์ดˆ๊ธฐํ™”
1.1.2 ๋งˆ์šฐ์Šค/ํ„ฐ์น˜ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ High ๋“œ๋ž˜๊ทธ, ํ„ฐ์น˜ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ๋ฐ ์ขŒํ‘œ ๊ณ„์‚ฐ ๊ตฌํ˜„
1.1.3 ๋“œ๋กœ์ž‰ ์ƒํƒœ ๊ด€๋ฆฌ High ๊ทธ๋ฆฌ๊ธฐ ์ƒํƒœ ๊ด€๋ฆฌ ๋ฐ ์ƒํƒœ ์—…๋ฐ์ดํŠธ ๋กœ์ง ๊ตฌํ˜„
1.1.4 ๊ธฐ๋ณธ ๊ทธ๋ฆฌ๊ธฐ ๊ธฐ๋Šฅ High ์„  ๊ทธ๋ฆฌ๊ธฐ, ์  ์ฐ๊ธฐ ๋“ฑ ๊ธฐ๋ณธ ๋“œ๋กœ์ž‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„
1.2.1 ๋„๊ตฌ ์„ ํƒ UI Medium ๋“œ๋กœ์ž‰ ๋„๊ตฌ ์„ ํƒ์„ ์œ„ํ•œ UI ์ปดํฌ๋„ŒํŠธ ๊ตฌํ˜„
1.2.2 ์—ฐํ•„ ๋„๊ตฌ ๊ตฌํ˜„ Medium ์—ฐํ•„ ๋„๊ตฌ์˜ ๋“œ๋กœ์ž‰ ๋กœ์ง ๊ตฌํ˜„
1.2.3 ์ƒ‰์ƒ ์„ ํƒ๊ธฐ Medium ์ƒ‰์ƒ ์„ ํƒ ๋ฐ ์ ์šฉ ๊ธฐ๋Šฅ ๊ตฌํ˜„
1.2.4 ์„  ๋‘๊ป˜ ์กฐ์ ˆ Medium ์„  ๋‘๊ป˜ ์กฐ์ ˆ ๊ธฐ๋Šฅ ๋ฐ UI ๊ตฌํ˜„
1.2.5 ์ง€์šฐ๊ฐœ ๊ตฌํ˜„ High ์ง€์šฐ๊ฐœ UI ๋ฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„
1.2.6 ํŽ˜์ธํŠธํ†ต ๊ตฌํ˜„ Low ํŽ˜์ธํŠธํ†ต UI ๋ฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„
1.2.7 ํ•„์•• ์กฐ์ ˆ Low ํƒœ๋ธ”๋ฆฟ: ๋‚ด์žฅ ํ•„์•• ์‹œ์Šคํ…œ ์ง€์› / ์›น: ๋งˆ์šฐ์Šค ์†๋„ ๊ธฐ๋ฐ˜
1.3.1 Undo/Redo ์Šคํƒ High ์ž‘์—… ํžˆ์Šคํ† ๋ฆฌ ์Šคํƒ ๊ตฌ์กฐ ๊ตฌํ˜„
1.3.2 ์ž‘์—… ๊ธฐ๋ก ์ €์žฅ High ๋“œ๋กœ์ž‰ ์ž‘์—… ๊ธฐ๋ก ์ €์žฅ ๋ฐ ๋ณต์› ๋กœ์ง
1.3.3 ์‚ฌ์šฉ์ž๋ณ„ ํžˆ์Šคํ† ๋ฆฌ High ๋ฉ€ํ‹ฐ์œ ์ € ํ™˜๊ฒฝ์—์„œ์˜ ํžˆ์Šคํ† ๋ฆฌ ๊ด€๋ฆฌ

Epic 2: ์‹ค์‹œ๊ฐ„ ํ˜‘์—… ๊ธฐ๋Šฅ

Story: ์‚ฌ์šฉ์ž๋“ค์ด ๋„คํŠธ์›Œํฌ ์ƒํƒœ์™€ ๊ด€๊ณ„์—†์ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋™์‹œ์— ๊ทธ๋ฆผ์„ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

ID Task Priority Description
2.1.1 WebRTC ํ”ผ์–ด ์—ฐ๊ฒฐ Critical P2P ์—ฐ๊ฒฐ ์„ค์ • ๋ฐ ์ดˆ๊ธฐํ™”
2.1.2 ์‹œ๊ทธ๋„๋ง ์„œ๋ฒ„ Critical WebRTC ์‹œ๊ทธ๋„๋ง ์„œ๋ฒ„ ๊ตฌํ˜„
2.1.3 ๋ฐ์ดํ„ฐ ์ฑ„๋„ ์„ค์ • Critical ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์œ„ํ•œ ์ฑ„๋„ ๊ตฌ์„ฑ
2.1.4 ์—ฐ๊ฒฐ ์ƒํƒœ ๊ด€๋ฆฌ High ํ”ผ์–ด ์—ฐ๊ฒฐ ์ƒํƒœ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๊ด€๋ฆฌ
2.2.1 CRDT ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ Critical ๋“œ๋กœ์ž‰์šฉ CRDT ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์„ค๊ณ„
2.2.2 ์ž‘์—… ๋™๊ธฐํ™” Critical CRDT ๊ธฐ๋ฐ˜ ์ž‘์—… ๋™๊ธฐํ™” ๊ตฌํ˜„
2.2.3 ์ถฉ๋Œ ํ•ด๊ฒฐ Critical ๋™์‹œ ํŽธ์ง‘ ์ถฉ๋Œ ํ•ด๊ฒฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„
2.2.4 ์ง€์—ฐ ์ฒ˜๋ฆฌ High ๋„คํŠธ์›Œํฌ ์ง€์—ฐ ์ƒํ™ฉ ์ฒ˜๋ฆฌ ๋กœ์ง

Epic 3: ๊ฒŒ์ž„ ์‹œ์Šคํ…œ

Story: ์‚ฌ์šฉ์ž๋“ค์ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ทธ๋ฆผ ๊ทธ๋ฆฌ๊ธฐ ๊ฒŒ์ž„์— ์ฐธ์—ฌํ•˜๊ณ  ์—ญํ• ์— ๋”ฐ๋ผ ํ”Œ๋ ˆ์ดํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

ID Task Priority Description
3.1.1 URL ์ƒ์„ฑ High ์œ ๋‹ˆํฌํ•œ ๊ฒŒ์ž„๋ฐฉ URL ์ƒ์„ฑ
3.1.2 ๊ฒŒ์ž„๋ฐฉ ๊ด€๋ฆฌ High ๊ฒŒ์ž„๋ฐฉ ์ƒ์„ฑ ๋ฐ ์ฐธ์—ฌ ๋กœ์ง, ๊ฒŒ์ž„ ์‹œ์ž‘ ๋ฐ ๊ฒŒ์ž„ ๋„์ค‘ ์žฌ์‹œ์ž‘ ๋กœ์ง
3.1.3 ๋‹‰๋„ค์ž„ ์‹œ์Šคํ…œ Medium ์‚ฌ์šฉ์ž ๋‹‰๋„ค์ž„ ์ž…๋ ฅ ๋ฐ ๊ด€๋ฆฌ
3.1.4 ์ฐธ์—ฌ์ž ๊ด€๋ฆฌ High ๊ฒŒ์ž„ ์ฐธ์—ฌ์ž ์ƒํƒœ ๊ด€๋ฆฌ
3.2.1 ์—ญํ•  ๋ฐฐ์ • High ํ”Œ๋ ˆ์ด์–ด ์—ญํ•  ํ• ๋‹น ๋กœ์ง ๊ตฌํ˜„ (๊ทธ๋ฆผ๊พผ, ๋ฐฉํ•ด๊พผ, ๊ตฌ๊ฒฝ๊พผ ๋žœ๋ค ๋ฐฐ์ •)
3.2.2 ๋ผ์šด๋“œ ๊ด€๋ฆฌ High ๊ฒŒ์ž„ ๋ผ์šด๋“œ ์ง„ํ–‰ ๋กœ์ง
3.2.3 ํƒ€์ด๋จธ Medium ๊ฒŒ์ž„ ์ œํ•œ ์‹œ๊ฐ„ ๊ด€๋ฆฌ, ๊ตฌ๊ฒฝ๊พผ์—๊ฒŒ ๋ณด์—ฌ์ค„ ๋”œ๋ ˆ์ด๋ฅผ ์ ์šฉํ•œ ๊ทธ๋ฆผ ์ „์†ก ๋กœ์ง ๊ฐœ๋ฐœ
3.2.4 ์ •๋‹ต ์‹œ์Šคํ…œ High ์ •๋‹ต ์ž…๋ ฅ ๋ฐ ๊ฒ€์ฆ ์‹œ์Šคํ…œ ๊ตฌํ˜„ - ์ •๋‹ต ์ œ์ถœ ์‹œ ์„œ๋ฒ„์™€ ํ†ต์‹ , ์ •๋‹ต ๊ฒ€์ฆ ๋กœ์ง ๊ฐœ๋ฐœ
3.3.1 ํฌ์ธํŠธ ๊ณ„์‚ฐ Medium ๊ฒŒ์ž„ ํฌ์ธํŠธ ๊ณ„์‚ฐ ๋กœ์ง
3.3.2 ์ ์ˆ˜ ์—…๋ฐ์ดํŠธ Medium ์‹ค์‹œ๊ฐ„ ์ ์ˆ˜ ๋ฐ˜์˜
3.3.3 ์ˆœ์œ„ ์‹œ์Šคํ…œ Low ํ”Œ๋ ˆ์ด์–ด ์ˆœ์œ„ ๊ด€๋ฆฌ

Epic 4: UI/UX

Story: ์‚ฌ์šฉ์ž๋“ค์ด ์ง๊ด€์ ์ด๊ณ  ๋ฐ˜์‘์„ฑ ์ข‹์€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ๊ฒŒ์ž„์„ ์ฆ๊ธธ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

ID Task Priority Description
4.1.1 ๋ฉ”์ธ ํ™”๋ฉด High ๊ฒŒ์ž„ ๋ฉ”์ธ ํ™”๋ฉด ๋ ˆ์ด์•„์›ƒ
4.1.1.5 ๋Œ€๊ธฐ ํ™”๋ฉด High ๊ฒŒ์ž„ ์‹œ์ž‘ ์ „ ๋Œ€๊ธฐ์ค‘ UI
4.1.2 ๋„๊ตฌ ์ธํ„ฐํŽ˜์ด์Šค Medium ๋“œ๋กœ์ž‰ ๋„๊ตฌ UI ๊ตฌํ˜„
4.1.3 ์ฑ„ํŒ…/์ •๋‹ต UI High ์ฑ„ํŒ… ๋ฐ ์ •๋‹ต ์ž…๋ ฅ ์ธํ„ฐํŽ˜์ด์Šค
4.1.4 ๋ฐ˜์‘ํ˜• ๋””์ž์ธ Medium ๋ชจ๋ฐ”์ผ ๋Œ€์‘ ๋ฐ˜์‘ํ˜• UI
4.2.1 ๊ฒŒ์ž„ ์ƒํƒœ ํ‘œ์‹œ High ํ˜„์žฌ ๊ฒŒ์ž„ ์ง„ํ–‰ ์ƒํƒœ ํ‘œ์‹œ
4.2.2 ํ”Œ๋ ˆ์ด์–ด ๋ชฉ๋ก Medium ์ฐธ๊ฐ€์ž ๋ชฉ๋ก ๋ฐ ์—ญํ•  ํ‘œ์‹œ
4.2.3 ํƒ€์ด๋จธ UI Medium ๊ฒŒ์ž„ ํƒ€์ด๋จธ ์‹œ๊ฐํ™”
4.2.4 ์ ์ˆ˜ํŒ Medium ๊ฒŒ์ž„ ์ค‘ ์‹ค์‹œ๊ฐ„ ์ ์ˆ˜ ํ‘œ์‹œ UI
4.2.5 ๋“ฑ์ˆ˜ํŒ High ์ ์ˆ˜ ํ•ฉ์‚ฐ ํ›„ ๋‹‰๋„ค์ž„, ๋“ฑ์ˆ˜, ์ ์ˆ˜ UI, ๋‹ค์‹œ ํ•˜๊ธฐ ๋ฒ„ํŠผ
4.3.1 ์ƒํƒœ ์•Œ๋ฆผ Low ๊ฒŒ์ž„ ์ง„ํ–‰ ์ƒํƒœ ์•Œ๋ฆผ ์‹œ์Šคํ…œ (๋ผ์šด๋“œ ์ˆ˜)
4.3.2 ์—๋Ÿฌ ์ฒ˜๋ฆฌ Medium ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ํ‘œ์‹œ ์‹œ์Šคํ…œ
4.3.3 ๋กœ๋”ฉ ํ‘œ์‹œ Low ๋กœ๋”ฉ ์ƒํƒœ ์ธ๋””์ผ€์ดํ„ฐ
4.3.4 ๋„์›€๋ง High ๊ฒŒ์ž„ ํŠœํ† ๋ฆฌ์–ผ ์‹œ์Šคํ…œ

๐Ÿ˜Ž ์›จ๋ฒ ๋ฒ ๋ฒ ๋ฒฑ

๐Ÿ‘ฎ๐Ÿป ํŒ€ ๊ทœ์น™

๐Ÿ’ป ํ”„๋กœ์ ํŠธ

๐Ÿชต ์›จ๋ฒ ๋ฒฑ ๊ธฐ์ˆ ๋กœ๊ทธ

๐Ÿช„ ๋ฐ๋ชจ ๊ณต์œ 

๐Ÿ”„ ์Šคํ”„๋ฆฐํŠธ ๊ธฐ๋ก

๐Ÿ“— ํšŒ์˜๋ก

Clone this wiki locally