Go์ ์ฅ๋จ์
๊ทธ๊ฐ Go๋ฅผ ์๋ฒํ๊ฒฝ์ ์ข ์จ๋ณด๋ฉด์ ๋๋ ์ฅ์ ๊ณผ ๋จ์ , ํน์ง๋ค์ ์ ๋ฆฌํด๋ณธ๋ค.

์ฅ์
1. ๊ฝค ์ฌ์ด ๋์ด๋์ ๋ฌ๋์ปค๋ธ
์ ํ์ค ์์ฒด๊ฐ ๋น๊ต์ ๊ฐ๊ฒฐํ ํธ์ด๊ณ , c๋ java ์ ๋๋ง ์ตํ ์ฌ๋์ด๋ผ๋ ๋น ๋ฅธ ์๊ฐ ๋ด์ ์๋ฌํ ์ ์๋ค.
๋ฌผ๋ก ๊ทธ๊ฒ ์ฝ๋๋ฅผ ์ ์ง๊ฒ ๋๋ค๋ ๊ฒ์ ์๋๋ค.
2. ๋น ๋ฅธ ์ปดํ์ผ์๋
๋ฐ์ด๋๋ฆฌ๊ฐ ์์ํ์ผ๋ก ๋์ค๋ ๋๋ถ๋ถ์ ์ปดํ์ผ์ธ์ด๋ค๊ณผ ๋น๊ตํ๋ฉด ์ปดํ์ผ-์คํ ์๋๊ฐ ๋น ๋ฅธ ํธ์ด๋ค.
python ๊ฐ์ ์ธํฐํ๋ฆฌํฐ์ ๋น๊ฒฌํ ์ ๋...๊น์ง๋ ์๋๊ณ , node+typescript ํ๊ฒฝ๋ณด๋ค๋ ๋น ๋ฅธ๊ฒ๋ ๊ฐ๋ค. tsc๊ฐ ๋๋ฌด ๋๋ฆฐ ๊ฒ๋ ์๋ค.
3. ์ธ๋งํ ์์ฝ์์คํ
Java๋๊ฐ์ ๋ฉ์ด์ ์ ๋น๊ฒฌํ ์ ๋๋ ์๋์ง๋ง, ํ๊ฒฝ์ด ๊ฝค ํ์ฑํ ํธ์ด๋ค.
devops, ์ธํ๋ผ, ์ฝ์ธ ์ชฝ ํ๊ฒฝ์ ์๋ฑํ ํธ.
์น์๋ฒ ์์ค ํ๊ฒฝ์ ๋ณดํต. ๊ทธ ์ธ์๋ ๋ฑํ ์๋๊ฑฐ๊ฐ๋ค.
๋ฏธ๋์ด ์ฒ๋ฆฌ๊ฐ์๊ฑด ํ๊ธ์ด๋๋ผ.
4. ํ๋กํ์ผ๋ง ํ๊ฒฝ
์ฑ๋ฅ ์ถ์ ์ ์ํ ํ๋กํ์ผ๋ง ํ๊ฒฝ์ด ๊ฝค ์ ๋ด์ฅ๋์ด์๋ค.
gc๋ฅผ ์ํ ๋ฉ๋ชจ๋ฆฌ ๋ฐํ์์ด ์กด์ฌํ๊ธฐ ๋๋ฌธ์ cpu&๋ฉ๋ชจ๋ฆฌ ํ ๋น ์ถ์ ์ด ๊ฑฐ์ ์๋์ผ๋ก ๋๋ค.
5. ์ธ๋งํ ์ฑ๋ฅ
์คํ์๋๋ ๋ฉ๋ชจ๋ฆฌ๊ด๋ฆฌ ์ธก๋ฉด์์๋ ๋ค Java์ ๋ฐ๋ฆฌ๋ ๊ฐ์ด ์์ง์์ ์๊ธด ํ๋ฐ, ๊ทธ๋๋ ๊ทธ๋ฐ๋๋ก ์ธ๋งํ ์์ค์ด๋ค. ๋น๋น ์๋ ์๋ค.
6. ๊ฐ๋ ฅํ? ๋์์ฑ
๊ณ ๋ฃจํด์ด๋ผ๋ ๊ฒฝ๋ ์ค๋ ๋ ๋จ์, ์ฑ๋ ๊ฐ์ ํธ๋ฆฌํ ๋๊ธฐํ ์๋จ์ ์ ๊ณตํด์ ํตํด ๊ฐ๋ฒผ์ด ๋์์ฑ ์ฒ๋ฆฌ๊ฐ ์ฌ์ด ํธ์ด๋ค.
๋ณต์กํ ๋์์ฑ์ ๊ตฌํํ๊ธฐ ์ข๋ค๋ ๋ง์ ์๋๋ค. ๊ทธ๋ฅ ๊ฐ๋จํ๊ฒ ์์ํ๋ ๊ฒ๋ง ์ฝ๋ค...
๋จ์
1. ๋์ฐํ ์ค๋ฅ์ฒ๋ฆฌ ์์คํ
try-catch๋ ์๋๊ณ ๋ชจ๋๋๋ ์๋๊ณ ์ด๋์ ๋ ์๋ ๋ฐฉ๋ฒ์ ์ค๋ฅ์ฒ๋ฆฌ ๋งค์ปค๋์ฆ์ผ๋ก ์ฌ์ฉํ๋ค. ํดํ๋ ๋ชจ๋๋๋ผ๊ณ ๋ด๋ ๋๋ค.
๊ฐ๊ณผ ์ค๋ฅ๋ฅผ ํํ๋ก ๋ฌถ์ด์ ๋ฐํํ๊ณ , ๊ทธ๊ฑธ ๋ฐ์์ ํธ๋ค๋งํ๋ ํํ๋ฅผ ์ทจํ๋ค.
๋ชจ๋๋๊ฐ ์ง์๋๋ ๋ค๋ฅธ ์ธ์ด๋ค์ ์์์คํ์ผ๋ก ์๋ฌ ์ ํํ ๋๋ ํค์๋๋ง ํ๋๊ฐ ๋ถ์ด๋ฉด ๋๋๋ฐ, Go๋ ํญ์ ์ ๋ฐ ๋
ธ๊ฐ๋ค๋ฅผ ์ณ์ผํ๋ค.
์ฝํ์ผ๋ฟ ๊ฐ์ ๋ณด์กฐ๋๊ตฌ๊ฐ ์์ผ๋ฉด ์ด๊ฒ ์ฐธ ๊ณ ๋ฌธ์ด ๋ฐ๋ก์๋ค.
๊ฒ๋ค๊ฐ ์ ๋ฐ ํํ์ ์ ํ์ค๋ ์ค๋ฅ ์ฒ๋ฆฌ๋ฅผ ๊ฐ์ ํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์, ์ฒ๋ฆฌ๋ฅผ ๋นผ๋จน๊ณ ์ง๋์น๊ธฐ๋ ์ฝ๋ค.
2. ์ ์ญ๋ณ์ ์ฌ์ฉ ๊ถ์ฅ
์ ์ญ๋ณ์ ๊ธฐ๋ฅ์ด ์ ์ง์๋๊ณ , ์ ์ญ๋ณ์์ ํธ๋ฆฌํ ์ฌ์ฉ์ ์ํ init ๊ฐ์ ํค์๋๋ ์๋ค.
์ฌ์ด๋์ดํํธ ๋ฒ๋ฒ
์ ๋๋ฌ์ด ์ฝ๋๋ฅผ ์์ฐํ๊ธฐ ์ข๋ค.
3. ๊ธฐ๋ณธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋์์ธ
์ฒ์์๋ ๊ด์ฐฎ์๋ณด์ผ ์๋ ์๋๋ฐ, ๋ง์ ์ฐ๋ค๋ณด๋ฉด ๋ญ๊ฐ ์ด์ํ๊ฑฐ๋ ๋น ์ ธ์๋ ๊ฒ๋ค์ด ๋ง๋ค.
- ์ด๋ฆ๋ถํฐ ์ด์ํ ํจ์๋ค์ด ์ข ์ข ๋ณด์ธ๋ค. ์๋ฅผ ๋ค์ด, log.Fatal ๊ฐ์ ๊ธฐ๋ฅ์ ๋ก๊ทธ๋ฅผ ์ฐ๋๊ฒ ์๋๋ผ ํจ๋์ ๋์ ธ์ ํ๋ก๊ทธ๋จ์ ํฐ๋จ๋ฆฐ๋ค. Gophper์ ๋ก๊ทธ๋ค.
- crypto์ ๋ช๋ช ๊ธฐ๋ฅ์ ์ ๋ ฅ๊ฐ์ด ๋ญ๊ฐ ๋ง์ง ์์ผ๋ฉด ํจ๋๋ถํฐ ๋์ง๊ณ ๋ณธ๋ค.
- strconv.Atoi๋ ๋ฌธ์์ด์ ์ ์๋ก ๋ฐํํ๋๋ฐ, ์ ์์ ๋ฐํ๊ฐ์ด int ๊ณ ์ ์ด๋ผ int64๋ฒ์๋ ์ฒ๋ฆฌํ์ง ๋ชปํ ์ ์๋ค.
- math.Abs์ ์ ๋๊ฐ์ ๋ฐํํด์ฃผ๋ ํจ์์ธ๋ฐ, float ๋ฒ์ ๋ง ์๊ณ int ๋ฒ์ ์ ์๋ค.
๋น์ฅ ๋ ์ค๋ฅด๋ ๊ฒ๋ง ํด๋ ์ด ์ ๋๋ค.
4. ๋ฐ์ชฝ์ง๋ฆฌ ์ ๋๋ฆญ
๋์ถฉ ๋ง๋ค์ด๋๊ณ ๋ฐฉ์น๋๊ณ ์๋ ์ค์ด๋ค.
์ ๋๋ฆญ ๋ฐ์ด๋ ์ค์ ์๋ ์ ํ์ด ์๊ณ , ๋ฉ์๋์๋ ์ ๋๋ฆญ์ ๋ถ์ผ ์ ์๋ค.
์ ๋๋ฆญ์ผ๋ก ๋ญ ํด๋ณด๋ ค๊ณ ํ๋ฉด ๋ค ๋งํ๋ค.
5. ์ปดํ์ผํ์ ์ฒ๋ฆฌ ๋งค์ปค๋์ฆ ๋ถ์กฑ
go์๋ ์ปดํ์ผํ์ ์์ค ํ์ฅ์ ์ฒ๋ฆฌํ๋ ๊ธฐ๋ฅ์ด ์ ๋๋ฆญ ์ธ์๋ ์๋ค.
๊ทธ๋์ ๋ญ๊ฐ ์ ์ฒ๋ฆฌ๋ ์์ฑ์ ํ๊ธฐ ์ํด์๋ ์ง์ง๋ก ์ฝ๋๋ฅผ ์๋์ผ๋ก generationํ๋ ๋ฐฉ๋ฒ์ ์ทจํ๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฐํ์ ๋ฆฌํ๋ ์ ์ด ๋๋ฐฐ๋ ๋๊ฐ ๋ง๋ค. ์ปดํ์ผํ์์ ๊ฒฐ์ ํ ์ ์๋ ๊ฒ์ด๋ผ๋ ๋ง์ด๋ค.
6. ์ด์ ์ฉกํ ๋ชจ๋์์คํ
go๋ ๊ฐ ํด๋๊ฐ ํ๋์ ๋ชจ๋-ํจํค์ง ์์ญ์ ์ด๋ฃฌ๋ค. ์ด ํจํค์ง๋ค์ ์๋ก ๋๋ฑํ๋ฉฐ ์ํ๊ด๊ณ๋ฅผ ๊ฐ์ง์ง ์๋๋ค.
๊ทธ๋ฅ ๋ง๋ค๊ธฐ ํธํ๊ณ ๋จ์ํด์ ์ด๋ ๊ฒ ๋ง๋ ๊ฑฐ๊ฐ๋ค.
์ข๋ค๋ฉด ์ข๋ค๊ณ ํ ์๋ ์๋๋ฐ, ๊ณ์ธตํ ๋ชจ๋์์คํ ์ด ์กด์ฌํ์ง ์๊ธฐ ๋๋ฌธ์ circular import์ ๋์ฒํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์ ๋ฌดํ๊ณ , ๋ฌธ์ ์ง์ ์ ์ฐพ๋ ๊ฒ๋ ์ด๋ถ๋๊ฒ ํด๋จ๋ค.
๊ทธ๋์ go๋ก ๋ ๋ชจ๋๋ค ๋ณด๋ฉด ํ ํด๋์ ์์คํ์ผ์ ์๋ฉ ๋ฐ์ด๋ฃ์๊ฑธ ํํ๊ฒ ๋ณผ ์ ์๋ค. ๋ค ์ด๊ฑฐ ๋๋ฌธ์ด๋ค.
7. ๋ฐ์ชฝ์ง๋ฆฌ ํํํ์
์ด๊ฑธ ์ฌ๊ธฐ์ ์ธ ์ ์์ผ๋ฉด ์ ๊ธฐ์๋ ์ ์ฉ๋ ์ ์์ด์ผ ํ๋ค. ๊ทธ๊ฑธ ๊ธฐ๋ณธ์ ์ธ ์ธ์ด์ ์ง๊ต์ฑ์ด๋ผ๊ณ ๋งํ๋ค.
๊ทธ๋ฐ ๋ฉด์์ ํํ ํ์ ์ ์ง๊ต์ฑ์ด ๋์ฐํ๋ค๊ณ ํ ์ ์๋ค. ํจ์์ ๋ฐํํ์ ์๋ ํํ ํ์ ์ ์ธ ์ ์๋๋ฐ, ๊ตฌ์กฐ์ฒด ํ๋ ๊ฐ์ ๊ณณ์๋ ํํํ์ ์ ๋ฃ์ ์ ์๋ค.
์ค๋ฅ์ฒ๋ฆฌ๊ฐ์๊ฑฐ ํ๋ค๋ณด๋ฉด ์ด๋ฐ์๋๊ฐ ๋ง๋ค.
8. ํจ๋๊ณผ ์ ๊ฐ์ฉ์ฑ
๋๋ ์ข์ ์๋ฒํ๊ฒฝ์ ๊ฒฐ์ ์ง๋ ์ฃผ์ ์์๊ฐ ๊ฐ์ฉ์ฑ๊ณผ ์์ ์ฑ์ด๋ผ๊ณ ์๊ฐํ๋ค.
๊ทธ๋ฐ ๋ฉด์์ go๋ ๋์ฐํ ์ ๊ฐ์ฉ์ฑ ์์ค ๋ฌธ์ ๋ฅผ ๊ฐ๊ณ ์๋ค.
๊ฐ์ฅ ์ญ๊ฒจ์ด๊ฑด concurrent map write๋ค.
์ฌ๋ฌ ๊ณ ๋ฃจํด์์ map์ ๋์ ์ฐ๊ธฐ๋ฅผ ์๋ํ๋ฉด ํจ๋์ด ๋ฐ์ํ๋ค. ์ฌ์ง์ด ์ด๊ฑด recover๋ ์๋ผ์ ๋ฌด์กฐ๊ฑด ์๋ฒ๊ฐ ๋ป๋๋ค.
๊ฒ๋ค๊ฐ ๋ณต์กํ ์์คํ
์์๋ ๋๋ฒ๊ทธ ํธ๋ ์ด์ค๋ก ํจ๋ํฌ์ธํธ๋ฅผ ์ถ์ ํ๋ ๊ฒ๋ ๋งค์ฐ ์ด๋ ต๋ค.
๊ทธ ๋ค์์ผ๋ก ๊ณจ์น์ํ๊ฑด ์์์์ค์์ recover๋ฅผ ๊ตฌ์ฑํ๋๋ผ๋ ๋ค๋ฅธ ๊ณ ๋ฃจํด์์ ํจ๋์ด ํฐ์ง๋ฉด ์์คํ
์ด ํต์งธ๋ก ํฐ์ง๋ค๋ ๊ฒ์ด๋ค.
๊ฐ์ฅ ์ข์๊ฑด ๊ณ ๋ฃจํด์ ๋์ธ๋๋ง๋ค recover ๊ตฌ์ฑ์ ํ๋๋ก ๊ฐ์ ํ๋ ๊ฒ์ด์ง๋ง, ํ ๊ท๋ชจ๊ฐ ํฌ๋ค๋ฉด ์ฝ์ง ์์ ์๋ ์๋ค.
https://m.blog.naver.com/sssang97/223403313214
9. ๋ค์์คํ์ด์ค์ ๋ถ์ฌ
golang์์ ์ฝ๋์ ์๋ณ์๋ฅผ ๋ค๋ฅธ ์์ญ์ผ๋ก ๊ฒฉ๋ฆฌํ ์ ์๋ ๋ฐฉ๋ฒ์ ํจํค์ง๋ฐ์ ์๋ค.
๊ทผ๋ฐ ๋
ผ๋ฆฌ์ ๊ฐ๋
์ ๋๋๊ฒ ๋ค๊ณ ํจํค์ง ๋จ์๋ฅผ ์ชผ๊ฐ๋ฉด circular import๊ฐ์ ๊ฑฐ์ง๊ฐ์ ๋ฌธ์ ๋ค์ด ๋ฐ์ํ๊ธฐ ๋๋ฌธ์, ์ฝ์ฌ๋ฆฌ ์ฌ์ฉํ ์๊ฐ ์๋ค.
๊ทธ๋์ ์ฌ๋งํ๋ฉด ๋จ์ผํจํค์ง์ ์ต์ง๋ก ์ค์ ๋ฃ๋ ๊ฒฝ์ฐ๊ฐ ๋๋ถ๋ถ์ด๊ณ , ์๋ณ์๊ฐ ๊ธธ๊ณ ๋๋ฌ์์ง๋ ๊ฒ๋ ์์๊ฐ์ด๋ค. ๊ด๋ฆฌ๊ฐ ์ง์ ๋ถํด์ง๋ค.
10. ๊ฒ์ผ๋ฅธ GC
Go์ GC๋ ๋ค๋ฅธ ์ธ์ด๋ค์ GC์ ๋น๊ตํด์ ๊ทธ๋ฆฌ ์ข๋ค๊ณ ํ๊ธด ์ด๋ ต๋ค.
๋ฎ์ ์ ์ง์๊ฐ(latency)๊ณผ ๋จ์ํ ๊ตฌ์กฐ ์ ์ง๋ผ๋ ๋ช ๋ชฉํ์ ๋ญ๋น๊ฐ ์ฌํ ๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต๊ตฌ์กฐ๋ฅผ ๊ฐ๊ฒ ๋์๊ธฐ ๋๋ฌธ์ด๋ค.
์ฝ๊ฒ ๋งํ์๋ฉด, GC ์์ฒด๋ฅผ ๋งค์ฐ ๊ฒ์ผ๋ฅด๊ฒ ์ฒ๋ฆฌํ๋๋ฐ, GC๋ก ์ธํด ํ ๋นํด์ ๊ฐ ๋๋๋ผ๋ ๊ทธ๊ฒ ๋ ์ค์ ๋ก ํ ๋นํด์ ๋๋๋ฐ ๋๋ ์ด๊ฐ ์กด์ฌํ๋ค.
์๋ฌดํผ ์ด๋ฐ ๋จ์ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋น/ํด์ ๊ฐ ๋ง์ ๋ฉ๋ชจ๋ฆฌ ์ง์ฝ์ ์ธ ๊ฒฝ์ฐ์๋ Go๋ฅผ ๊ถ์ฅํ์ง ์๋๋ค.
CPU๋ I/O ์ง์ฝ์ ์ธ ๊ฒฝ์ฐ์๋ง ๊ณ ๋ คํ๊ธธ ๋ฐ๋๋ค.
GC์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ณ๋ ํฌ์คํธ๋ฅผ ์ฐธ์กฐํ๋ค.
https://blog.naver.com/sssang97/223576600679
์ ๋งคํ ๊ฒ
1. ๋ก์๋น ์ง ์ ํ์ค
21์ธ๊ธฐ์ ๋์จ ๊ฒ์ด ๋ง๋ ์ถ์ ์ ๋๋ก ์ธ์ด์์ ์ฐ๋ด๊ฐ ๋ง์ด ๋๋ค.
if-else๋ switch ๊ฐ์ ์ ์ด๋ฌธ์์ ํํ์ ํํ๊ฐ ์ง์๋์ง ์๊ณ , ํจํด๋งค์นญ๋ ์์ผ๋ฉฐ, ๋ชจ๋๋๋ ์๋ค.
์๋๊ฑธ ์ธ๋๊ฒ ๋ ๋น ๋ฅด๋ค.
2. ์์ ๋ถ๋ฐฉํ๊ณ ๋์จํ ์ ํ์ค
go๋ ์ ์ ํ์ ์ธ์ด์ด๋ฉด์๋ ์ข ๋์จํ๊ฑฐ๋ ์์์ ์ธ ๋ฌธ๋ฒ์์๋ฅผ ๋ช๊ฐ์ง ๊ฐ๊ณ ์๋ค.
๊ทธ ์ค ๋ํ์ ์ธ ๊ฒ์ด ๊ตฌ์กฐ์ฒด ํ๋ ์ด๊ธฐํ๋ค. ๊ตฌ์กฐ์ฒด๋ฅผ ์์ฑํ ๋ ํ๋๋ฅผ ์๋ตํด๋ ๊ทธ๋ฅ ๊ธฐ๋ณธ๊ฐ์ด ๋ค์ด๊ฐ๊ณ ์ ์คํ๋๋ค.
๋ณ๊ฑฐ ์๋๊ฑฐ ๊ฐ์ง๋ง ๊ฝค ๋ง์ ๋ฒ๊ทธ์ ์์ฒ์ด ๋๊ณค ํ๋ค.
๊ตฌ์กฐ์ฒด ํ๊ทธ๋ ์ข ์ง์ฆ๋๋ ์์ ์ค ํ๋๋ค. ๋ญ๊ฐ ์ ํ์ค์ธ๋ฐ ์ ํ์ค๊ฐ ์๋๊ฒ์ฒ๋ผ ๋ง๋ค์ด์ง ๋ฉํ๋ฐ์ดํฐ ํ์์ด๋ผ์, ํํ๊ฐ ์๋ง์๋ ์ปดํ์ผ์ด ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฒ๊ทธ๊ฐ ๋๋ค.
์ด๋ฐ ์์ํ ๋ฌธ์ ๋ค์ lint๋ฅผ ์ฐ๋ฉด ํด๊ฒฐ๋๊ธด ํ๋๋ฐ, ์ด๊ฒ์ ๊ฒ ๋ถ์ด๋ค๋ณด๋ฉด ๊ฒ๋ ๋๋ ค์ง๊ณ ์์ฐ์ฑ๋ ๋จ์ด์ ธ์ go์ ๋น ๋ฅธ ์ปดํ์ผ์ฑ๋ฅ์ด ํด์๋๋ ๋๋์ ๋ง์ด ๋ฐ๋๋ค.
3. ์ํํ ๋์์ฑ
go๋ ๋์์ฑ ๋ก์ง์ ๊ฐ๋ณ๊ฒ ์์ฑํ ๋๋ ์ฝ์ง๋ง, ๋ณต์ก๋๊ฐ ์ฌ๋ผ๊ฐ๋ฉด ์ฌ๋ผ๊ฐ์๋ก ๋์ฅํ์ด ๋๊ธฐ ์ฝ๋ค.
async-await ๊ฐ์ ๊ท๊ฒฉํ๋ ์ธํฐํ์ด์ค๊ฐ ์์ด์ ๊ฐ๋
์ฑ๋ ํญ๋ฐํ๊ธฐ ์ฝ๊ณ , Rust์ฒ๋ผ ๋์์ฑ ์ถฉ๋์ ์ํ ๋ฐฉ์ด์ ๊ฒ์ฆ์ด ์์ด์ ์ํํ ์ฝ๋๊ฐ ๋์ค๊ธฐ๋ ์ฝ๋ค.
์์์ ์ํด์ผํ๋ค.
4. ์๋ง์ ์ ์ฌํค์๋์ ์์์ ๋ฌธ๋ฒ
golang์ ์ถ์ํ ๋ ์์ฃผ ๋์ค๋ ๋ ํผํ ๋ฆฌ ์ค ํ๋๊ฐ ์ ์ ํค์๋์ ๊ฐ๋จํ ์ ํ์ค์ธ ๊ฒ ๊ฐ์๋ฐ, ๊ธ์. ๋ ํค์๋๊ฐ ์ ๋ค๋ ๋ง์๋ ๋์ํ๊ธฐ๊ฐ ์ด๋ ต๋ค.
go์๋ ์ง์ง ํค์๋๋ผ๊ณค ํ์ง ์์ง๋ง ์ฌ์ค์์ ํค์๋์ธ ๊ธฐ๋ฅ๋ค์ด ์ ๋ฒ ๋ง๋ค. init, iota, len, append, make ๋ฑ๋ฑ...
go์์ ํ ์คํธ์ฉ ํ์ผ์ *_test.go์ ํํ๋ก ๊ฐ์ ๋์ด์๋ค. ์ ํ์ผ๋ช ์ ์๋ฌด๋ ๊ฒ๋ ์ธ ์ ์๋ค.
ํจ์๋ ๋ณ์๋ฅผ ์ธ๋ถ ํจํค์ง์ ๊ณต๊ฐํ ์ง ๋ง์ง๋ ํค์๋๊ฐ ์๋๋ผ ์ด๋ฆ์ผ๋ก ๊ฒฐ์ ๋๋ค.
์๋ณ์๊ฐ ๋๋ฌธ์๋ก ์์ํ๋ฉด ํจํค์ง ์ธ๋ถ๋ก export๋๊ณ , ์๋๋ฉด ํจํค์ง ๋ด์ ์จ๊ฒจ์ง๋ค.
5. ํ์ํธํ์ฑ?
go์์๋ 1.* ๋ฒ์ ๋ ์งํค๋ฉด์ ํ์ํธํ์ฑ์ ์ ์งํจ๋ค๋ ๊ฒ์ ์ฅ์ ์ผ๋ก ๋ด์ธ์ฐ๊ณค ํ๋ค.
ํ์ง๋ง ํ์ํธํ์ด ์กฐ๊ธ์ฉ ๊นจ์ง ๋๋ ์๋ค.
๋น์ฅ ๊ทผ๋์ for loop ๋ณ์ ๋์๋ ์ฝ๋ ์์ค ํธํ์ฑ์ด 1.22์์ ๊ฐ ๊นจ์ก๋ค.
๊ทธ๋ฆฌ๊ณ ๋๋ mockery ๊ธฐ๋ฐ์ผ๋ก mocking ํ๊ฒฝ์ ์ข ์ผ์๋๋ฐ, ๋ฒ์ ์ฌ๋ฆด๋๋ง๋ค ๋ญ ์ ๋๊ฒ ๊นจ์ง๊ณ ๋์ ์ํ๊ณ ๊ทธ๋ฌ๋๋ผ. ๊ทธ๋์ ๋ชป์ฌ๋ ธ๋ค.
๋ด ์๊ฐ์ ์ง์ง ํธํ์ฑ์ ์งํค๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ๋ฒ์ ์ ์ฌ๋ฆฌ์ง ์๋ ๊ฒ์ด๋ค.
Ansi C์ Java 1.8์ ๋ณธ๋ฐ์ผ๋ฉด ๋๋ค.
์๋ฒ ํ๊ฒฝ์ ์ ๋ง๋๊ฐ?
๊ฐ๋จํ ์์คํ ์ด๋ ๊ฒฝ๋ ์๋ฒ๋ฅผ ํผ์์ ๋ง๋ค์ด์ ๋์ฐ๋ ์ ๋๋ก๋ ๊ด์ฐฎ๋ค. ๋ด ๋ณด๊ธฐ์ ๋ฑ ๊ทธ ์ ๋๊ฐ golang์ด ๊ฐ์ ์ ๋ฐํํ๋ ๋ถ๋ถ์ด๋ค.
๊ทผ๋ฐ ๋ณต์กํ ๋น์ฆ๋์ค ๋ก์ง์ด ํฌํจ๋๋ ์๋น์ค๋ฅผ ํ ๋จ์ ํ์
์ผ๋ก ๋ค์ด๊ฐ๋ฉด ๊ฑท์ก์ ์ ์์ด์ง๋ค.
๋์ฐํ ์ ๊ฐ์ฉ์ฑ๊ณผ ์ด์ ์ฉกํ ์ ํ์ค์์ ์ ๋๋ ์๋ง์ ๋ฒ๊ทธ๋ค์ด ์์ถํ๋ค.
์ด๋ด๋๋ ์๋ฐ๊ฐ ํจ์ฌ ๋ซ๋ค. ๊ด๋ฆฌ๋ฉด์์๋, ์ฑ๋ฅ์์๋.