Go 1.18 ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ถ์๊ฐ ๋ฐํ๋์์ต๋๋ค. ์ด ์ธ์ด๋ ์ปดํ์ผ๋ ์ธ์ด์ ๊ณ ์ฑ๋ฅ๊ณผ ์ฝ๋ ์์ฑ ์ฉ์ด์ฑ ๋ฑ ์คํฌ๋ฆฝํ ์ธ์ด์ ์ฅ์ ์ ๊ฒฐํฉํ ํ์ด๋ธ๋ฆฌ๋ ์๋ฃจ์ ์ผ๋ก Google์ด ์ปค๋ฎค๋ํฐ์ ์ฐธ์ฌ๋ฅผ ํตํด ๊ฐ๋ฐํ๊ณ ์์ต๋๋ค. , ๊ฐ๋ฐ ์๋ ๋ฐ ์ค๋ฅ ๋ฐฉ์ง. ํ๋ก์ ํธ ์ฝ๋๋ BSD ๋ผ์ด์ผ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค.
Go์ ๊ตฌ๋ฌธ์ Python ์ธ์ด์์ ์ผ๋ถ ์ฐจ์ฉํ C ์ธ์ด์ ์น์ํ ์์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ์ธ์ด๋ ๋งค์ฐ ๊ฐ๊ฒฐํ์ง๋ง ์ฝ๋๋ ์ฝ๊ณ ์ดํดํ๊ธฐ ์ฝ์ต๋๋ค. Go ์ฝ๋๋ ๊ฐ์ ๋จธ์ ์ ์ฌ์ฉํ์ง ์๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก ์คํ๋๋ ๋ ๋ฆฝํ ๋ฐ์ด๋๋ฆฌ ์คํ ํ์ผ๋ก ์ปดํ์ผ๋์ด(ํ๋กํ์ผ๋ง, ๋๋ฒ๊น ๋ชจ๋ ๋ฐ ๊ธฐํ ๋ฐํ์ ๋ฌธ์ ๊ฐ์ง ํ์ ์์คํ ์ด ๋ฐํ์ ๊ตฌ์ฑ ์์๋ก ํตํฉ๋จ) C ํ๋ก๊ทธ๋จ๊ณผ ๋น์ทํ ์ฑ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
์ด ํ๋ก์ ํธ๋ ์ฒ์์๋ ๋ณ๋ ฌ ์ปดํจํ ์ ๊ตฌ์ฑํ๊ณ ๋ณ๋ ฌ ์คํ ๋ฐฉ๋ฒ ๊ฐ์ ์ํธ ์์ฉ์ ์ํ ์ด์์ ์์ค ์๋จ์ ์ ๊ณตํ๋ ๊ฒ์ ํฌํจํ์ฌ ๋ฉํฐ ์ค๋ ๋ ํ๋ก๊ทธ๋๋ฐ๊ณผ ๋ฉํฐ ์ฝ์ด ์์คํ ์ ํจ์จ์ ์ธ ์๋์ ์ด์ ์ ๋ง์ถฐ ๊ฐ๋ฐ๋์์ต๋๋ค. ๋ํ ์ด ์ธ์ด๋ ๊ณผ๋ํ๊ฒ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก์ ๋ํ ๊ธฐ๋ณธ ๋ณดํธ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ ๊ฐ๋น์ง ์์ง๊ธฐ๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
์ ๋ฒ์ ์๋ ์ผ๋ฐ ํจ์ ๋ฐ ์ ํ(์ ๋ค๋ฆญ)์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ผ๋ฉฐ, ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ํ ๋ฒ์ ์ฌ๋ฌ ์ ํ์ ์ฌ์ฉํ๋๋ก ์ค๊ณ๋ ๊ธฐ๋ฅ์ ์ ์ํ๊ณ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ๋ฐ์ดํฐ ์ ํ์ ๊ฑธ์ณ ๊ฒฐํฉ๋ ์ ํ์ ์์ฑํ๋ ๊ฒ๋ ๊ฐ๋ฅํฉ๋๋ค. ์ ๋ค๋ฆญ์ ๋ํ ์ง์์ ๊ธฐ์กด ์ฝ๋์์ ํ์ ํธํ์ฑ์ ์ ์งํ๋ฉด์ ๊ตฌํ๋ฉ๋๋ค. // ์ค์ ๋ ๊ฐ ํฉ๊ณ, int64 ๋ฐ float64 ์ ํ์ ์๋ func SumIntsOrFloats[K Comparable, V int64 | float64](m map[K]V) V { var s V for _, v := range m { s += v } return s } // ์ผ๋ฐ ์ ํ ์ ์๊ฐ ํฌํจ๋ ๋ ๋ค๋ฅธ ์ต์ : type Number ์ธํฐํ์ด์ค { int64 | float64 } func SumNumbers[K ๋น๊ต ๊ฐ๋ฅ, V ์ซ์](m map[K]V) V { var s V for _, v := ๋ฒ์ m { s += v } return s }
๊ธฐํ ๊ฐ์ ์ฌํญ:
- ํผ์ง ์ฝ๋ ํ ์คํธ๋ฅผ ์ํ ์ ํธ๋ฆฌํฐ๊ฐ ํ์ค ํดํท์ ํตํฉ๋์์ต๋๋ค. ํผ์ง ํ ์คํธ ์ค์ ์ ๋ ฅ ๋ฐ์ดํฐ์ ๊ฐ๋ฅํ ๋ชจ๋ ๋ฌด์์ ์กฐํฉ ์คํธ๋ฆผ์ด ์์ฑ๋๊ณ ์ฒ๋ฆฌ ์ค ๋ฐ์ํ ์ ์๋ ์ค๋ฅ๊ฐ ๊ธฐ๋ก๋ฉ๋๋ค. ์ํ์ค๊ฐ ์ถฉ๋ํ๊ฑฐ๋ ์์ ์๋ต๊ณผ ์ผ์นํ์ง ์๋ ๊ฒฝ์ฐ ์ด ๋์์ ๋ฒ๊ทธ๋ ์ทจ์ฝ์ ์ ๋ํ๋ผ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
- ๋ค์ค ๋ชจ๋ ์์ ์์ญ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์ด ํ ๋ฒ์ ์ฌ๋ฌ ๋ชจ๋์์ ๋ช ๋ น์ ์คํํ ์ ์๊ณ ์ฌ๋ฌ ๋ชจ๋์์ ์ฝ๋๋ฅผ ๋์์ ๋น๋ํ๊ณ ์คํํ ์ ์์ต๋๋ค.
- Apple M1, ARM64 ๋ฐ PowerPC64 ํ๋ก์ธ์ ๊ธฐ๋ฐ ์์คํ ์ ์ฑ๋ฅ์ด ๋ํญ ์ต์ ํ๋์์ต๋๋ค. ์คํ ๋์ ๋ ์ง์คํฐ๋ฅผ ์ฌ์ฉํ์ฌ ํจ์์ ์ธ์๋ฅผ ์ ๋ฌํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ๊ธฐ๋ฅ์ ํ์ฑํํ์ต๋๋ค. ์ปดํ์ผ๋ฌ์ ์ํ ๋ฃจํ์ ์ธ๋ผ์ธ ์ธ๋กค๋ง์ด ๊ฐ์ ๋์์ต๋๋ค. ์ปดํ์ผ๋ฌ์ ์ ํ ๊ฒ์ฌ๊ฐ ์์ ํ ์ฌ์ค๊ณ๋์์ต๋๋ค. ์ผ๋ถ ํ ์คํธ์์๋ ์ด์ ๋ฆด๋ฆฌ์ค์ ๋นํด ์ฝ๋ ์ฑ๋ฅ์ด 20% ํฅ์๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ง๋ง ์ปดํ์ผ ์์ฒด์๋ ์ฝ 15% ๋ ์ค๋ ๊ฑธ๋ฆฝ๋๋ค.
- ๋ฐํ์ ์, ํด์ ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ด์ ์ฒด์ ๋ก ๋ฐํํ๋ ํจ์จ์ฑ์ด ํฅ์๋์์ผ๋ฉฐ ๊ฐ๋น์ง ์์ง๊ธฐ์ ์๋์ด ๊ฐ์ ๋์ด ๋์์ ๋ ์์ธกํ๊ธฐ ์ฌ์์ก์ต๋๋ค.
- ์๋ก์ด ํจํค์ง net/netip ๋ฐ debug/buildinfo๊ฐ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ถ๊ฐ๋์์ต๋๋ค. TLS 1.0 ๋ฐ 1.1์ ๋ํ ์ง์์ ํด๋ผ์ด์ธํธ ์ฝ๋์์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋นํ์ฑํ๋์ด ์์ต๋๋ค. crypto/x509 ๋ชจ๋์ด SHA-1 ํด์๋ฅผ ์ฌ์ฉํ์ฌ ์๋ช ๋ ์ธ์ฆ์ ์ฒ๋ฆฌ๋ฅผ ์ค์งํ์ต๋๋ค.
- Linux ํ๊ฒฝ์ ๋ํ ์๊ตฌ ์ฌํญ์ด ๋์์ก์ต๋๋ค. ์๋ํ๋ ค๋ฉด ์ด์ ์ต์ ๋ฒ์ 2.6.32์ Linux ์ปค๋์ด ํ์ํฉ๋๋ค. ๋ค์ ๋ฆด๋ฆฌ์ค์์๋ FreeBSD์ ๋ํด์๋ ์ ์ฌํ ๋ณ๊ฒฝ์ด ์์๋๋ฉฐ(FreeBSD 11.x ๋ถ๊ธฐ์ ๋ํ ์ง์์ด ์ค๋จ๋จ) ์๋ํ๋ ค๋ฉด ์ต์ํ FreeBSD 12.2๊ฐ ํ์ํฉ๋๋ค.
์ถ์ฒ : opennet.ru