From a489365977b4e54328b231d2457a2027f4fa5191 Mon Sep 17 00:00:00 2001 From: seonghobae <8172694+seonghobae@users.noreply.github.com> Date: Mon, 6 Jul 2026 20:47:26 +0000 Subject: [PATCH] =?UTF-8?q?=E2=9A=A1=20Bolt:=20HexFormat=EB=A5=BC=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=ED=95=9C=20=EB=B0=94=EC=9D=B4=ED=8A=B8=20?= =?UTF-8?q?=EB=B0=B0=EC=97=B4-16=EC=A7=84=EC=88=98=20=EB=AC=B8=EC=9E=90?= =?UTF-8?q?=EC=97=B4=20=EB=B3=80=ED=99=98=20=EC=84=B1=EB=8A=A5=20=EC=B5=9C?= =?UTF-8?q?=EC=A0=81=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `String.format`을 루프 안에서 사용하여 바이트 배열을 16진수 문자열로 변환하는 비효율적인 방식을 `java.util.HexFormat.of().formatHex()`를 사용하는 방식으로 변경하여 성능을 개선했습니다. --- .../clearfolio/viewer/artifact/ArtifactLinkService.java | 7 ++----- .../viewer/service/DefaultDocumentConversionService.java | 8 ++------ 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/clearfolio/viewer/artifact/ArtifactLinkService.java b/src/main/java/com/clearfolio/viewer/artifact/ArtifactLinkService.java index 454b0448..416d5ead 100644 --- a/src/main/java/com/clearfolio/viewer/artifact/ArtifactLinkService.java +++ b/src/main/java/com/clearfolio/viewer/artifact/ArtifactLinkService.java @@ -423,11 +423,8 @@ private static String sha256Hex(byte[] bytes) { try { MessageDigest digest = MessageDigest.getInstance("SHA-256"); byte[] raw = digest.digest(bytes); - StringBuilder hex = new StringBuilder(raw.length * 2); - for (byte b : raw) { - hex.append(String.format("%02x", b)); - } - return hex.toString(); + // Bolt: Using HexFormat for faster byte-to-hex conversion instead of String.format inside a loop. + return java.util.HexFormat.of().formatHex(raw); } catch (GeneralSecurityException ex) { throw new IllegalStateException("SHA-256 digest unavailable", ex); } diff --git a/src/main/java/com/clearfolio/viewer/service/DefaultDocumentConversionService.java b/src/main/java/com/clearfolio/viewer/service/DefaultDocumentConversionService.java index b8787f35..3397ff72 100644 --- a/src/main/java/com/clearfolio/viewer/service/DefaultDocumentConversionService.java +++ b/src/main/java/com/clearfolio/viewer/service/DefaultDocumentConversionService.java @@ -160,12 +160,8 @@ private String contentHash(MultipartFile file) { } byte[] raw = digest.digest(); - StringBuilder hex = new StringBuilder(raw.length * 2); - for (byte b : raw) { - hex.append(String.format("%02x", b)); - } - - return hex.toString(); + // Bolt: Using HexFormat for faster byte-to-hex conversion instead of String.format inside a loop. + return java.util.HexFormat.of().formatHex(raw); } catch (NoSuchAlgorithmException ex) { throw new IllegalStateException("SHA-256 digest unavailable", ex); } catch (IOException ex) {