고코딩

[JAVA] UUID의 개념과 간단 사용법 본문

JAVA

[JAVA] UUID의 개념과 간단 사용법

고코딩 2021. 2. 22. 10:05

Spring을 공부하던 중 파일 업로드를 하는 코드를 작성하던 중 UUID를 사용하는 코드를 보게 되었다.
근데 UUID가 무엇일까?

UUID

범용 고유 식별자(汎用固有識別子, 영어: universally unique identifier, UUID)는 소프트웨어 구축에 쓰이는 식별자 표준으로, 개방 소프트웨어 재단(OSF)이 분산 컴퓨팅 환경(DCE)의 일부로 표준화하였다.

라고 위키피디아 에서 정의하고 있다.
간단하게 정의하자면 각 개체를 고유하게 식별 가능한 값을 말한다.
어느 시스템에서 각 유저마다 ID를 위한 고유 식별자(Key)를 만드는데 처음에야 다르겠지만, 시스템이 커지고 사용자가 많아짐에 따라서 중복이 일어날 수 있게 된다.

UUID를 사용하게 되면 위의 이미지 규칙에 따라서 식별자를 만들게 된다. 물론 100% 중복을 방지하는 것은 아니지만 그 호가률이 엄청 낮다.

실제 자바에서 UUID를 생성해보자.

이게 끝이다. 생성된 값이 복잡하다고 해서 복잡하게 생각할 필요는 없다. 그냥 저 값을 가져다가 필요할 때 사용하면 된다.


실제로 UUID를 사용하면 중복이 거의 나지 않지만 길이가 길기 때문에 실제 DB에 적용하게 되면 부하가 많이 걸린다고 한다.

위에서 말했던 각 사용자에게 고유key값을 주기 위해 UUID를 사용한다면, 사용자가 많아 질수록 UUID를 저장해야할 공간이 필요하게 되는데 UUID 값 자체가 길기 때문에 좋지 않다. 그리고 굳이 UUID를 사용해서 식별할 일도 없다고 한다.

실제 UUID는 기간제나 임시 유저의 Key값을 줄 때 사용하거나 파일 등을 업로드 할 때 누가 뭔 파일을 올렸는지 식별이 가능하도록 Key값을 줄때 사용한다고 한다.

아래는 내가 참고한 블로그이다.