Go ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋ฆด๋ฆฌ์Šค 1.13

๋„์ž… ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋ฆด๋ฆฌ์Šค 1.13๋กœ ์ด๋™๋Š” ์ปดํŒŒ์ผ ์–ธ์–ด์˜ ๋†’์€ ์„ฑ๋Šฅ๊ณผ ์ฝ”๋“œ ์ž‘์„ฑ ์šฉ์ด์„ฑ, ๊ฐœ๋ฐœ ์†๋„, ์˜ค๋ฅ˜ ๋ฐฉ์ง€ ๋“ฑ ์Šคํฌ๋ฆฝํŒ… ์–ธ์–ด์˜ ์žฅ์ ์„ ๊ฒฐํ•ฉํ•œ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์†”๋ฃจ์…˜์œผ๋กœ Google์ด ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ์ฐธ์—ฌ๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ ๋ฐฐํฌ์ž BSD ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ.

Go์˜ ๊ตฌ๋ฌธ์€ Python ์–ธ์–ด์—์„œ ์ผ๋ถ€ ์ฐจ์šฉํ•œ C ์–ธ์–ด์˜ ์นœ์ˆ™ํ•œ ์š”์†Œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์–ธ์–ด๋Š” ๋งค์šฐ ๊ฐ„๊ฒฐํ•˜์ง€๋งŒ ์ฝ”๋“œ๋Š” ์ฝ๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. Go ์ฝ”๋“œ๋Š” ๊ฐ€์ƒ ๋จธ์‹ ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹คํ–‰๋˜๋Š” ๋…๋ฆฝํ˜• ๋ฐ”์ด๋„ˆ๋ฆฌ ์‹คํ–‰ ํŒŒ์ผ๋กœ ์ปดํŒŒ์ผ๋ฉ๋‹ˆ๋‹ค(ํ”„๋กœํŒŒ์ผ๋ง, ๋””๋ฒ„๊น… ๋ฐ ๊ธฐํƒ€ ๋Ÿฐํƒ€์ž„ ๋ฌธ์ œ ๊ฐ์ง€ ํ•˜์œ„ ์‹œ์Šคํ…œ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค). ๋Ÿฐํƒ€์ž„ ๊ตฌ์„ฑ์š”์†Œ)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด C ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋น„์Šทํ•œ ์„ฑ๋Šฅ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํ”„๋กœ์ ํŠธ๋Š” ์ฒ˜์Œ์—๋Š” ๋ณ‘๋ ฌ ์ปดํ“จํŒ…์„ ๊ตฌ์„ฑํ•˜๊ณ  ๋ณ‘๋ ฌ ์‹คํ–‰ ๋ฐฉ๋ฒ• ๊ฐ„์˜ ์ƒํ˜ธ ์ž‘์šฉ์„ ์œ„ํ•œ ์šด์˜์ž ์ˆ˜์ค€ ์ˆ˜๋‹จ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์„ ํฌํ•จํ•˜์—ฌ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ๋ฉ€ํ‹ฐ ์ฝ”์–ด ์‹œ์Šคํ…œ์˜ ํšจ์œจ์ ์ธ ์ž‘๋™์— ์ดˆ์ ์„ ๋งž์ถฐ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ์–ธ์–ด๋Š” ๊ณผ๋„ํ•˜๊ฒŒ ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ ๋ธ”๋ก์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ๋ณดํ˜ธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ณ  ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ํ˜์‹ Go 1.13 ๋ฆด๋ฆฌ์Šค์— ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • crypto/tls ํŒจํ‚ค์ง€์—๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ”„๋กœํ† ์ฝœ ์ง€์›์ด ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. TLS 1.3. Ed25519 ๋””์ง€ํ„ธ ์„œ๋ช…์„ ์ง€์›ํ•˜๋Š” ์ƒˆ๋กœ์šด ํŒจํ‚ค์ง€ "crypto/ed25519"๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ด์ง„์ˆ˜(์˜ˆ: 0b101), 0์ง„์ˆ˜(377o2.71828), ํ—ˆ์ˆ˜(0i) ๋ฐ 1์ง„์ˆ˜ ๋ถ€๋™ ์†Œ์ˆ˜์ (1021x1p-000)์„ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•œ ์ƒˆ๋กœ์šด ์ˆซ์ž ๋ฆฌํ„ฐ๋Ÿด ์ ‘๋‘์‚ฌ์— ๋Œ€ํ•œ ์ง€์›๊ณผ "_" ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆซ์ž๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ์ˆ˜(000_XNUMX_XNUMX);
  • ์‹œํ”„ํŠธ ์—ฐ์‚ฐ์—์„œ ๋ถ€ํ˜ธ ์—†๋Š” ์นด์šดํ„ฐ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ์ œํ•œ์ด ์ œ๊ฑฐ๋˜์–ด ">" ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— uint ์œ ํ˜•์œผ๋กœ ๋ถˆํ•„์š”ํ•œ ๋ณ€ํ™˜์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • Illumos ํ”Œ๋žซํผ(GOOS=illumos)์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Android 10 ํ”Œ๋žซํผ๊ณผ์˜ ํ˜ธํ™˜์„ฑ์ด ๋ณด์žฅ๋˜์—ˆ์œผ๋ฉฐ FreeBSD(11.2) ๋ฐ macOS(10.11 "El Capitan")์˜ ์ตœ์†Œ ๋ฒ„์ „์— ๋Œ€ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์ด ์ฆ๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • GOPATH์˜ ๋Œ€์•ˆ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด ๋ชจ๋“ˆ ์‹œ์Šคํ…œ์˜ ์ง€์†์ ์ธ ๊ฐœ๋ฐœ์ž…๋‹ˆ๋‹ค. Go 1.13์—์„œ ์ด์ „์— ๋ฐœํ‘œ๋œ ๊ณ„ํš๊ณผ ๋‹ฌ๋ฆฌ ์ด ์‹œ์Šคํ…œ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์œผ๋ฉฐ GO111MODULE=on ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋ชจ๋“ˆ์ด ์ž๋™์œผ๋กœ ์ ์šฉ๋˜๋Š” ์ปจํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋ชจ๋“ˆ ์‹œ์Šคํ…œ์€ ํ†ตํ•ฉ ๋ฒ„์ „ ๊ด€๋ฆฌ ์ง€์›, ํŒจํ‚ค์ง€ ์ œ๊ณต ๊ธฐ๋Šฅ ๋ฐ ํ–ฅ์ƒ๋œ ์ข…์†์„ฑ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๋Š” ๋” ์ด์ƒ GOPATH ํŠธ๋ฆฌ ๋‚ด ์ž‘์—…์— ์–ฝ๋งค์ด์ง€ ์•Š๊ณ  ๋ฒ„์ „๋ณ„ ์ข…์†์„ฑ์„ ๋ช…์‹œ์ ์œผ๋กœ ์ •์˜ํ•˜๊ณ  ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๋นŒ๋“œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ด์ „ ๋ฆด๋ฆฌ์Šค์™€ ๋‹ฌ๋ฆฌ, ์ด์ œ go.mod ํŒŒ์ผ์ด GOPATH/src ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ์„ ๋•Œ๋ฅผ ํฌํ•จํ•˜์—ฌ go ๋ช…๋ น์„ ์‹คํ–‰ํ•  ๋•Œ ํ˜„์žฌ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ๋‚˜ ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ์„ ๋•Œ ์ƒˆ ์‹œ์Šคํ…œ์˜ ์ž๋™ ์ ์šฉ์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ณต๊ฐœ์ ์œผ๋กœ ์•ก์„ธ์Šค ๊ฐ€๋Šฅํ•œ ๋ชจ๋“ˆ์˜ ๊ฒฝ๋กœ๋ฅผ ์ •์˜ํ•˜๋Š” GOPRIVATE์™€ go.sum ํŒŒ์ผ์— ๋‚˜์—ด๋˜์ง€ ์•Š์€ ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ์ฒดํฌ์„ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋Š” GOSUMDB์ž…๋‹ˆ๋‹ค.

  • ๊ธฐ๋ณธ์ ์œผ๋กœ "go" ๋ช…๋ น์€ ๋ชจ๋“ˆ์„ ๋กœ๋“œํ•˜๊ณ  Google(proxy.golang.org, sum.golang.org ๋ฐ index.golang.org)์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ๋ชจ๋“ˆ ๋ฏธ๋Ÿฌ ๋ฐ ์ฒดํฌ์„ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌด๊ฒฐ์„ฑ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ์ง€์›์ด ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ "//go:binary-only-package" ๋ชจ๋“œ์—์„œ ํŒจํ‚ค์ง€๋ฅผ ๋นŒ๋“œํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
  • "go get" ๋ช…๋ น์— "@patch" ์ ‘๋ฏธ์‚ฌ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ชจ๋“ˆ์„ ์ตœ์‹  ์œ ์ง€ ๊ด€๋ฆฌ ๋ฆด๋ฆฌ์Šค๋กœ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•˜์ง€๋งŒ ํ˜„์žฌ ์ฃผ์š” ๋˜๋Š” ๋ถ€ ๋ฒ„์ „์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•จ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • ์†Œ์Šค ์ œ์–ด ์‹œ์Šคํ…œ์—์„œ ๋ชจ๋“ˆ์„ ๊ฒ€์ƒ‰ํ•  ๋•Œ "go" ๋ช…๋ น์€ ์ด์ œ ๋ฒ„์ „ ๋ฌธ์ž์—ด์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ์˜์‚ฌ ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ์ €์žฅ์†Œ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์™€ ์ผ์น˜์‹œํ‚ค๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
  • ์ถ”๊ฐ€ ์ง€์› ์˜ค๋ฅ˜ ๊ฒ€์‚ฌ (์˜ค๋ฅ˜ ๋ž˜ํ•‘) ํ‘œ์ค€ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๊ธฐ ์‚ฌ์šฉ์„ ํ—ˆ์šฉํ•˜๋Š” ๋ž˜ํผ ์ƒ์„ฑ์„ ํ†ตํ•ด. ์˜ˆ๋ฅผ ๋“ค์–ด, ์˜ค๋ฅ˜ "e"๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์˜ค๋ฅ˜ "w"๋ฅผ ๋‘˜๋Ÿฌ์Œ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ’€๋‹ค, "w"๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ "e"์™€ "w"๋Š” ๋ชจ๋‘ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์˜ค๋ฅ˜ "w"์— ๋”ฐ๋ผ ๊ฒฐ์ •์ด ๋‚ด๋ ค์ง€์ง€๋งŒ "e"๋Š” "w"์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ปจํ…์ŠคํŠธ๋ฅผ ์ œ๊ณตํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅด๊ฒŒ ํ•ด์„ํ•ฉ๋‹ˆ๋‹ค.
  • ๋Ÿฐํƒ€์ž„ ๊ตฌ์„ฑ ์š”์†Œ์˜ ์„ฑ๋Šฅ์ด ์ตœ์ ํ™”๋˜์—ˆ์œผ๋ฉฐ(์ตœ๋Œ€ 30%์˜ ์†๋„ ์ฆ๊ฐ€๊ฐ€ ํ™•์ธ๋จ) ์šด์˜ ์ฒด์ œ์— ๋Œ€ํ•œ ๋ณด๋‹ค ๊ณต๊ฒฉ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๋ฐ˜ํ™˜์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์ด์ „์—๋Š” ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ XNUMX๋ถ„ ์ด์ƒ ํ›„์— ๋ฐ˜ํ™˜๋˜์—ˆ์ง€๋งŒ ์ด์ œ๋Š” ์ฆ‰์‹œ ๋ฐ˜ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค). ํž™ ํฌ๊ธฐ๋ฅผ ์ค„์ธ ํ›„).

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€