[RESTful 라우트] UUID 패키지를 활용한 범용 고유 식별자 생성
최근 강의에서는 댓글을 작성하고 제출할 때 생기는 작은 문제에 대해 다뤄보았습니다. 새로운 댓글을 작성하고 제출하면 인덱스 페이지로 정상적으로 돌아가지만, 해당 댓글을 클릭했을 때의 링크가 /comments로 이동하고 있었습니다.
실제로는 어디로 가야할지에 대한 로직이 부족한 상태였습니다.
그 동안의 작업에서는 하드코딩된 오름차순(ID: 1, 2, 3, ...)으로 ID를 부여하고 있었는데, 이렇게 하면 새로운 댓글이 추가될 때마다 어떻게 ID를 부여할지에 대한 고민이 필요했습니다.
이런 문제를 해결하기 위해 UUID(Universally Unique Identifier) 패키지를 사용하는 방법을 알아보겠습니다.
우선, UUID 패키지를 설치하고 해당 패키지에서 v4 함수를 사용하여 고유한 식별자를 생성할 수 있습니다.
이를 통해 각 댓글에 대해 충돌 없는 유니크한 ID를 얻을 수 있습니다. 설치는 npm을 이용하며, 아래와 같이 진행할 수 있습니다.
npm install uuid
설치가 완료되면 해당 패키지를 불러와서 사용할 수 있습니다. 주로 v4 함수를 통해 길고 독특한 ID를 생성하게 되는데, 이는 MongoDB 등에서 사용되는 실제 데이터베이스의 ID와 유사합니다.
const uuid = require('uuid/v4');
이제 새 댓글이 추가될 때마다 UUID를 활용하여 고유한 ID를 부여하도록 코드를 수정할 수 있습니다. 이를 통해 댓글이 추가될 때마다 충돌 없이 유니크한 ID가 생성되며, 해당 ID를 통해 댓글을 식별할 수 있습니다.
// 새 댓글 작성 부분
const newComment = {
id: uuid(), // UUID를 사용하여 고유한 ID 생성
author: req.body.author,
text: req.body.text,
};
// 댓글 조회 부분
const comment = comments.find((c) => c.id === req.params.id);
![]() ![]() |
이제 댓글을 추가하고, 댓글을 클릭했을 때의 링크가 적절한 고유 ID를 가지고 있습니다. UUID 패키지를 활용하면 더욱 효과적으로 범용 고유 식별자를 생성할 수 있습니다. 다음 강의에서는 댓글을 편집하고 삭제하는 방법에 대해 배우게 될 것입니다.