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

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

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

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

Go 1.16์— ๋„์ž…๋œ ์ฃผ์š” ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • embed ํŒจํ‚ค์ง€๊ฐ€ ์ถ”๊ฐ€๋˜์–ด ์ž„์˜์˜ ํŒŒ์ผ๊ณผ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ํ”„๋กœ๊ทธ๋žจ์— ์ž„๋ฒ ๋“œํ•˜๋Š” ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ ์ž„๋ฒ ๋“œํ•ด์•ผ ํ•˜๋Š” ํŒŒ์ผ์„ ์ง€์ •ํ•˜๋Š” ์ƒˆ๋กœ์šด ์ง€์‹œ์–ด "//go:embed"๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ฝ”๋“œ์— "//go:embed test.txt" ์ฃผ์„์„ ์ง€์ •ํ•˜๊ณ  ๊ทธ ๋’ค์— "var f embed.FS" ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋ฉด test.txt ํŒŒ์ผ์ด ์ž„๋ฒ ๋“œ๋˜๊ณ  ์„ค๋ช…์ž "f"๋ฅผ ํ†ตํ•ด ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ํŠน์ • ์œ ํ˜•์˜ ๋ฆฌ์†Œ์Šค ๋˜๋Š” ๊ฐœ๋ณ„ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ํŒŒ์ผ์„ ์ž„๋ฒ ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, version.txt ํŒŒ์ผ์—์„œ ๋ฌธ์ž์—ด ๋ณ€์ˆ˜ "s"๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. import _ "embed" //go:embed version.txt var s string print(s)
  • ํ†ตํ•ฉ ๋ฒ„์ „ ๊ด€๋ฆฌ ์ง€์› ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ์ƒˆ๋กœ์šด ๋ชจ๋“ˆ ์‹œ์Šคํ…œ์ด ์ด์ œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•„์ˆ˜์ด๋ฉฐ, GOPATH ๊ธฐ๋ฐ˜ ์ข…์†์„ฑ ๊ด€๋ฆฌ ๋„๊ตฌ๋ฅผ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. GO111MODULE ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” ์ด์ œ ๊ธฐ๋ณธ์ ์œผ๋กœ "on"์œผ๋กœ ์„ค์ •๋˜๋ฉฐ, ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ๋‚˜ ์ƒ์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ์— go.mod ํŒŒ์ผ์ด ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ๋ชจ๋“ˆ ๋ชจ๋“œ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋ชจ๋“œ์—์„œ "go build" ๋ฐ "go test"์™€ ๊ฐ™์€ ๋นŒ๋“œ ๋ช…๋ น์€ go.mod ๋ฐ go.sum์˜ ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•˜์ง€ ์•Š์œผ๋ฉฐ, "go install" ๋ช…๋ น์€ ๋ฒ„์ „๋ณ„ ์ธ์ˆ˜("go install example.com/cmd@v1.0.0")๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋™์ž‘์œผ๋กœ ๋Œ์•„๊ฐ€๋ ค๋ฉด GO111MODULE์„ "auto"๋กœ ๋ณ€๊ฒฝํ•˜์‹ญ์‹œ์˜ค. ๊ฐœ๋ฐœ์ž์˜ 96%๊ฐ€ ์ด๋ฏธ ์ƒˆ๋กœ์šด ๋ชจ๋“ˆ ์‹œ์Šคํ…œ์œผ๋กœ ์ „ํ™˜ํ•œ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.
  • ๋ง์ปค๊ฐ€ ์ตœ์ ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ, ๋งํ‚น ์†๋„๊ฐ€ 20~25% ๋นจ๋ผ์ง€๊ณ  ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด 5~15% ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ด์ œ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋ฃจํ”„, ๋ฉ”์„œ๋“œ ๊ฐ’, '์œ ํ˜• ์Šค์œ„์น˜' ๊ตฌ์กฐ์— ๋Œ€ํ•œ ๋‹จ์ถ•ํ˜•์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธ๋ผ์ธ ํ•จ์ˆ˜ ํ™•์žฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ์ƒˆ๋กœ์šด Apple M1 ARM ์นฉ์ด ์žฅ์ฐฉ๋œ Apple ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 64๋น„ํŠธ ARM ์‹œ์Šคํ…œ์—์„œ NetBSD๋ฅผ ์ง€์›ํ•˜๊ณ  MIPS64 ์‹œ์Šคํ…œ์—์„œ OpenBSD๋ฅผ ์ง€์›ํ•˜๋Š” netbsd/arm64 ๋ฐ openbsd/mips64 ํฌํŠธ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. linux/riscv64 ํฌํŠธ์— cgo ๋ฐ "-buildmode=pie" ๋ชจ๋“œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • x87 ์ปดํŒŒ์ผ ๋ชจ๋“œ(GO386=387) ์ง€์›์ด ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. SSE2 ๋ช…๋ น์–ด๊ฐ€ ์—†๋Š” ํ”„๋กœ์„ธ์„œ์— ๋Œ€ํ•œ ์ง€์›์€ ์ด์ œ ์†Œํ”„ํŠธ์›จ์–ด ๋ชจ๋“œ "GO386=softfloat"๋ฅผ ํ†ตํ•ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ, Dart 2.12 ์–ธ์–ด ๋ฒ ํƒ€ ๋ฆด๋ฆฌ์Šค ํ…Œ์ŠคํŠธ๊ฐ€ ์‹œ์ž‘๋˜์—ˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” ๊ฐ’์ด ์ •์˜๋˜์ง€ ์•Š๊ณ  Null๋กœ ์„ค์ •๋œ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜์—ฌ ๋ฐœ์ƒํ•˜๋Š” ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” Null ์•ˆ์ „ ๋ชจ๋“œ๊ฐ€ ์•ˆ์ •ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋“œ๋Š” ๋ณ€์ˆ˜์— ๋ช…์‹œ์ ์œผ๋กœ Null ๊ฐ’์„ ํ• ๋‹นํ•˜์ง€ ์•Š๋Š” ํ•œ ๋ณ€์ˆ˜๊ฐ€ ์ •์˜๋˜์ง€ ์•Š์€ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ชจ๋“œ๋Š” ๋ณ€์ˆ˜์˜ ํƒ€์ž…์„ ์—„๊ฒฉํ•˜๊ฒŒ ๊ณ ๋ คํ•˜๋ฏ€๋กœ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ถ”๊ฐ€์ ์ธ ์ตœ์ ํ™”๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํƒ€์ž… ์ค€์ˆ˜ ์—ฌ๋ถ€๋Š” ์ปดํŒŒ์ผ ํƒ€์ž„์— ๊ฒ€์‚ฌ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, int์™€ ๊ฐ™์ด ์ •์˜๋˜์ง€ ์•Š์€ ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•˜์ง€ ์•Š๋Š” ํƒ€์ž…์˜ ๋ณ€์ˆ˜์— Null ๊ฐ’์„ ํ• ๋‹นํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

DDoS ๋ณดํ˜ธ, VPS VDS ์„œ๋ฒ„๊ฐ€ ์žˆ๋Š” ์‚ฌ์ดํŠธ๋ฅผ ์œ„ํ•œ ์•ˆ์ •์ ์ธ ํ˜ธ์ŠคํŒ… ๊ตฌ์ž… ๐Ÿ”ฅ DDoS ๊ณต๊ฒฉ ๋ฐฉ์ง€ ๊ธฐ๋Šฅ์ด ํƒ‘์žฌ๋œ ์•ˆ์ •์ ์ธ ์›น์‚ฌ์ดํŠธ ํ˜ธ์ŠคํŒ…, VPS ๋ฐ VDS ์„œ๋ฒ„๋ฅผ ๊ตฌ๋งคํ•˜์„ธ์š” | ProHoster