Skip to content

๐Ÿ”ต F6-a: Spot/Chat ๋„๋ฉ”์ธ ID ํƒ€์ž… Long โ†’ String ์ „ํ™˜ย #40

@ThonApple

Description

@ThonApple

๋ฐฐ๊ฒฝ

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) ์ž ์žฌ ์œ„ํ—˜.

ํ•ด์•ผ ํ•  ์ผ

  1. PK ํƒ€์ž… ๋ณ€ํ™˜ โ€” Long id โ†’ String id (UUID v4)
  2. FK ์ปฌ๋Ÿผ ํƒ€์ž… โ€” ์œ„ ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋ชจ๋“  ์ปฌ๋Ÿผ ๋™์‹œ ๋ณ€๊ฒฝ
    • SpotVoteAnswer.optionId, SpotVoteAnswer.voteId ๋“ฑ
  3. ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ SQL โ€” ๋‹ค๋‹จ๊ณ„
    1. ์ƒˆ String ์ปฌ๋Ÿผ ์ถ”๊ฐ€
    2. UUID ๋ฐฑํ•„
    3. FK ์ปฌ๋Ÿผ๋“ค๋„ ์ƒˆ ๊ฐ’์œผ๋กœ ๋งคํ•‘
    4. ๊ตฌ Long ์ปฌ๋Ÿผ drop, ์ƒˆ String ์ปฌ๋Ÿผ์„ PK๋กœ
  4. Repository / Service / DTO ์‹œ๊ทธ๋‹ˆ์ฒ˜ ์ผ๊ด„ ๋ณ€๊ฒฝ

๊ฒ€์ฆ

  • ๋ชจ๋“  ์‘๋‹ต JSON์—์„œ spot ๊ด€๋ จ id๊ฐ€ string
  • FK ๋ฌด๊ฒฐ์„ฑ (Vote โ†” VoteOption โ†” VoteAnswer)
  • ๊ธฐ์กด ๋ฐ์ดํ„ฐ ์†์‹ค ์—†์Œ

์˜์กด์„ฑ

๊ฐ€์žฅ ๋งˆ์ง€๋ง‰. ๋‹ค๋ฅธ PR(F1~F5, F7, F8) ๋ชจ๋‘ ๋จธ์ง€๋œ ๊นจ๋—ํ•œ base ์œ„์—์„œ ์ง„ํ–‰ ๊ถŒ์žฅ. F6-Feed(ํ˜ธ์ฐฌ)์™€๋Š” ๋„๋ฉ”์ธ ๋ถ„๋ฆฌ๋˜์–ด ๋…๋ฆฝ.

์˜ํ–ฅ ํŒŒ์ผ

capstone-domain/spot/entity/Spot*.java (PK ๊ฐ€์ง„ ๊ฒƒ ์ „๋ถ€), ๊ด€๋ จ Repository / Service / DTO, ๋‹ค์ค‘ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ SQL

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions