Go์ ๊ตฌ๋ฌธ์ Python ์ธ์ด์์ ์ผ๋ถ ์ฐจ์ฉํ C ์ธ์ด์ ์น์ํ ์์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ์ธ์ด๋ ๋งค์ฐ ๊ฐ๊ฒฐํ์ง๋ง ์ฝ๋๋ ์ฝ๊ณ ์ดํดํ๊ธฐ ์ฝ์ต๋๋ค. Go ์ฝ๋๋ ๊ฐ์ ๋จธ์ ์ ์ฌ์ฉํ์ง ์๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก ์คํ๋๋ ๋
๋ฆฝํ ๋ฐ์ด๋๋ฆฌ ์คํ ํ์ผ๋ก ์ปดํ์ผ๋ฉ๋๋ค(ํ๋กํ์ผ๋ง, ๋๋ฒ๊น
๋ฐ ๊ธฐํ ๋ฐํ์ ๋ฌธ์ ๊ฐ์ง ํ์ ์์คํ
์ ๋ค์๊ณผ ๊ฐ์ด ํตํฉ๋ฉ๋๋ค).
์ด ํ๋ก์ ํธ๋ ์ฒ์์๋ ๋ณ๋ ฌ ์ปดํจํ ์ ๊ตฌ์ฑํ๊ณ ๋ณ๋ ฌ ์คํ ๋ฐฉ๋ฒ ๊ฐ์ ์ํธ ์์ฉ์ ์ํ ์ด์์ ์์ค ์๋จ์ ์ ๊ณตํ๋ ๊ฒ์ ํฌํจํ์ฌ ๋ฉํฐ ์ค๋ ๋ ํ๋ก๊ทธ๋๋ฐ๊ณผ ๋ฉํฐ ์ฝ์ด ์์คํ ์ ํจ์จ์ ์ธ ์๋์ ์ด์ ์ ๋ง์ถฐ ๊ฐ๋ฐ๋์์ต๋๋ค. ๋ํ ์ด ์ธ์ด๋ ๊ณผ๋ํ๊ฒ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก์ ๋ํ ๊ธฐ๋ณธ ๋ณดํธ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ ๊ฐ๋น์ง ์์ง๊ธฐ๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
์ฃผ์
- 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