HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🚀
Random Bit Flip
/
🔬
[2기 - 조셉] 5주차 RBF
/
💱
UUID 변환을 DB에 종속 없이 수행하기
💱

UUID 변환을 DB에 종속 없이 수행하기

private byte[] uuidToByteArray(UUID id) { String uuidToHexString = id.toString().replace("-", ""); return hexStringToByteArray(uuidToHexString); } public byte[] hexStringToByteArray(String hexString) { int len = hexString.length(); byte[] data = new byte[len / 2]; for (int i = 0; i < len; i += 2) { data[i / 2] = (byte) ((Character.digit(hexString.charAt(i), 16) << 4) + Character.digit(hexString.charAt(i+1), 16)); } return data; }
  • 위와 같이 자바 코드를 이용하여 UUID 값을 변환해서 BINARY(16) 컬럼에 저장하면 H2 등 MYSQL이 아닌 DB에서도 굳이 UUID_TO...과 같은 특정 DB에 종속적인 SQL을 사용하지 않고 저장이 가능합니다.
  • hexStringToByteArray의 경우 아래의 방법과 서로 다른 출력을 하는데,
    • return hexString.getBytes(StandardCharsets.UTF_8);
    • bytes = [B@67c27493 bytes = [B@1a482e36
    • 왜 이런 결과가 나왔는지, 추후 찾아봐야겠습니다.
    • 별개로 처음 소개드린 방식 사용시 UUID(byteBuffer.getLong(), byteBuffer.getLong()) 방식으로 얻은 바우처 byte값을 전환하는 것과 호환됩니다.
    •