Skip to content

Latest commit

ย 

History

History
107 lines (76 loc) ยท 4.13 KB

File metadata and controls

107 lines (76 loc) ยท 4.13 KB

BlockBlock ํ”„๋กœ์ ํŠธ ์š”์•ฝ

์ด ํ”„๋กœ์ ํŠธ๋Š” ๋™์•„๋ฆฌ ์šด์˜์„ ์˜จ์ฒด์ธ์—์„œ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.
๊ธฐ์ˆ˜๋ณ„ ํด๋Ÿฝ ์ƒํƒœ, ๋ฉค๋ฒ„ ๋“ฑ๋ก, ์ถœ์„ ๊ด€๋ฆฌ, ๊ทธ๋ฆฌ๊ณ  ๊ธฐ์ˆ˜ ์ „ํ™˜ ์ ˆ์ฐจ๋ฅผ Move ์Šค๋งˆํŠธ์ปจํŠธ๋ž™ํŠธ๋กœ ์ •์˜ํ•˜๊ณ , ํ”„๋ก ํŠธ์—”๋“œ(React/TypeScript)์—์„œ ํšŒ์žฅ/์šด์˜์ง„/์ผ๋ฐ˜ ๋ถ€์›์ด ๊ฐ ์—ญํ• ์— ๋งž๋Š” ์—…๋ฌด๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ๋ชฉํ‘œ๋Š” ์•„๋ž˜ ์„ธ ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

  1. ๊ธฐ์ˆ˜๋ณ„ ๋™์•„๋ฆฌ ์ƒํƒœ์˜ ๋‹จ์ผ ์†Œ์Šคํ™”
    BlockBlockRegistry๊ฐ€ ํ˜„์žฌ ๊ธฐ์ˆ˜์™€ ํด๋Ÿฝ ID๋ฅผ ๊ธฐ์ค€์ ์œผ๋กœ ์ œ๊ณตํ•˜๊ณ , ๋ชจ๋“  ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋Š” ์ด ๊ธฐ์ค€์„ ๋”ฐ๋ผ๊ฐ‘๋‹ˆ๋‹ค.

  2. ์šด์˜ ํ”„๋กœ์„ธ์Šค์˜ ๋ช…์‹œ์  ๋‹จ๊ณ„ํ™”
    ๋ฉค๋ฒ„ ๋“ฑ๋ก โ†’ ์ถœ์„ ๊ด€๋ฆฌ โ†’ ์‹œํŠธ ์ €์žฅ โ†’ ๊ธฐ์ˆ˜ ์ข…๋ฃŒ/์ „ํ™˜์„ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ๋‹จ์œ„์˜ ๋‹จ๊ณ„๋กœ ๋ถ„๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

  3. ํ”„๋ก ํŠธ์™€ ์˜จ์ฒด์ธ์˜ ์ง€์† ๋™๊ธฐํ™”
    ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ID๋Š” ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐฑ์‹ ๋˜์–ด, ์ƒˆ๋กœ๊ณ ์นจ ์‹œ์—๋„ ์ตœ์‹  ์ƒํƒœ๋กœ ๋ณต๊ตฌ๋ฉ๋‹ˆ๋‹ค.


1) ์„œ๋น„์Šค ๊ตฌ์กฐ (ํฐ ํ๋ฆ„)

  1. ํด๋Ÿฝ ์ƒ์„ฑ ๋ฐ ์ƒํƒœ ๋ณด๊ด€
    BlockBlockRegistry๊ฐ€ ํ˜„์žฌ ๊ธฐ์ˆ˜/ํด๋Ÿฝ ID๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

  2. ๋ฉค๋ฒ„ ๋“ฑ๋ก ๋‹จ๊ณ„
    ํšŒ์žฅ์ด MemberRegistry๋ฅผ ์ƒ์„ฑ โ†’ ๋ถ€์›์ด MemberInfo๋ฅผ ์ œ์ถœ โ†’ ํšŒ์žฅ์ด ๊ฒ€ํ†  ํ›„ ํด๋Ÿฝ์— ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค.

  3. ์ถœ์„ ๊ด€๋ฆฌ ๋‹จ๊ณ„
    ํšŒ์žฅ์ด AttendanceRegistry๋ฅผ ์ƒ์„ฑ โ†’ ๋ถ€์›์ด ์ถœ์„ ๋“ฑ๋ก โ†’ ๋งˆ๊ฐ ํ›„ ์ง€๊ฐ/๊ฒฐ์„/๋ณ‘๊ฒฐ ๋ถ„๋ฅ˜ โ†’ ์ถœ์„ ์‹œํŠธ ์ €์žฅ.

  4. ๊ธฐ์ˆ˜ ์ „ํ™˜ ๋‹จ๊ณ„
    ํšŒ์žฅ๋‹จ์ด ํ˜„์žฌ ํด๋Ÿฝ ์ข…๋ฃŒ ํˆฌํ‘œ โ†’ ๋‹ค์Œ ํšŒ์žฅ ์ง€์ • โ†’ ๊ธฐ์ˆ˜ ์ „ํ™˜ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ƒ์„ฑ ๋ฐ ํˆฌํ‘œ โ†’ ๋‹ค์Œ ๊ธฐ์ˆ˜ ํด๋Ÿฝ ์ƒ์„ฑ.


2) Move ๋ชจ๋“ˆ ๊ตฌ์กฐ (์—ญํ• /์ฑ…์ž„)

blockblock::blockblock

ํ•ต์‹ฌ ์˜ค๋ธŒ์ ํŠธ์™€ ์—ญํ•  ๋“ฑ๋ก ๋กœ์ง์„ ๋‹ด์Šต๋‹ˆ๋‹ค.

  • BlockBlockYonsei: ๋™์•„๋ฆฌ ์ƒ์ง• (Immutable)
  • BlockBlockRegistry: ํ˜„์žฌ/์ด์ „ ๊ธฐ์ˆ˜ ๋ฐ ํด๋Ÿฝ ์ƒํƒœ ์ €์žฅ
  • BlockBlockClub: ํŠน์ • ๊ธฐ์ˆ˜ ํด๋Ÿฝ ์˜ค๋ธŒ์ ํŠธ
  • ์—ญํ•  ๋“ฑ๋ก: register_vice_president, register_treasurer, register_planning_team_member, register_marketing_team_member
  • ์ถœ์„ ์‹œํŠธ ์ €์žฅ: store_attendance_sheet_to_blockblockclub

blockblock::members

๋ฉค๋ฒ„ ์ •๋ณด ์ƒ์„ฑ์šฉ ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค.

  • MemberInfo: ์ด๋ฆ„/์ „๊ณต/์ฃผ์†Œ/๊ธฐ์ˆ˜ ์ •๋ณด ํฌํ•จ
  • create_member_info, create_member_info_by_president_or_vice_president

blockblock::member_registry

๋ฉค๋ฒ„ ๋“ฑ๋ก ์š”์ฒญ์„ ์ˆ˜์ง‘ํ•˜๊ณ , ๊ฒ€์ฆ๋œ ์ฃผ์†Œ๋ฅผ ํด๋Ÿฝ์— ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค.

  • MemberRegistry์— club_id ํฌํ•จ
  • ์ƒ์„ฑ/์‚ญ์ œ ์ด๋ฒคํŠธ emit (ํ”„๋ก ํŠธ์—์„œ ID ๋™๊ธฐํ™”์— ์‚ฌ์šฉ)

blockblock::attendance_registry

์ถœ์„ ๋“ฑ๋ก/๋งˆ๊ฐ/๋ถ„๋ฅ˜๋ฅผ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

  • AttendanceRegistry์— club_id ํฌํ•จ
  • ์ƒ์„ฑ/์‚ญ์ œ ์ด๋ฒคํŠธ emit
  • ์ถœ์„ ์‹œํŠธ๋กœ ๋ณ€ํ™˜ ํ›„ ํด๋Ÿฝ์— ์ €์žฅ

blockblock::next_term_registry

ํด๋Ÿฝ ์ข…๋ฃŒ์™€ ๊ธฐ์ˆ˜ ์ „ํ™˜์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

  • ClosingCurrentClubVoteRegistry: ํ˜„์žฌ ํด๋Ÿฝ ์ข…๋ฃŒ ํˆฌํ‘œ
  • NextTermRegistry: ๋‹ค์Œ ๊ธฐ์ˆ˜ ์ „ํ™˜ ํˆฌํ‘œ
  • ์ƒ์„ฑ/์‚ญ์ œ ์ด๋ฒคํŠธ emit

3) ํ”„๋ก ํŠธ์—”๋“œ ๊ตฌ์กฐ (ํŽ˜์ด์ง€๋ณ„ ์—ญํ• )

Dashboard

  • ํ˜„์žฌ ํด๋Ÿฝ ์—ญํ•  ์š”์•ฝ
  • ์ถœ์„ ์‹œํŠธ ๋ชฉ๋ก(๋‚ ์งœ/์„ธ์…˜ ๊ธฐ์ค€, ์ ‘๊ธฐ/ํŽผ์น˜๊ธฐ)
  • ๋ฉค๋ฒ„/์ถœ์„ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ƒ์„ฑ ๋“ฑ ๋น ๋ฅธ ์ž‘์—…

MemberRegistration

  • ๋ถ€์›์ด ๋ฉค๋ฒ„ ๋“ฑ๋ก ์š”์ฒญ ์ œ์ถœ
  • ํšŒ์žฅ ๊ฒ€ํ†  ํ›„ ํด๋Ÿฝ ๋ฐ˜์˜
  • ์šด์˜์ง„ ๋“ฑ๋ก(๋ถ€ํšŒ์žฅ/์ด๋ฌด/๊ธฐํš/ํ™๋ณด)

Attendance

  • ํšŒ์žฅ์ด ์ถœ์„ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ƒ์„ฑ
  • ๋ถ€์›์ด ์ถœ์„ ๋“ฑ๋ก(์ด๋ฆ„/์ „๊ณต ํฌํ•จ)
  • ํšŒ์žฅ์ด ๋งˆ๊ฐ ํ›„ ์ง€๊ฐ/๊ฒฐ์„/๋ณ‘๊ฒฐ ๋ถ„๋ฅ˜
  • ์ถœ์„ ์‹œํŠธ ์ €์žฅ

TermTransition

  • ํ˜„์žฌ ํด๋Ÿฝ ์ข…๋ฃŒ ํˆฌํ‘œ/์ข…๋ฃŒ
  • ๊ธฐ์ˆ˜ ์ „ํ™˜ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ƒ์„ฑ ๋ฐ ํˆฌํ‘œ
  • ๋‹ค์Œ ๊ธฐ์ˆ˜ ํด๋Ÿฝ ์ƒ์„ฑ

4) ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ID ๋™๊ธฐํ™”

ํ”„๋ก ํŠธ๋Š” queryEvents๋ฅผ ์ด์šฉํ•ด ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ID๋ฅผ ์ตœ์‹ ์œผ๋กœ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

  • ๋Œ€์ƒ: MemberRegistry, AttendanceRegistry, NextTermRegistry, ClosingCurrentClubVoteRegistry
  • BlockBlockRegistry.current_club ๊ธฐ์ค€์œผ๋กœ club_id ํ•„ํ„ฐ๋ง
  • ์‚ญ์ œ ์ด๋ฒคํŠธ ๊ฐ์ง€ ์‹œ ํ•ด๋‹น ID๋ฅผ ์ž๋™ ์ดˆ๊ธฐํ™”

5) ์ตœ์‹  ๋ฐฐํฌ ID

src/constants.ts์— ์ตœ์‹  ํŒจํ‚ค์ง€ ๋ฐ ์˜ค๋ธŒ์ ํŠธ ID๊ฐ€ ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค.