Byte Search Release 0.6.31 - kimjooyoon/meta-ontology-go GitHub Wiki

๋ฌธ์ž์—ด์„ ์ฝ๊ณ  ์ฐพ๋Š” 0.6.31

์—…๋ฐ์ดํŠธ: 2026-10-12.

๊ณต๊ฐœ 0.6.31 ๊ฐœ๋ฐœํŒ์€ Gooo ๋ณธ๋ฌธ์— ํšŸ์ˆ˜๊ฐ€ ์ •ํ•ด์ง„ ๋ฐ˜๋ณต๋ฌธ๊ณผ ๋ฌธ์ž์—ด ๋ฐ”์ดํŠธ ์ ‘๊ทผ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์†Œ์Šค๋Š” c56007f5881296cb3181ff056c50a4ae917a9850, Go๋Š” 1.27.2, ํŒ๋‹จ ๋ชจ๋ธ SDK๋Š” 0.2.41์ž…๋‹ˆ๋‹ค.

์ž‘์€ ๊ฒ€์ƒ‰ ํ•จ์ˆ˜๋ฅผ Gooo๋กœ ์“ฐ๊ธฐ

๊ฒ€์ƒ‰ ์˜ˆ์ œ๋Š” ๋ฌธ์ž์—ด์—์„œ ์›ํ•˜๋Š” ๋ฐ”์ดํŠธ๋ฅผ ์ฐพ์•„ ์œ„์น˜๋ฅผ ๋Œ๋ ค์ค๋‹ˆ๋‹ค. ๋‹ค๋ฅธ Gooo ํŒจํ‚ค์ง€๊ฐ€ ์ด ํ•จ์ˆ˜๋ฅผ ๊ฐ€์ ธ์™€ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ž…๋ ฅ์€ ๋ฌธ์ž์—ด๊ณผ ์ฐพ์„ ๊ฐ’์ด๊ณ , ๊ฐ’์ด ์—†์œผ๋ฉด -1์„ ๋Œ๋ ค์ค๋‹ˆ๋‹ค.

๋ฌธ์ž์—ด ์ฐพ์„ ๊ฐ’ ์œ„์น˜
gooo o์˜ ๊ฐ’ 111 1
๊ฐ€x x์˜ ๊ฐ’ 120 3
๊ฐ€ ๋‘ ๋ฒˆ์งธ ๋ฐ”์ดํŠธ ๊ฐ’ 176 1
๋นˆ ๋ฌธ์ž์—ด a์˜ ๊ฐ’ 97 -1

์œ„์น˜๋Š” UTF-8 ๋ฐ”์ดํŠธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์…‰๋‹ˆ๋‹ค. ๊ฐ€๋Š” ์„ธ ๋ฐ”์ดํŠธ์ด๋ฏ€๋กœ ๋’ค์˜ x๋Š” ์œ„์น˜ 3์ž…๋‹ˆ๋‹ค. ์ž…๋ ฅ Text๋Š” ์˜ฌ๋ฐ”๋ฅธ UTF-8์ด๋ฉฐ ์ตœ๋Œ€ 1,024๋ฐ”์ดํŠธ์ž…๋‹ˆ๋‹ค. NUL๋„ ์ž…๋ ฅ์— ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ด๋‹น ์†Œ์Šค์˜ ๋ฃจํŠธ ํด๋”์—์„œ ๋‹ค์Œ์ฒ˜๋Ÿผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ธ๊ณผ API ํ‚ค๋Š” ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

gooo package execute --json \
  --cases examples/bounded-text-search/cases.json \
  examples/bounded-text-search/gooo.workspace.json > search-execution.json
gooo package replay --json --receipt search-execution.json \
  --cases examples/bounded-text-search/cases.json \
  examples/bounded-text-search/gooo.workspace.json

๋ฐ˜๋ณต๋ฌธ์˜ ์•ฝ์†

์นด์šดํ„ฐ๋Š” ๋จผ์ € ์ง€์—ญ ๋ณ€์ˆ˜๋กœ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ณต๋ฌธ์€ for i = 0; i < N; i = i + 1 ํ˜•์‹์ด๋ฉฐ N์€ 1๋ถ€ํ„ฐ 1,024 ์‚ฌ์ด์˜ ๋ฆฌํ„ฐ๋Ÿด์ž…๋‹ˆ๋‹ค. ๋ณธ๋ฌธ์€ ๊ธธ์ด๋ฅผ ํ™•์ธํ•ด ์ผ์ฐ ๋ฐ˜ํ™˜ํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์ง€์—ญ ๋ณ€์ˆ˜๋ฅผ ๊ฐฑ์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์นด์šดํ„ฐ ๋ณ€๊ฒฝยท๊ฐ€๋ฆฌ๊ธฐ, ์ง์ ‘ ์ค‘์ฒฉ๋œ ๋ฐ˜๋ณต๋ฌธ, ๋™์  ์ƒํ•œ์€ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค. ๋ณด์กฐ ํ•จ์ˆ˜ ํ˜ธ์ถœ๋„ ์ตœ๋Œ€ ๋ฐ˜๋ณต ํšŸ์ˆ˜๋ฅผ ๊ธฐ์กด 4,096ํšŒ ํ•œ๋„์— ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค.

์ปดํ“จํŠธ๋ฅผ ๋“ค์—ฌ์“ฐ๊ธฐ์™€ ์ค„๋ฐ”๊ฟˆ์œผ๋กœ ๋‘˜๋Ÿฌ์‹ธ๋„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด ์•ˆ์˜ ๊ณต๋ฐฑ์€ ๊ฐ’์œผ๋กœ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

ํ™•์ธํ•œ ๋ฒ”์œ„

๋ณ‘ํ•ฉ ์†Œ์Šค์˜ ํ”Œ๋žซํผ ๊ฒ€์‚ฌ๋Š” Linux amd64, macOS amd64ยทarm64, Windows amd64์—์„œ ๊ฐ™์€ ์—ด ๊ฐœ ์‚ฌ๋ก€์™€ ์ €์žฅ ์žฌ์‹คํ–‰์„ ํ†ต๊ณผํ–ˆ์Šต๋‹ˆ๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ์‚ฌ๋ก€ ์—ด ๊ฐœ๋ฅผ ๋„ค ํ”Œ๋žซํผ์—์„œ ๋ฐ˜๋ณตํ•œ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค. ๋ชจ๋ธ ํ˜ธ์ถœ์€ 0ํšŒ์ž…๋‹ˆ๋‹ค. ํ•ด์„๊ธฐ ๊ฒ€์‚ฌ๋Š” ๋‹ค์„ฏ ๋ฌธ์ž์—ด๊ณผ 258๊ฐœ ์ฐพ์„ ๊ฐ’์˜ 1,290๊ฐœ ์กฐํ•ฉ์„ Go strings.IndexByte์™€ ๋น„๊ตํ–ˆ์Šต๋‹ˆ๋‹ค.

์›๋ณธ ๋ฐฐํฌ ์ž‘์—…์˜ ๊ณต๊ฐœ ํŒŒ์ผ 9๊ฐœ, ์ฒดํฌ์„ฌ ํ•ญ๋ชฉ 8๊ฐœ, ์†Œ์Šค ํƒœ๊ทธ์™€ ๋ฐฐํฌ ๊ธฐ๋ก์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ณต๊ฐœ macOS arm64 ์‹คํ–‰ ํŒŒ์ผ๋„ ์ฒดํฌ์„ฌ๊ณผ ์†Œ์Šค ์ •๋ณด๋ฅผ ๋Œ€์กฐํ•ด ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ์กด ๋ชจ๋ธ๊ณผ ์›๋ž˜ ํ•™์Šตยท์„ ํƒ ๊ด€์ธก์€ ๊ฐ ๋ชจ๋ธ์˜ ๊ธฐ๋ก์— ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ ๋ฐ›๊ธฐ์™€ ์•ž์„  ์กฐ๋ฆฝ ๊ธฐ๋Šฅ์„ ํ•จ๊ป˜ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”์ดํŠธ ๋ฐฐ์—ด ์ถœ๋ ฅ, ๋น„ํŠธ ์—ฐ์‚ฐ๊ณผ ๋” ๋„“์€ ๋ฐ˜๋ณต ํ‘œํ˜„์€ ํ›„์† ๊ณผ์ œ์ž…๋‹ˆ๋‹ค.