๐Ÿ”‘Code/TypeScript

TypeScript | UUID๋กœ ๊ณ ์œ  ์ŠคํŠธ๋ง ํƒ€์ž… id๊ฐ’ ๊ฐ€์ ธ์˜ค๊ธฐ

pajiyeee 2023. 5. 14. 21:23

์ฒ˜์Œ์—” input์— ์ ๋Š” ํ•  ์ผ๊ณผ ํ•จ๊ป˜ ํƒ€์ž…์ด ์ˆซ์ž์ธ id ๋ฅผ ๊ฐ™์ด ๊ฐ์ฒด์— ๋‹ด์•„ ํ™œ์šฉํ•˜๋ ค๊ณ  ํ–ˆ์—ˆ๋‹ค.๊ทผ๋ฐ ํŽผ์นจ์—ฐ์‚ฐ์ž๋ฅผ ๋˜ ์“ฐ๊ฒŒ ๋˜๊ณ ,

id๋ฅผ ์ˆซ์ž๋กœ ๊ฐ€์ ธ์˜ค๋ฉด +1 ์ด๋Ÿฐ์‹์œผ๋กœ ๋„ฃ๋‹ค๋ณด๋‹ˆ ๋ณต์žกํ•ด์ง์„ ๋А๋ผ๊ณ  ๊ณ ๋ฏผํ•˜๋˜ ๋์— ๋™๊ธฐ ๋ถ„์ด ์ถ”์ฒœํ•ด์ค€ uuid ๋ฐฉ์‹์„ ์ ์šฉํ•ด๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค.

 

 

UUID(Universally Unique IDentifier)

๋„คํŠธ์›Œํฌ ์ƒ์—์„œ ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” id๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ํ‘œ์ค€ ๊ทœ์•ฝ์ด๋‹ค.

UUID ๋Š” 8-4-4-4-12 ํ˜•ํƒœ์˜ ๋ฌธ์ž์ด๊ณ , ๊ฐ ๋ฌธ์ž๋Š” 16์ง„์ˆ˜ ์ˆซ์ž๋‹ค.

UUID ๋ฒ„์ „์€ 1, 3, 4, 5 ๊ฐ€ ์žˆ๋Š”๋ฐ, ๋žœ๋ค์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” 4๋ฒ„์ „์ด ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ์ธ๋‹ค๊ณ  ํ•œ๋‹ค.

 

 

npm install --save @types/uuid

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” UUID๊ฐ€ npm ํŒจํ‚ค์ง€์ด๊ธฐ ๋•Œ๋ฌธ์—, ์„ค์น˜ํ•ด์ค€๋‹ค.

(๋‚˜๋Š” ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์“ฐ๊ณ  ์žˆ์–ด์„œ ์œ„์™€ ๊ฐ™์ด ์จ์คŒ)

 

 

์ง€๊ธˆ todo-list๋ฅผ typescript๋กœ ๋งŒ๋“œ๋Š” ๊ณผ์ œ๋ฅผ ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, UUID๋กœ ๊ฐ๊ฐ์˜ todo ๋ฆฌ์ŠคํŠธ๋งˆ๋‹ค

string ํƒ€์ž…์˜ id๋ฅผ ๋ถ™์—ฌ์ฃผ์–ด map์„ ๋Œ๋ ธ๋‹ค.

todo ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€ํ•˜๊ธฐ ๋ฒ„ํŠผ์— addList ๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ๋‹ฌ์•„์ฃผ๊ณ  map์„ ๋Œ๋ฆฐ todoList ๋งˆ๋‹ค id ๋ฅผ ๋ถ™์—ฌ์ฃผ๋Š”๋ฐ

id ๊ฐ’์œผ๋กœ UUID๊ฐ€ ์˜ค๊ฒŒ ํ•ด์ฃผ์—ˆ๋‹ค.

import {v4 as uuidv4} from 'uuid'; 
// v4 ๋ฅผ uuidv4 ๋กœ ์“ฐ๊ฒ ๋‹ค.
type ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋‚ฑ๊ฐœ = {
  id: string;//uuid๊ฐ€ ์ŠคํŠธ๋ง ํƒ€์ž…์ด๊ธฐ ๋•Œ๋ฌธ์— ์„ค์ •
  ํ•  ์ผ ๋ฐธ๋ฅ˜: string
}
const uuid = uuidv4();
   //uuidv4ํ•จ์ˆ˜๋ฅผ uuid ๋ณ€์ˆ˜์— ์ €์žฅ
setํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ชฉ๋ก๋“ค([...ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ชฉ๋ก๋“ค, {id: uuid, ํ•  ์ผ ๋ฐธ๋ฅ˜: ์ธํ’‹๊ฐ’ }]);
//id ๊ฐ’์œผ๋กœ UUID๋ฅผ ์ €์žฅํ•œ 'uuid' ๋ณ€์ˆ˜๋กœ ์ง€์ •