๋ฐฐ๊ฒฝ
FRONTEND.md 0๋ฒ ๊ณตํต ๊ท์น: ๋ชจ๋ ID = string. ํ์ฌ ์ผ๋ถ ์ํฐํฐ PK๊ฐ Long (auto-increment BIGINT):
SpotVote, SpotVoteOption, SpotChecklist, SpotFile, SpotNote
- (Chat ๋๋ฉ์ธ์ ๋๋ถ๋ถ String UUID ์ฌ์ฉ ์ค โ ์ ๊ฒ ํ์)
Jackson์ด long โ JSON number ์ง๋ ฌํํ๋ฏ๋ก ๋์์ ํ์ง๋ง TypeScript strict / Zod ๊ฒ์ฆ์์ ๊นจ์ง. ๋ JS number ์ ๋ฐ๋(2^53) ์ ์ฌ ์ํ.
ํด์ผ ํ ์ผ
- PK ํ์
๋ณํ โ
Long id โ String id (UUID v4)
- FK ์ปฌ๋ผ ํ์
โ ์ ์ํฐํฐ๋ฅผ ์ฐธ์กฐํ๋ ๋ชจ๋ ์ปฌ๋ผ ๋์ ๋ณ๊ฒฝ
SpotVoteAnswer.optionId, SpotVoteAnswer.voteId ๋ฑ
- ๋ง์ด๊ทธ๋ ์ด์
SQL โ ๋ค๋จ๊ณ
- ์ String ์ปฌ๋ผ ์ถ๊ฐ
- UUID ๋ฐฑํ
- FK ์ปฌ๋ผ๋ค๋ ์ ๊ฐ์ผ๋ก ๋งคํ
- ๊ตฌ Long ์ปฌ๋ผ drop, ์ String ์ปฌ๋ผ์ PK๋ก
- Repository / Service / DTO ์๊ทธ๋์ฒ ์ผ๊ด ๋ณ๊ฒฝ
๊ฒ์ฆ
์์กด์ฑ
๊ฐ์ฅ ๋ง์ง๋ง. ๋ค๋ฅธ PR(F1~F5, F7, F8) ๋ชจ๋ ๋จธ์ง๋ ๊นจ๋ํ base ์์์ ์งํ ๊ถ์ฅ. F6-Feed(ํธ์ฐฌ)์๋ ๋๋ฉ์ธ ๋ถ๋ฆฌ๋์ด ๋
๋ฆฝ.
์ํฅ ํ์ผ
capstone-domain/spot/entity/Spot*.java (PK ๊ฐ์ง ๊ฒ ์ ๋ถ), ๊ด๋ จ Repository / Service / DTO, ๋ค์ค ๋ง์ด๊ทธ๋ ์ด์
SQL
๋ฐฐ๊ฒฝ
FRONTEND.md 0๋ฒ ๊ณตํต ๊ท์น: ๋ชจ๋ ID = string. ํ์ฌ ์ผ๋ถ ์ํฐํฐ PK๊ฐ
Long(auto-increment BIGINT):SpotVote,SpotVoteOption,SpotChecklist,SpotFile,SpotNoteJackson์ด long โ JSON number ์ง๋ ฌํํ๋ฏ๋ก ๋์์ ํ์ง๋ง TypeScript strict / Zod ๊ฒ์ฆ์์ ๊นจ์ง. ๋ JS number ์ ๋ฐ๋(2^53) ์ ์ฌ ์ํ.
ํด์ผ ํ ์ผ
Long idโString id(UUID v4)SpotVoteAnswer.optionId,SpotVoteAnswer.voteId๋ฑ๊ฒ์ฆ
์์กด์ฑ
๊ฐ์ฅ ๋ง์ง๋ง. ๋ค๋ฅธ PR(F1~F5, F7, F8) ๋ชจ๋ ๋จธ์ง๋ ๊นจ๋ํ base ์์์ ์งํ ๊ถ์ฅ. F6-Feed(ํธ์ฐฌ)์๋ ๋๋ฉ์ธ ๋ถ๋ฆฌ๋์ด ๋ ๋ฆฝ.
์ํฅ ํ์ผ
capstone-domain/spot/entity/Spot*.java(PK ๊ฐ์ง ๊ฒ ์ ๋ถ), ๊ด๋ จ Repository / Service / DTO, ๋ค์ค ๋ง์ด๊ทธ๋ ์ด์ SQL