배경
- 사용자 서비스 식별자 타입으로 LONG, UUID 중 고민을 하게 됨
고려사항과 장단점
- LONG
- 생성 및 저장 비용이 상대적으로 적으며, 개발과 테스트가 쉬움
- But, 순서대로 생성되는 경우 악의적인 사용자가 임의로 접근 가능
- AUTO_INCREMENT 사용이 많아, 분산 환경에서 여러 인스턴스가 동일한 ID를 생성할 위험이 큼
- UUID
- 중복 가능성이 낮아 다른 시스템이나, 분산 시스템 환경에서 중복 없이 고유 값 생성 가능
- 랜덤으로 생성되어 서버 자원에 대한 임의 접근 방지 가능
- But, 생성 및 저장 비용이 상대적으로 크며, 개발과 테스트 과정에서 더 많은 시간 소요됨
최종 결정 및 구현
- 마이크로서비스 아키텍처(MSA)와 같이 여러 서비스가 독립적으로 운영되는 환경에서 UUID 사용이 더 적합하다고 판단함(보안성, 확장성, 분산 환경에서의 고유성을 보장하기 때문)