새소식

Java

[Java] UUID (Universally Unique IDentifier)

  • -

📕 UUID란?

  • 네트워크 상에서 고유성이 보장되는 id를 만들기 위한 표준 규악
  • Univeraslly Unique Identifier의 약어이고 범용 고유 식별자라고 함
  • 주로 분산 컴퓨팅 환경에서 사용되는 식별자
  • 128비트의 숫자이며, 32자리의 16진수로 표현됨
  • 8자리-4자리-4자리-4자리-12자리 패턴의 하이픈을 집어 넣어 5개의 그룹으로 구분

📕 UUID 사용

  • 업로드된 파일명의 중복을 방지하기 위해 파일명을 변경할 때 사용
  • 첨부파일 파일 다운로드시 다른 파일을 예측하여 다운로드하는 것을 방지하는데 사용
  • 일련번호 대신 유추하기 힘든 식별자를 사용하여 다른 컨텐츠의 임의 접근을 방지하는데 사용

 

📕 Java에서 UUID 사용

  • Java에서는 무작위 랜덤 생성 버전인 UUID 4버전과 해쉬를 이용해 생성하는 3버전이 있다.
    • 3버전 - nameUUIDFromBytes
    • 4버전 - randomUUID

[ Java UUID version 4 예시 ] 

import java.util.UUID;

public class UUIDTest {
	public static void main(String[] args) {
		
		UUID one4 = UUID.randomUUID();
		UUID two4 = UUID.randomUUID();

		System.out.println("UUID version4 One: " + one4.toString());
		System.out.println("UUID version4 Two: " + two4.toString());
	}
}
UUID version4 One: 86ce7ee6-f6d2-4f16-bce9-712d9c48df72
UUID version4 Two: 79e28167-f744-42a7-b9b2-9c701b83ad34

 

📕 활용 예시 (인스타그램 클론코딩 중)

UUID 생성하고 붙여서 업로드 하는 사진 파일명의 중복발생을 방지하였다.

public void uploadImage(ImageUploadDto imageUploadDto, PrincipalDetails principalDetails) {
   UUID uuid = UUID.randomUUID();
   String imageFileName = uuid+"_"+imageUploadDto.getFile().getOriginalFilename();
   log.info(imageFileName);

   Path imageFilePath = Paths.get(uploadFolder+imageFileName);

   try {
      Files.write(imageFilePath, imageUploadDto.getFile().getBytes());
   } catch (Exception e) {
      e.printStackTrace();
   }
}

 


참고

 

UUID (Universally Unique IDentifier)란?

1. UUID란 네트워크 상에서 고유성이 보장되는 id를 만들기 위한 표준 규약이다. UUID는 Universally Unique IDentifier의 약어이고 범용 고유 식별자라고 한다. 주로 분산 컴퓨팅 환경에서 사용되는 식별자

mattmk.tistory.com

 

 

Java에서 UUID 클래스를 사용하여 유일한 식별자 생성하기

Java 5 부터 UUID 클래스를 사용해서 유일한 식별자를 생성할 수 있습니다. 숫자 일련번호를 사용한 식별자도 각각의 데이터를 구분하는데 충분하지만, 다른 데이터를 유추하기 쉽다는 단점이 있

offbyone.tistory.com

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.