728x90
반응형
UUID란?
1줄 요약: 네트워크 상에서 고유성이 보장되는 id를 만들기 위한 표준 규약.
조금 더 길게
개요
주로 분산 컴퓨팅 환경에서 사용되는 식별자이다. 중앙관리시스템이 있는 환경이라면 각 세션에 일련번호를 부여해줌으로써 유일성을 보장할 수 있겠지만 중앙에서 관리되지 않는 분산 환경이라면 개별 시스템이 id를 발급하더라도 유일성이 보장되어야만 할 것이다. 이를 위해 탄생한 것이 범용고유식별자 UUID (Universally Unique IDentifier) 이다.
정의
UUID는 128비트의 숫자이며, 32자리의 16진수로 표현된다. 여기에 8-4-4-4-12 글자마다 하이픈을 집어넣어 5개의 그룹으로 구분한다.
예: 550e8400-e29b-41d4-a716-446655440000
종류
UUID 버전은 1, 3, 4 및 5가 있다. 이 중 많이 쓰이는 것은 버전 1과 4이다. 버전 1은 타임스탬프를 기준으로 생성되며, 버전 4는 랜덤 생성이다. 버전 3, 5는 각각 MD5, SHA-1 해쉬를 이용해 생성하는 방식이다.
쓰임새
다음 패키지를 이용하면 Node 환경에서 손쉽게 UUID를 사용할 수 있다.
kelektiv/node-uuid: Generate RFC-compliant UUIDs in JavaScript
세션 ID를 발급해야 할 때, uuid 함수를 제공하면 된다.
1 const session = require('express-session');
2 const connectRedis = require('connect-redis');
3 const redis = require('redis');
4 const uuidv4 = require('uuid/v4');
5 const next = require('next');
6
7 let RedisStore = connectRedis(session);
8 let redisClient = redis.createClient(6379, process.env.REDIS_CLIENT);
9
10 // 기타 express 관련 설정 생략...
11
12 app.use(
13 session({
14 store: new RedisStore({ client: redisClient }),
15 secret: process.env.SESSION_SECRET,
16 resave: true, // 수정된 적 없는 세션이라도 한번 발급된 세션은 저장 허용. 경쟁조건을 일으킬 수 있음
17 rolling: true, // 새로고침이 발생할 때마다 세션 refresh
18 saveUninitialized: true, // 초기화되지 않은 세션, 생성되었으나 한번도 수정되지 않은 세션을 저장할 것인지
19 cookie: {
20 maxAge: 60 * 60 * 1000,
21 },
22 genid: uuidv4, // UUIDv4를 이용해 session id 생성
23 }),
24 );
728x90
반응형
'Study > Java' 카테고리의 다른 글
[java] replaceAll 정리 (0) | 2022.07.07 |
---|---|
[Java] 파일첨부 확장자 타입확인하기 java SimpleMagic example (0) | 2022.07.01 |
[Java] MultipartFile과 File의 차이점 (0) | 2022.07.01 |
[JAVA] 입출력 스트림 (InputStream, OutputStream)란? (0) | 2022.07.01 |
Java - File 구분자 (File Separator) (0) | 2022.06.30 |
댓글