💡 UUID의 사용 방법
- 먼저 UUID를 생성한다.
- UUID는 MySQL에서 정렬할 수 없기 때문에 PK로 사용하기 위해서는 재조합(UUID 순서의 재조합)을 위해 데이터를 수정한 후 DB에 넣는다.
- DB에 UUID가 저장될때는 binary 형식으로 저장된다.(저장공간의 효율성을 위해)
- DB에서 UUID를 조회할때는 HEX 형식으로 바꿔서 조회해야한다. → 그렇지 않으면 HEX화 되지 않은 binary의 값을 나타내게 된다. (DB 툴에 따라 binary형식이 표현되는 형식이 다를 수 있다. )
- HEX 형식으로 조회한 UUID 를 WHERE 조건등에 사용하기 위해서는 UNHEX를 사용해서 binary 타입으로 변경해야한다.
- query 예시
SELECT HEX(PK) from extable
SELECT * FROM extable WHERE PK = UNHEX('~~~')
💡 여기서 발생하는 궁금증 (?)
→ 그렇다면 JPA나 Querydsl 을 사용하여 UUID를 조회 할 때는 어떻게 조회 해야하는가?
Solution : 데이터를 받거나 입력할때 import java.util.UUID 형식으로 사용하면 된다.→ DB Connection 시 JPA가 가지고 있는 컨버터가 Binaly타입과 HEX타입의 컨버팅을 자동으로 진행한다.
💡 UUID를 왜 사용할까?
- 데이터베이스가 여러 개로 분리 되어 사용 되면서, 다시 합쳐 져서 사용 되는 경우
- 키를 회득하는데 있어서 종속적이지 않다
- 보안적인 면이 상대적으로 안전하다.
- 업무적인 고유한 값 또는 본질식별자 값으로 사용할 수 있다.
referance
'Spring' 카테고리의 다른 글
| [Spring] Servlet Filter 사용하기 (0) | 2023.05.29 |
|---|---|
| [Spring] AOP (Aspect-Oriented Programming) 란? AOP로 로깅하기 (0) | 2023.04.12 |
| [Spring] @Valid 를 이용한 @RequestBody 객체 검증하기 (0) | 2023.03.27 |
| [Spring] @Builder + @NoArgsConstructor 사용 시 발생하는 이슈 (0) | 2023.03.27 |
| [Spring] 실무에서 Logger를 사용하는 이유 (0) | 2023.02.05 |