์ด ํ๋ก์ ํธ๋ ๋์๋ฆฌ ์ด์์ ์จ์ฒด์ธ์์ ๊ด๋ฆฌํ๊ธฐ ์ํ ์๋น์ค์
๋๋ค.
๊ธฐ์๋ณ ํด๋ฝ ์ํ, ๋ฉค๋ฒ ๋ฑ๋ก, ์ถ์ ๊ด๋ฆฌ, ๊ทธ๋ฆฌ๊ณ ๊ธฐ์ ์ ํ ์ ์ฐจ๋ฅผ Move ์ค๋งํธ์ปจํธ๋ํธ๋ก ์ ์ํ๊ณ ,
ํ๋ก ํธ์๋(React/TypeScript)์์ ํ์ฅ/์ด์์ง/์ผ๋ฐ ๋ถ์์ด ๊ฐ ์ญํ ์ ๋ง๋ ์
๋ฌด๋ฅผ ์ํํฉ๋๋ค.
ํต์ฌ ๋ชฉํ๋ ์๋ ์ธ ๊ฐ์ง์ ๋๋ค.
-
๊ธฐ์๋ณ ๋์๋ฆฌ ์ํ์ ๋จ์ผ ์์คํ
BlockBlockRegistry๊ฐ ํ์ฌ ๊ธฐ์์ ํด๋ฝ ID๋ฅผ ๊ธฐ์ค์ ์ผ๋ก ์ ๊ณตํ๊ณ , ๋ชจ๋ ๋ ์ง์คํธ๋ฆฌ๋ ์ด ๊ธฐ์ค์ ๋ฐ๋ผ๊ฐ๋๋ค. -
์ด์ ํ๋ก์ธ์ค์ ๋ช ์์ ๋จ๊ณํ
๋ฉค๋ฒ ๋ฑ๋ก โ ์ถ์ ๊ด๋ฆฌ โ ์ํธ ์ ์ฅ โ ๊ธฐ์ ์ข ๋ฃ/์ ํ์ ๋ ์ง์คํธ๋ฆฌ ๋จ์์ ๋จ๊ณ๋ก ๋ถ๋ฆฌํ์ต๋๋ค. -
ํ๋ก ํธ์ ์จ์ฒด์ธ์ ์ง์ ๋๊ธฐํ
๋ ์ง์คํธ๋ฆฌ ID๋ ์ด๋ฒคํธ ๊ธฐ๋ฐ์ผ๋ก ๊ฐฑ์ ๋์ด, ์๋ก๊ณ ์นจ ์์๋ ์ต์ ์ํ๋ก ๋ณต๊ตฌ๋ฉ๋๋ค.
-
ํด๋ฝ ์์ฑ ๋ฐ ์ํ ๋ณด๊ด
BlockBlockRegistry๊ฐ ํ์ฌ ๊ธฐ์/ํด๋ฝ ID๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. -
๋ฉค๋ฒ ๋ฑ๋ก ๋จ๊ณ
ํ์ฅ์ดMemberRegistry๋ฅผ ์์ฑ โ ๋ถ์์ดMemberInfo๋ฅผ ์ ์ถ โ ํ์ฅ์ด ๊ฒํ ํ ํด๋ฝ์ ๋ฐ์ํฉ๋๋ค. -
์ถ์ ๊ด๋ฆฌ ๋จ๊ณ
ํ์ฅ์ดAttendanceRegistry๋ฅผ ์์ฑ โ ๋ถ์์ด ์ถ์ ๋ฑ๋ก โ ๋ง๊ฐ ํ ์ง๊ฐ/๊ฒฐ์/๋ณ๊ฒฐ ๋ถ๋ฅ โ ์ถ์ ์ํธ ์ ์ฅ. -
๊ธฐ์ ์ ํ ๋จ๊ณ
ํ์ฅ๋จ์ด ํ์ฌ ํด๋ฝ ์ข ๋ฃ ํฌํ โ ๋ค์ ํ์ฅ ์ง์ โ ๊ธฐ์ ์ ํ ๋ ์ง์คํธ๋ฆฌ ์์ฑ ๋ฐ ํฌํ โ ๋ค์ ๊ธฐ์ ํด๋ฝ ์์ฑ.
ํต์ฌ ์ค๋ธ์ ํธ์ ์ญํ ๋ฑ๋ก ๋ก์ง์ ๋ด์ต๋๋ค.
BlockBlockYonsei: ๋์๋ฆฌ ์์ง (Immutable)BlockBlockRegistry: ํ์ฌ/์ด์ ๊ธฐ์ ๋ฐ ํด๋ฝ ์ํ ์ ์ฅBlockBlockClub: ํน์ ๊ธฐ์ ํด๋ฝ ์ค๋ธ์ ํธ- ์ญํ ๋ฑ๋ก:
register_vice_president,register_treasurer,register_planning_team_member,register_marketing_team_member - ์ถ์ ์ํธ ์ ์ฅ:
store_attendance_sheet_to_blockblockclub
๋ฉค๋ฒ ์ ๋ณด ์์ฑ์ฉ ๋ชจ๋์ ๋๋ค.
MemberInfo: ์ด๋ฆ/์ ๊ณต/์ฃผ์/๊ธฐ์ ์ ๋ณด ํฌํจcreate_member_info,create_member_info_by_president_or_vice_president
๋ฉค๋ฒ ๋ฑ๋ก ์์ฒญ์ ์์งํ๊ณ , ๊ฒ์ฆ๋ ์ฃผ์๋ฅผ ํด๋ฝ์ ๋ฐ์ํฉ๋๋ค.
MemberRegistry์club_idํฌํจ- ์์ฑ/์ญ์ ์ด๋ฒคํธ emit (ํ๋ก ํธ์์ ID ๋๊ธฐํ์ ์ฌ์ฉ)
์ถ์ ๋ฑ๋ก/๋ง๊ฐ/๋ถ๋ฅ๋ฅผ ๋ด๋นํฉ๋๋ค.
AttendanceRegistry์club_idํฌํจ- ์์ฑ/์ญ์ ์ด๋ฒคํธ emit
- ์ถ์ ์ํธ๋ก ๋ณํ ํ ํด๋ฝ์ ์ ์ฅ
ํด๋ฝ ์ข ๋ฃ์ ๊ธฐ์ ์ ํ์ ๋ด๋นํฉ๋๋ค.
ClosingCurrentClubVoteRegistry: ํ์ฌ ํด๋ฝ ์ข ๋ฃ ํฌํNextTermRegistry: ๋ค์ ๊ธฐ์ ์ ํ ํฌํ- ์์ฑ/์ญ์ ์ด๋ฒคํธ emit
- ํ์ฌ ํด๋ฝ ์ญํ ์์ฝ
- ์ถ์ ์ํธ ๋ชฉ๋ก(๋ ์ง/์ธ์ ๊ธฐ์ค, ์ ๊ธฐ/ํผ์น๊ธฐ)
- ๋ฉค๋ฒ/์ถ์ ๋ ์ง์คํธ๋ฆฌ ์์ฑ ๋ฑ ๋น ๋ฅธ ์์
- ๋ถ์์ด ๋ฉค๋ฒ ๋ฑ๋ก ์์ฒญ ์ ์ถ
- ํ์ฅ ๊ฒํ ํ ํด๋ฝ ๋ฐ์
- ์ด์์ง ๋ฑ๋ก(๋ถํ์ฅ/์ด๋ฌด/๊ธฐํ/ํ๋ณด)
- ํ์ฅ์ด ์ถ์ ๋ ์ง์คํธ๋ฆฌ ์์ฑ
- ๋ถ์์ด ์ถ์ ๋ฑ๋ก(์ด๋ฆ/์ ๊ณต ํฌํจ)
- ํ์ฅ์ด ๋ง๊ฐ ํ ์ง๊ฐ/๊ฒฐ์/๋ณ๊ฒฐ ๋ถ๋ฅ
- ์ถ์ ์ํธ ์ ์ฅ
- ํ์ฌ ํด๋ฝ ์ข ๋ฃ ํฌํ/์ข ๋ฃ
- ๊ธฐ์ ์ ํ ๋ ์ง์คํธ๋ฆฌ ์์ฑ ๋ฐ ํฌํ
- ๋ค์ ๊ธฐ์ ํด๋ฝ ์์ฑ
ํ๋ก ํธ๋ queryEvents๋ฅผ ์ด์ฉํด ๋ ์ง์คํธ๋ฆฌ ID๋ฅผ ์ต์ ์ผ๋ก ์ ์งํฉ๋๋ค.
- ๋์:
MemberRegistry,AttendanceRegistry,NextTermRegistry,ClosingCurrentClubVoteRegistry BlockBlockRegistry.current_club๊ธฐ์ค์ผ๋กclub_idํํฐ๋ง- ์ญ์ ์ด๋ฒคํธ ๊ฐ์ง ์ ํด๋น ID๋ฅผ ์๋ ์ด๊ธฐํ
src/constants.ts์ ์ต์ ํจํค์ง ๋ฐ ์ค๋ธ์ ํธ ID๊ฐ ๋ฐ์๋ฉ๋๋ค.