Go์ ๊ตฌ๋ฌธ์ Python ์ธ์ด์์ ์ผ๋ถ ์ฐจ์ฉํ C ์ธ์ด์ ์น์ํ ์์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ์ธ์ด๋ ๋งค์ฐ ๊ฐ๊ฒฐํ์ง๋ง ์ฝ๋๋ ์ฝ๊ณ ์ดํดํ๊ธฐ ์ฝ์ต๋๋ค. Go ์ฝ๋๋ ๊ฐ์ ๋จธ์ ์ ์ฌ์ฉํ์ง ์๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก ์คํ๋๋ ๋
๋ฆฝํ ๋ฐ์ด๋๋ฆฌ ์คํ ํ์ผ๋ก ์ปดํ์ผ๋ฉ๋๋ค(ํ๋กํ์ผ๋ง, ๋๋ฒ๊น
๋ฐ ๊ธฐํ ๋ฐํ์ ๋ฌธ์ ๊ฐ์ง ํ์ ์์คํ
์ ๋ค์๊ณผ ๊ฐ์ด ํตํฉ๋ฉ๋๋ค).
์ด ํ๋ก์ ํธ๋ ์ฒ์์๋ ๋ณ๋ ฌ ์ปดํจํ ์ ๊ตฌ์ฑํ๊ณ ๋ณ๋ ฌ ์คํ ๋ฐฉ๋ฒ ๊ฐ์ ์ํธ ์์ฉ์ ์ํ ์ด์์ ์์ค ์๋จ์ ์ ๊ณตํ๋ ๊ฒ์ ํฌํจํ์ฌ ๋ฉํฐ ์ค๋ ๋ ํ๋ก๊ทธ๋๋ฐ๊ณผ ๋ฉํฐ ์ฝ์ด ์์คํ ์ ํจ์จ์ ์ธ ์๋์ ์ด์ ์ ๋ง์ถฐ ๊ฐ๋ฐ๋์์ต๋๋ค. ๋ํ ์ด ์ธ์ด๋ ๊ณผ๋ํ๊ฒ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก์ ๋ํ ๊ธฐ๋ณธ ๋ณดํธ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ ๊ฐ๋น์ง ์์ง๊ธฐ๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
์ฃผ์
- "go" ๋ช ๋ น์ ์ ๋ชจ๋ ์์คํ ์ ์ผ๋ฐ ์ฌ์ฉ์ด ๊ฐ๋ฅํ ๊ฒ์ผ๋ก ์ ์ธ๋๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋๋ฉฐ GOPATH ๋์ ์ข ์์ฑ ๊ด๋ฆฌ์ ๊ถ์ฅ๋ฉ๋๋ค. ์๋ก์ด ๋ชจ๋ ์์คํ ์ ํตํฉ ๋ฒ์ ๊ด๋ฆฌ ์ง์, ํจํค์ง ์ ๊ณต ๊ธฐ๋ฅ ๋ฐ ํฅ์๋ ์ข ์์ฑ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ๊ฐ์ถ๊ณ ์์ต๋๋ค. ๋ชจ๋์ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ์๋ ๋ ์ด์ GOPATH ํธ๋ฆฌ ๋ด ์์ ์ ์ฝ๋งค์ด์ง ์๊ณ ๋ฒ์ ๋ณ ์ข ์์ฑ์ ๋ช ์์ ์ผ๋ก ์ ์ํ๊ณ ๋ฐ๋ณต ๊ฐ๋ฅํ ๋น๋๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
-
์ถ๊ฐ๋จ ๋ฉ์๋ ์ธํธ๊ฐ ๊ฒน์น๋ ์ธํฐํ์ด์ค ๋ด์ฅ์ ์ง์ํฉ๋๋ค. ๋ด์ฅ ์ธํฐํ์ด์ค์ ๋ฉ์๋๋ ์ด์ ๊ธฐ์กด ์ธํฐํ์ด์ค์ ๋ฉ์๋์ ๋์ผํ ์ด๋ฆ๊ณผ ์๋ช ์ ๊ฐ์ง ์ ์์ต๋๋ค. ๋ช ์์ ์ผ๋ก ์ ์ธ๋ ๋ฉ์๋๋ ์ด์ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ณ ์ ํ ์ํ๋ก ์ ์ง๋ฉ๋๋ค. - "์ง์ฐ" ํํ์์ ์ฑ๋ฅ์ด ํฅ์๋์ด ์ง์ฐ๋ ํจ์๋ฅผ ์ง์ ํธ์ถํ๋ ๊ฒ๋งํผ ๋นจ๋ผ์ก์ผ๋ฉฐ ์ฑ๋ฅ์ ๋ฏผ๊ฐํ ์ฝ๋์์ ์ง์ฐ๋ ํจ์ ์คํ์ด ๊ฐ๋ฅํด์ก์ต๋๋ค.
- ์ฝ๋ฃจํด(๊ณ ๋ฃจํด)์ ๋น๋๊ธฐ ์ ์ ์ด ์ ๊ณต๋ฉ๋๋ค. ํจ์ ํธ์ถ์ ํฌํจํ์ง ์๋ ๋ฃจํ๋ ์ด์ ์ ์ฌ์ ์ผ๋ก ์ค์ผ์ค๋ฌ ๊ต์ฐฉ ์ํ๋ก ์ด์ด์ง๊ฑฐ๋ ๊ฐ๋น์ง ์์ง ์์์ ์ง์ฐ์ํฌ ์ ์์ต๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง ํ ๋น ์์คํ ์ ํจ์จ์ฑ์ด ํฅ์๋์์ผ๋ฉฐ ์ด์ ํฐ GOMAXPROCS ๊ฐ์ ์ฌ์ฉํ๋ ๊ตฌ์ฑ์์ ์ ๊ธ ๊ฒฝํฉ์ด ํจ์ฌ ์ค์ด๋ญ๋๋ค. ๊ทธ ๊ฒฐ๊ณผ ๋๊ธฐ ์๊ฐ์ด ์ค์ด๋ค๊ณ ์ฒ๋ฆฌ๋์ด ์ฆ๊ฐํ๋ ๋์์ ๋๊ท๋ชจ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก์ ์ง์ค์ ์ผ๋ก ๋ฐฐํฌํ ์ ์์ต๋๋ค.
- time.After, time.Tick, net.Conn.SetDeadline ํจ์์ ์ฌ์ฉ๋๋ ๋ด๋ถ ํ์ด๋จธ ์คํ ์ ์ ๊ธ์ด ์ต์ ํ๋์์ผ๋ฉฐ ์ปจํ ์คํธ ์ ํ ํ์๊ฐ ๊ฐ์ํ์ต๋๋ค.
- go ๋ช ๋ น์์ ๋ฃจํธ์ ํน์ ๊ณต๊ธ์ ์ฒด์ ์ฐ๊ฒฐ๋ ์ธ๋ถ ์ข ์์ฑ์ ์ ๋ฌํ๊ธฐ ์ํ ๊ณต๊ธ์ ์ฒด ๋๋ ํฐ๋ฆฌ๊ฐ ์๋ ๊ฒฝ์ฐ "-mod=vendor" ํ๋๊ทธ๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋ฉ๋๋ค. "vendor" ๋๋ ํ ๋ฆฌ๊ฐ ์๋ ๋ชจ๋ ์บ์์์ ๋ชจ๋์ ๋ก๋ํ๊ธฐ ์ํด ๋ณ๋์ "-mod=mod" ํ๋๊ทธ๋ฅผ ์ถ๊ฐํ์ต๋๋ค. go.mod ํ์ผ์ด ์ฝ๊ธฐ ์ ์ฉ์ธ ๊ฒฝ์ฐ ์ต์์ "๊ณต๊ธ์ ์ฒด" ๋๋ ํฐ๋ฆฌ๊ฐ ์์ผ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก "-mod=readonly" ํ๋๊ทธ๊ฐ ์ค์ ๋ฉ๋๋ค. ๋ชจ๋์ ๋ฃจํธ ๋๋ ํฐ๋ฆฌ์ ์๋ ํ์ผ ๋์ ๋์ฒด go.mod ํ์ผ์ ์ง์ ํ๊ธฐ ์ํด "-modfile=file" ํ๋๊ทธ๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- go ๋ช ๋ น์ผ๋ก ์ค์ ํ ๋ HTTPS ์ฌ์ฉ์ด ํ์ํ์ง ์๊ณ ๋ชจ๋์ ์ง์ ๋ก๋ํ ๋ ์ธ์ฆ์ ํ์ธ์ ๊ฑด๋๋ฐ๋ GOINSECURE ํ๊ฒฝ ๋ณ์๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
- ์ปดํ์ผ๋ฌ๋ unsafe.Pointer์ ์์ ํ ์ฌ์ฉ์ ์ํ ๊ท์น์ ์ค์ํ๋์ง ์ฝ๋๋ฅผ ํ์ธํ๊ธฐ ์ํด ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋๋ "-d=checkptr" ํ๋๊ทธ๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- ์ ํจํค์ง๊ฐ ๋ฐฐ์ก์ ํฌํจ๋์ด ์์ต๋๋ค.
ํด์/๋งํ์ ๋น์ํธํ ํด์ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์์์ ๋ฐ์ดํธ ์ํ์ค ๋๋ ๋ฌธ์์ด์ ๋ํ ํด์ ํ ์ด๋ธ์ ์์ฑํฉ๋๋ค. - Linux์์ 64๋นํธ RISC-V ํ๋ซํผ์ ๋ํ ์คํ์ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- 64๋นํธ ARM ์์คํ ์ FreeBSD์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
์ถ์ฒ : opennet.ru