@Id에 UUID 적용

0

TIL

목록 보기
148/183

프로젝트 진행 중 Entity Id column의 타입으로 UUID를 적용한 사례에 대해 알아보게되었다.

@Id
@GeneratedValue(strategy = GenerationType.UUID)
@Column(name = "id", updatable = false, nullable = false)
private UUID id;

@GeneratedValue로 기본키인 랜덤한 UUID가 자동으로 저장되고
@Column으로 변경과 공백을 사전에 방지한다.

@Id에 내가 지금까지 사용하던 Long 타입을 사용한다면 새로 저장될 때마다 넘버링이 가능하여 대략적인 개수 파악이 가능하지만, 사용자가 Id의 값을 추측하거나 의도적으로 조작할 가능성이 있기 때문에 UUID로 복잡한 문자열을 생성하여 민감한 정보를 감출 수 있다. 때문에 UUID를 사용하는 경우도 있다.

그리고 마이크로서비스 아키텍처같은 분산 시스템에서 여러 서비스가 독립적으로 식별자를 생성해야 할 수 있을 때 각 서비스가 UUID를 사용하면 중앙 집중식 서버 없이도 고유한 ID를 생성할 수 있어, 시스템의 복잡성을 줄이고 성능을 개선할 수 있다.
반면에, Long 타입의 경우, Id를 생성하는 서버가 하나의 중앙 서버가 되어야 하므로 병목이 발생할 수 있다.

0개의 댓글

관련 채용 정보