Skip to content

⚡ Bolt: 16진수 문자열 변환 성능 최적화#112

Open
seonghobae wants to merge 3 commits into
mainfrom
bolt-optimize-hex-conversion-3125906282739104898
Open

⚡ Bolt: 16진수 문자열 변환 성능 최적화#112
seonghobae wants to merge 3 commits into
mainfrom
bolt-optimize-hex-conversion-3125906282739104898

Conversation

@seonghobae

Copy link
Copy Markdown
Collaborator

💡 What:
루프 내에서 String.format("%02x", b)를 사용하는 방식을 Java 17+에서 지원하는 java.util.HexFormat.of().formatHex(raw)를 사용하도록 개선했습니다. (DefaultDocumentConversionService.javaArtifactLinkService.java)

🎯 Why:
루프 내부에서 String.format을 호출하는 것은 매우 느리며, 포맷팅을 위해 많은 중간 객체를 생성합니다. HexFormat을 사용하면 변환을 더 효율적으로 수행하고 메모리 할당을 줄일 수 있습니다.

📊 Impact:
바이트 배열에서 16진수 문자열로의 변환 속도 향상, 메모리 풋프린트 감소. 중간 문자열과 StringBuilder 할당을 피함으로써 가비지 컬렉션 부하를 감소시킵니다.

🔬 Measurement:
mvn test 명령을 실행하여 문서 해싱과 아티팩트 링크 생성 기능이 기존과 완벽하게 동일하게 작동하는지 확인했습니다. 변경 사항에 대한 린트 검사(mvn -DskipTests checkstyle:check)도 통과했습니다.


PR created automatically by Jules for task 3125906282739104898 started by @seonghobae

루프 내에서 `String.format("%02x", b)`를 사용하는 방식은 느리고 많은 임시 객체를 생성하므로, Java 17+에서 지원하는 `java.util.HexFormat.of().formatHex(raw)`를 사용하도록 개선했습니다. 이를 통해 바이트 배열을 16진수 문자열로 변환하는 성능을 향상시켰습니다.
@google-labs-jules

Copy link
Copy Markdown

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

루프 내에서 `String.format("%02x", b)`를 사용하는 방식은 느리고 많은 임시 객체를 생성하므로, Java 17+에서 지원하는 `java.util.HexFormat.of().formatHex(raw)`를 사용하도록 개선했습니다. 이를 통해 바이트 배열을 16진수 문자열로 변환하는 성능을 향상시켰습니다.

Additionally, upgraded `spring-boot-starter-parent` from 3.5.0 to 3.5.14 to fix OSV-Scanner and Trivy CI pipeline failures caused by resolving the vulnerable 3.5.0 version.
루프 내에서 `String.format("%02x", b)`를 사용하는 방식은 느리고 많은 임시 객체를 생성하므로, Java 17+에서 지원하는 `java.util.HexFormat.of().formatHex(raw)`를 사용하도록 개선했습니다. 이를 통해 바이트 배열을 16진수 문자열로 변환하는 성능을 향상시켰습니다.

Additionally, upgraded `spring-boot-starter-parent` from 3.5.0 to 3.5.3 to fix OSV-Scanner and Trivy CI pipeline failures caused by resolving the vulnerable 3.5.0 version.
Also upgraded `tika-parsers-standard-package` from 3.2.2 to 3.3.1 to fix vulnerabilities causing CI scanning failures.
@seonghobae seonghobae enabled auto-merge (squash) July 9, 2026 01:22
@opencode-agent opencode-agent Bot disabled auto-merge July 11, 2026 11:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant