2023๋…„ 8์›” 10์ผยท1๋ถ„ ์ฝ๊ธฐ

Golang 1.21๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ˜์‹ : ์ƒˆ๋กœ์šด ๋‚ด์žฅ ํ•จ์ˆ˜, ํ”„๋กœํ•„ ๊ธฐ๋ฐ˜ ์ตœ์ ํ™” ๋“ฑ

์ตœ๊ทผ ์ถœ์‹œ๋œ Google Go ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋ฒ„์ „์ธ Golang 1.21์„ ๋งŒ๋‚˜๋ณด์„ธ์š”. ๋‚ด์žฅ ํ•จ์ˆ˜๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๊ณ  ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ๋‹จ๊ณ„์—์„œ ํ”„๋กœํ•„ ๊ธฐ๋ฐ˜ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฒ„์ „์€ ๋˜ํ•œ WebAssembly ํ˜ธํ™˜์„ฑ์˜ ๊ฐœ์„  ์‚ฌํ•ญ์„ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค.

Golang 1.21๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ˜์‹ : ์ƒˆ๋กœ์šด ๋‚ด์žฅ ํ•จ์ˆ˜, ํ”„๋กœํ•„ ๊ธฐ๋ฐ˜ ์ตœ์ ํ™” ๋“ฑ

ํ˜„๋Œ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ™˜๊ฒฝ์€ Google์˜ Go ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ์ƒˆ๋กœ์šด ์—…๋ฐ์ดํŠธ์ธ Golang 1.21์˜ ๋“ฑ์žฅ์„ ๋ชฉ๊ฒฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋‚ด์žฅ ๊ธฐ๋Šฅ๊ณผ PGO(Profile-Guided Optimization)์˜ ์ผ๋ฐ˜ ๊ฐ€์šฉ์„ฑ์ด ๊ฐ•ํ™”๋œ ์ด ๋ฒ„์ „์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝํ—˜์„ ์žฌ์ •์˜ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ WebAssembly์™€์˜ ํ˜ธํ™˜์„ฑ์ด ๋ˆˆ์— ๋„๊ฒŒ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฒ„์ „์—์„œ ๋ˆˆ์— ๋„๋Š” ์†Œ๊ฐœ๋Š” ๋‚ด์žฅ ํ•จ์ˆ˜์ธ min, max ๋ฐ clear์ž…๋‹ˆ๋‹ค. min ๋ฐ max ํ•จ์ˆ˜๋Š” ์ •๋ ฌ๋œ ์œ ํ˜• ๋˜๋Š” ๋ฏธ๋ฆฌ ๊ฒฐ์ •๋œ ์ˆ˜์˜ ์ธ์ˆ˜ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’ ๋˜๋Š” ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‘˜ ๋‹ค ๊ธฐ๋Šฅํ•˜๋ ค๋ฉด ์ ์–ด๋„ ํ•˜๋‚˜์˜ ์ธ์ˆ˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด์— clear ํ•จ์ˆ˜๋Š” ๋งต, ์Šฌ๋ผ์ด์Šค ๋˜๋Š” ์œ ํ˜• ๋งค๊ฐœ๋ณ€์ˆ˜ ์œ ํ˜•์„ ๋Œ€์ƒ์œผ๋กœ ํ•˜๊ณ  ์ธ์ˆ˜์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ โ€‹โ€‹์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ๋ฌดํšจํ™”ํ•ฉ๋‹ˆ๋‹ค.

8์›” 8์ผ ๊ณต์‹ ๋ฆด๋ฆฌ์Šค ์ดํ›„ Golang 1.21์€ ํ”„๋กœ์ ํŠธ ์›น ์‚ฌ์ดํŠธ์—์„œ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ๋•์…˜ ๋ฆด๋ฆฌ์Šค๋Š” 6์›” 21์ผ์— ๊ฒŒ์‹œ๋œ ์ด์ „ ๋ฆด๋ฆฌ์Šค ํ›„๋ณด๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

์ง€๋‚œ 2์›” Golang 1.20์—์„œ ํ”„๋ฆฌ๋ทฐ๋กœ ์ฒ˜์Œ ์†Œ๊ฐœ๋˜์—ˆ๋˜ PGO๋Š” ์ตœ์‹  ๋ฒ„์ „์—์„œ ํฐ ๋ฐœ์ „์„ ์ด๋ฃจ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์ผ๋ฐ˜ ๋ฆด๋ฆฌ์Šค์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ปดํŒŒ์ผ๋Ÿฌ ๋„๊ตฌ ์ฒด์ธ์ด ๋Ÿฐํƒ€์ž„ ํ”„๋กœํ•„ ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์›Œํฌ๋กœ๋“œ๋ณ„ ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋ณ„ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. Go ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ์ž์˜ ์ฃผ์žฅ์— ๋”ฐ๋ฅด๋ฉด PGO๋Š” ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์„ฑ๋Šฅ์„ 2%์—์„œ 7% ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐ ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค. Go ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ PGO ๊ธฐ๋Šฅ์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Go ์ปดํŒŒ์ผ๋Ÿฌ์™€ PGO๋ฅผ ๋ฐœ์ „์‹œํ‚ฌ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Golang 1.21์€ ์ถ”๊ฐ€์ ์ธ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ ์ตœ์ ํ™”์— ์ดˆ์ ์„ ๋งž์ถ”๋ฉด ํŠน์ • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ผฌ๋ฆฌ ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ตœ๋Œ€ 40%๊นŒ์ง€ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์‹œ์— ๋Ÿฐํƒ€์ž„/์ถ”์ ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ถ”์ ์„ ์ˆ˜์ง‘ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋Š” AMD64 ๋ฐ Arm64 ์‹œ์Šคํ…œ์—์„œ ํ›จ์”ฌ ์ ์€ CPU ๋น„์šฉ์„ ์ดˆ๋ž˜ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ ค๋Š” ๊ฐœ๋ฐœ์ž์—๊ฒŒ AppMaster ํƒ์›”ํ•œ ์ถœ๋ฐœ์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. no-code ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ธ AppMaster ํ†ตํ•ด ๊ณ ๊ฐ์€ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์‹œ๊ฐ์ ์œผ๋กœ ์„ค๊ณ„ํ•˜๊ณ  ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ REST API ๋ฐ WSS ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜๋ฉด ํ‹€๋ฆผ์—†์ด ๊ฐœ๋ฐœ ๊ฒฝํ—˜์„ ํ–ฅ์ƒํ•˜๊ณ  Golang 1.21 ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Easy to start
Create something amazing

Experiment with AppMaster with free plan.
When you will be ready you can choose the proper subscription.

Get Started
Golang 1.21๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ˜์‹ : ์ƒˆ๋กœ์šด ๋‚ด์žฅ ํ•จ์ˆ˜, ํ”„๋กœํ•„ ๊ธฐ๋ฐ˜ ์ตœ์ ํ™” ๋“ฑ | AppMaster