TypeScript | UUID๋ก ๊ณ ์ ์คํธ๋ง ํ์ id๊ฐ ๊ฐ์ ธ์ค๊ธฐ
์ฒ์์ 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' ๋ณ์๋ก ์ง์