[Go] race detector
go๋ ๋์์ฑ์ ํนํ๋์ด์๋ค๊ณ ๋ ํ์ง๋ง, ์์ ํ ๋์์ฑ์ ๋ณด์ฅํ์ง๋ ์๋ ์ธ์ด๋ค.
๊ทธ๋ฐ๊ฑธ ์ํ๋ค๋ฉด rust๋ฅผ ์ฐ๋ฉด ๋๋ค.
๊ทธ๋๋ ์ด๋์ ๋ race condition ๊ฐ์ ์ํฉ์ ์ค์ผ ์ ์๋ ๋ณด์กฐ๋๊ตฌ๋ฅผ ์ ๊ณตํ๊ธด ํ๋ค.
์๋ ์ฝ๋๋ data race๋ฅผ ๋ฐ์์ํฌ ์ ์๋ ์์ ์ฝ๋๋ค.
๊ณต์ ๋ณ์๋ฅผ ๋๊ฐ์ ๊ณ ๋ฃจํด์ด ๋๋ฉด์ ๋์ ๋ณ๊ฒฝ์ ์๋ํ๋๋ฐ
๋์ ํ๋ฅ ๋ก ์ฐ์ฐ์ด ๊ฒน์ณ์ race๊ฐ ๋ฐ์ํ๊ณค ํ๋ค.
์ด๋ฐ ์ฝ๋๋ ๋จ์ํ ๊ฒฝ์ฐ์๋ ์ฐพ๊ธฐ ์ฝ์ง๋ง, ์ฝ๋ ๊ตฌ์ฑ์ด ๋ณต์กํด์ง๊ณ ๋ ์ด์ด๊ฐ ๊น์ด์ง์๋ก ์ฐพ๊ธฐ ํ๋ค์ด์ง๋ค.
๊ทธ๋๋ go๋ ์ด๋ฐ ๋ฌธ์ ์ ๋ํ ์ต์ํ์ ํด๊ฒฐ์ฑ
์ ์ ๊ณตํด์ฃผ๊ธด ํ๋ค.
run์ด๋ test๋ฅผ ๋๋ฆด๋ -race ์ต์
์ ์ฃผ๊ณ ์คํํ๋ฉด ๋๋...๋ฐ..
์ด๊ฒ ๋ cgo๋ ์ฎ์ฌ์ ์ข
์์ฑ์ด ํ ๋์ค๊ฒ ๋์ด์๋ค.
windows์ฒ๋ผ cgo์ c ์ปดํ์ผ๋ฌ๋ฅผ ์ฐ๊ธฐ ํ๋ ๊ตฌ์ฑ์ด๋ผ๋ฉด ๋งค์ฐ ๊ท์ฐฎ์ ์ธํ
์ ํด์ค์ผ ํ๋ค.
์๋ฌดํผ ์ ์์ ์ธ ์คํ์ด ๊ฐ๋ฅํ ๋๋
์ด๋ฐ์์ผ๋ก data race๊ฐ ๋ฐ์ํ ์ ์์๋งํ ์ฝ๋ํฌ์ธํธ๋ฅผ ์ฐ์ด์ค๋ค.
์ด๊ฑฐ ๋ณด๊ณ ์ถ์ ํด์ ๋ฌธ์ ๋ฅผ ์ก์ผ๋ฉด ๋๋ค.
๊ทผ๋ฐ ์ด๊ฒ ํ์คํ๊ฒ ์๋๋ผ "์์ฌ๋๋"๊ฑธ ์ฐพ๋ ๊ฑฐ๋ผ์, ์ค์ ๋ก๋ ์์ ํ ์ฝ๋์ผ ์๋ ์๋ค.