๋์ด ์๊ณ GC๊ฐ ์๋๋ฐ ๋ฉ๋ชจ๋ฆฌ๊ด๋ฆฌ ์์์ ํด์ค๋ค๋๊ฒ ๋ญ์๋ฆฐ๊ฐ ํ๋๋ฐ
์ด์ 2์ผ์ฐจ์ธ๋ฐ ๋์ถฉ ๋ฉ๋์ด ๊ฐ๋ค
์ฒซ์ฌ๋ ๋ง๋๊ฒ์ฒ๋ผ ๋ํค๋ํคํ๋ค
๋ง์น ์ ๋ํฐ์์ C#๋ฅผ ๋ง๋ฌ๋ ์ง๋ 10๋ ์ ์ฒ๋ผ...
ํ..
๊ทธ๋ฅ RAII๋ฅผ ํ๊ณ๊น์ง ๋์ด๋์ ๋ฟ
ใ ใ ๊ทธ๋์ ๋ง์น ๊ณผ๊ฑฐ C++๋ก ๋์์จ ๋๋์. ์ข๋ ํจ์ ํ ๋๋์ผ๋ก
์ด๋ง์ ์ ๋ง ์ข๋ค๋ฉด ์ธ์ ๊ฐ c++ ํ์ค์ด๋ ๋ถ์คํธ์ ์ถ๊ฐ๋๋จ์๊ธฐ์ง
์ธ์ด ๋์์ธ์ ๋ฐ๋ฅ๋ถํฐ ๋ฏ์ด๋ด์ผํด์ C++๋ก๋ ๋ชปํจ C++๊ฐ ์๋ฌด๋ฆฌ ๋ฉํฐํจ๋ฌ๋ค์์ด๋ผํด๋ ๋ชจ๋ ์ข ๋ฅ์ ์ํคํ ์ฒ ๋์์ธ์ ํ ์ ์๋๊ฒ ์๋
๋๋ ๋ฐ๋ฅ๊น์ง ๋ฏ๊ณ ๋ญํ๊ณ ํ ๊ฒ๋ ์์ด ์ถฉ๋ถํ ๊ฐ๋ฅํ๋ค๊ณ ๋ณธ๋ค๋ง.... ๋๋ ์ด๋ ต๋ค๊ณ ์๊ฐํ๋๋ณด๋ค.
๋๋ C++๋ง 6๋ 7๋ ๊ฐ๊น์ด ์จ๋ณธ ์ฌ๋์ send / sync๊ณผ ๊ฐ์ ๋๊ธฐํ trait์ด๋ ๋ฒ๋ฌ์ฐ ์ฒด์ปค ๋์ ์ด ์ฌ์ค์ ๋ถ๊ฐ๋ฅํจ unsafe, safe ์์ญ์ ๋๋๋ ๊ฒ๋ ๊ธฐ์กด์ ์์ธ ์๋ง์ ์ฝ๋ ๋๋ฌธ์ ์์ผ๋ ๋ง๋ํจ
์ง๊ธ์ c/c++ ์ ํ์ค์ ์ ์๋ง๋๋ค(๋ชจ๋c++์์ ํ๊ธฐ๋ฒ ์กฐ์ ธ๋๋๊ฑฐ๋ณด๋ฉด ์๋ค์ ๋ธ๋ ์ดํฌ๋ฐ์์๋๊ฒ๊ฐ๋ค๋ง) ๋ ์๊ฒฌ์ด๋ผ๋ฉด ๊ทธ๋ด์๋ ์์๊ฒ๊ฐ๊ธดํ๋ฐ ๊ธฐ๋ณธ์ ์ผ๋ก '๊ฐ์์๋๋ค'๋ผ๋ ํํ๊น์ง ์ด์ด์ ์ธ์ด๋ก ๋น์ฐํ ๊ตฌํ๊ฐ๋ฅํ๋ค๊ณ ๋ด. ๋ฌ์คํธ ์์ฒด๊ฐ ๋ฌด์จ ๋นํฐ๋ ธ์ด๋ง ์ด์๊ธฐ๊ณ์ด๋ก ์ปดํ์ผ๋๋๊ฒ๋ ์๋๊ณ ๊ธฐ๊ณ์ด ๋ณํ๊ฐ๋ฅํ ์ธ์ด๊ฐ c๊ธฐ๋ฐ์ธ์ด๋ก ์๋ง๋ค์ด์ง๋๊ฑด.....
๊ทธ๋ฌ๋๊น ๊ธฐ์กด ๊ตฌํ์ฒด๋ค๊ณผ ์ฝํ๋ถ๋ถ๋๋ฌธ์ด๋ผ๋ ์๊ธฐ๋ค. ๋ฌด์จ๋ป์ธ์ง ์ดํดํจ. ๋๋ ์๋ก ์ ์ธ ์ ์ฅ์์ ์ฅ๊ธฐ์ ์ผ๋ก๋ ๊ธฐ๋ํ ์์๋ค๊ณ ์๊ฐํจ. ๋ฌผ๋ก ๋น์ฅ ๋ค์๋ฒ์ ํ์ค๊ฐ์์๊ธด ์๋๊ณ . ๋๊ตฐ๋ค๋ '๋ฐ๋ฅ๋ถํฐ' ๊ฐ์ ๋ง๊น์ง ํ๋๋ฐ ๋ญ ใ ใ ใ (ํ์ง๋ง ํ์ค ๋ง๋๋๋๋ค์ ์ธ์ ๋์ฒ๋ผ ์ง๋ค ใ ๋๋ก ํ๊ฒ ์ง)
๊ตฌํ ๊ฐ๋ฅ์ฑ์ ์๊ธฐํ๋๊ฒ ์๋๋ผ ์ค์ฉ์ฑ ๊ด์ ์์ ๋งํ๋๊ฑฐ์ ๋น์ฐํ ์์ผ๋ฉด ๋๊ธด ํจ. ๊ทผ๋ฐ ๊ทธ๋ฌ๋ฉด ๊ธฐ์กด์ ๋ง๋ ์ฝ๋๋ฅผ ๋ค ๋ฒ๋ฆฌ๊ฑฐ๋ ๋ฒ๊ฑฐ๋กญ๊ฒ ์ฌ์ฉํด์ผ ํ๋๋ฐ ์ด๋ ๋ฒ๋ฌ์ฐ ์ฒด์ปค์ ์ฅ์ ์ ๋ค ํฌ๊ธฐํ๊ณ ๋จ์ ๋ง ๋ ์๊ณ C++์ ๊ทธ๋๋ง ์๋ ์ฅ์ ๋ ๋ค ํฌ๊ธฐํ๋๊ฑฐ์
๋ฐ๋ฅ๋ถํฐ ๋ฏ์ด๋ด๋ฉด ๊ฐ๋ฅํ์ง ์์ ๋๊ธ๋ ๋ฏ์ด๋ด์ผ ๊ฐ๋ฅํ๋ค๋ผ๊ณ ํ๊ฑฐ์ ๋ถ๊ฐ๋ฅํ๋ค๊ณ ํ์ง ์์
turbo c์ microsoft c์ crt์ฐจ์ด ์ฐพ์๋ณด๋ ๊ธฐ์ต๊ณผ ์ง๊ธ ๋ชจ๋c++ ํ์ค์์ ๋ญ์ง์ ํ๊ณ ์๋์ง๋ฅผ ๋น๊ตํด๋ณด๋ฉด ใ ๊ฐ์ ์์ ์ด๋ผ๋ ํ ์ง๋ ๋ชจ๋ฆ. (๋ฐํํ 20๋ ๊ฑธ๋ฆผ)
ใ ใ ๋ฌด์จ์๊ธด์ง ์ดํดํจ.
๊ทธ๊ฒ๋ ๊ทธ๋ผ. ๊ทธ๋๋ ์ปดํ์ผ๋ฌ๊ฐ ์ง์ํ๋๋ฐ์๋ ํ์ฐธ์ ๊ฑธ๋ฆด๊ฑฐ์. ์ง๊ธ๋ ๋ฌ์คํธ๊ฐ ๊ณ์ ๊พธ์คํ ์ ๋ฒ์ ๋ด๋ฉด์ ๋ณด์ํ๊ณ ๊ณ ์น๋๋ฐ ์ด์ง๊ฑฐ๋ฆฌ๋ฅผ ๋ชจ๋ ์ปดํ์ผ๋ฌ๊ฐ ๋ค์ ํด์ผํ๋๋ฐ ๊ทธ๊ฒ๋ ๋ช๋ ์ ๊ฑธ๋ฆด๊ฑฐ์ c++20 ๋ชจ๋ ์์คํ ์ด ๋ค์ด์๋๋ฐ ์์ง๋ msvc ์ปดํ์ผ๋ฌ๋ง ์ง์ํ๋ ๊ฑฐ ๋ณด๋ฉด ๋ญ๊ฐ ๋๋...
๋ค๋ฅธ์ธ์ด๊ฐ ๋ฌ์คํธ์ ๋ณํ๋ฅผ ์นดํผํ ํ์๋ ์์ง. ๋ฌ์คํธ์ ๋ณํ๋ ์์ฑ๋๋ฅผ ์ฌ๋ฆฌ๋๊ฑฐ๊ณ , ํ์ธ์ด๊ฐ ํก์ํ๋ ค๋๊ฑด '์ ์ฉํ ๊ฐ๋ ' ๋ฐ์ ์๋ค. ๋ฌด์จ ์ํฌ๋ ์ค์ ๋ฌ๋ฆฌ๊ธฐ๊ฐ์ ์์ผ๋ก ๋ณผ ํ์๊ฐ ์์.
๋ด๋ง์ ๊ทธ ๋ฒ๋ฌ์ฐ์ฒด์ปค ๋ง์ ๋ ์๊พธ ๋ณด์ํ ์ ์ด ์๊ฒจ์ ๊ทธ๋ฐ ๋ถ๋ถ๋ค์ ๋ฐ๋ผ๊ฐ์ผํ๋ค๋ ์๊ธฐ์ ์ง๊ธ๋ ๊ณ์ ๋ณด์ํ๋ค๋ ์๊ธฐ์์
ํ์ค์ผ์ ํด๋ก ํ๋ ค๊ณ ํ์ง ์์์ง๋ง 'functional' ๊ธฐ๋ฅ๋ค์ ๊นจ์๊นจ์ ์ ๋ฃ๋๋ผ.
๋ง์. ๊ทธ๋ฌ๋๊น '๊ฒ์ฌํ๋ค๋ ๊ฐ๋ ' ์ด๋ผ๋๊ฑฐ์ง 'ํ์ฌ์ rust ๊ฒ์ฌ ๋ก์ง' ์ ๋ฐ๋ผ๋ง๋ค์๋ค๊ฐ ๋ฐ๋๋ฉด ์์ด์ฝ ์ด๋ฐ๊ฒ์์์ ํ๋ฉด์ ๋ ํ๋ฐ์ง ๋ฐ๋ผ๊ฐ๋ ๊ฒ ์๋๊ฑฐ๋์๊ธฐ์.
์ด๋ฒ์ ์๋ก ๋ค์ด์จ ํจ์ํ ๊ธฐ๋ฅ์ด ์์? ๊ทธ range ๊ฐ์ ์ ๋ค์ ํจ์ํ์ด๋ผ ๋ถ๋ฅด์ง๋ ์์์ํ ๊ณ
c++ ํ์ค ํน ) ์กด๋๊ฒ ๋ณ์๋ณ๊ฑฐ ์ข๋ค๋๊ฑด ๋ค ์ถ๊ฐํ๋ค c++ ํ์ค ํน ) ์๋ฌด๋ ์๋๊ธฐ๋ฅ ์ต๋ํ ๋ง์ด ์ฐ๋ ค๊ณ ๋ ธ๋ ฅ์ํ๋ค ๋ฑํ ๋์ ํ๋ค๋ ํ์ ๋ ์๊ณ ํ๋ค๊ณ ์ฑ๊ณตํ ๊ฑฐ๋ผ๋ ์๊ฐ์กฐ์ฐจ ์ํจ ๊ทธ๋ฅ '์ด์๋ผ๋ค ํ๋์ง๋ณด๋ฉด ๋ ์ฃผ์๋ค๋ถ์ด๋ ค๊ณ ํ ๊ฑฐ๋ค' ๋ผ๋ ์์ธก์.
ํจ์ํ ํ๋ก๊ทธ๋จ ๋ง์ง๋ ์ฌ๋๋ค์ด ์ด๋ c++์ functional ๊ธฐ๋ฅ๋ค์ ํธ๋ฃจ ๋ชจ๋๋ํ๋ค๊ณ ์ธ์ ํ๊ฒ ์? ๋ค ๊ทธ๋ด์ธํ๊ฑฐ ๊ฐ์ ธ๋ค ๋ง์ด๋ถ์๋จ๊ฑฐ์ง. ๊ธฐ๋ฅ์ ๋ง๋ค ๊ธฐ๋ฅ์. ์ฑ ๋๋ง์์ ๋๋ก
๋ ๋ ํ์ค์ผ ์ธ๊ธํด๊ฐ์ง๊ณ 1๊ธ ์๋ฏผ ํจ์๊ฐ์, ์ข ๋ปํ ๋๋ค์ด์๋๋ผ (์ ์ด์ c++11์ ์ด๋ฏธ ๋ค์ด์ค๊ธด ํ๋๋ฐ) ๋ญ๊ฐ ํน๋ณํ ๊ธฐ๋ฅ์ด ๋ค์ด์จ ์ค ์์์ ๊ทธ๋ฐ ๋งฅ๋ฝ์ผ๋ก๋ ํจ์ํ์ด์ผ ์ฌ์ค ๊ฑฐ์ ๋ชจ๋ ์ธ์ด์์ ๊ฐ๋ฅํจ. ํจ์ํ ์ธ์ด๋ ์ ์ฝ๋ง ์ถ๊ฐํ๊ธฐ ๋๋ฌธ์ด์ง. ๋ค๋ง ์ปดํ์ผ๋ฌ๊ฐ ๊ทธ๋ฐ ์ ์ฝ๋ค์ด ์ง์ผ์ง๋์ง ์ฒดํฌ๋ฅผ ๋ชปํด์ ๋ฒ๊ทธ๋ ๊ฐ๋ฅ์ฑ์ด ๋ค๋ถํ ๋ฟ
๋ฐ๋ก ๊ทธ๊ฑฐ์. ์ฌ๋๋ค์ '์ด ์ฒ ํ์ ์ด๋ ๊ฒ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌํํ๊ฒ'์ ์ํ๋๊ฒ ์๋๋ผ '์ด ์ฒ ํ์ ์ด๋ฐ ์ฅ์ ์ด ์๋ค๋๋ฐ' ๋ฅผ ๊ฐ์ ธ๋ค์ฐ๋๊ฑธ ์ํ๋๊ฑฐ๋ค. ๊ทธ๊ฑธ ์์ฃผ์๋จน๋๊ฒ ํ์ค์์ํ๊ณ ๊ตฌํํ ์์์ ms, gcc๋ณด๋ค ๋ ํ๋ถํ๊ฒ ๊ฐ์ง๊ณณ์ด ์๊ฒ ๋ 'ํน๋ณํ์ง ์์'์ ์ฌ์ค ์ข์๊ฑฐ๋ค.
'์ง์ ์์ด๋ฉด ์๋์ง๋ง ๊ฐ์ด ์กด์ฌํ๊ธฐ๋ ํ๋' ์ํ๊ฐ ์ง๊ธ c++์ ํ๋์ด๋๊ฐ..... ใ ใ ใ
๋ชจ๋ฅด๊ฒ ๋ค. c++ ํ์ค ์์ํ๊ฐ ํ๋ ์ง๊ฑฐ๋ฆฌ๋ค์ด ๋๋ถ๋ถ ์ค์ฉ์ฑ ์๊ณ ์ธ์ด ๋ณต์ก๋๋ง ๋๋ฆฌ๊ณ ์์ด์ C++์ ๋ํ ๊ธฐ๋๊ฐ์ ๋ฒ๋ ธ์ ๋ ๋ก ๊ฐ์๋ก ์ปดํ์ผ ์๋๋ง ๋๋ ค์ง๊ณ ์๊ณ concept๊ฐ์ ์ ์ฉํ ๊ฒ๋ง ์์ฃผ ๊ฐ๋ ๋์ฌ ๋ฟ์ด๊ณ ๋๋ถ๋ถ ์ด์ฒํผ ํน์ ํจ๋ฌ๋ค์์ ์งํฅํ๋ ํ๋ก์ ํธ์์ผ๋ฉด ์ ๊ท ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ์ฐ๊ณ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ์ฐ๋ ์ค์ ์ด๋..
๋ฌ์คํธ ์ฒ์์ ํ ์ฌ๋๋ค ์๊ฐ ๋ค ๋๊ฐ์ww
์ํด๋ณธ๊ฒ ๋์ฒด๋ญ์.. ๋ฅ๋ ฅ์๊ฐ..
ํฉํธ) ๋ณธ์ธ์์ ๋ฌ์คํธ๋ก ์ฝ๋ฉํ์ค๋ ํด๋ณธ์ ์๋ฐ ๊ทธ๋ฅ ๋ฌ์คํธ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ์ข ์์๋ณด๊ณ ๋ฌ์คํธ the book์ชผ๋ ์ฝ์ด๋ฐง์ ๋ฟ
๋ฌ์คํธ์ ์ข ์ฐฉ์ ์ '๋๊ตฌ๋ฅผ ์ํ ์ธ์ด๋ฅผ ์ํ ์ฒ ํ์ ์ํ ์ฌ์' ์ด๋ค. ๋ฐ๋ ๋ค์ด์ง ๋ง.
์๊ธฐ๋ค๋ง ์ฐ๋ ค๊ณ ๋ฒ์จ ์ ๊ธ๋ค
ํ์ค๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฃผ์์ bad์ฐ๋๊ฒ ์ ์น์ ์ผ๋ก ์ฌ๋ฐ๋ฅด์ง์๋ค๊ณ ๋จธ๋ฒํ์ฅ์์ด๊ณ ํฌ๋ผ์์ ์ ์น์ธ์ํ๋ค๊ฐ '์ ์น์ธ์์ ๋์์ง๋ง ๋๋ ์ ๊ทธ์์ฒด์ด๋ฏ๋ก ์ฒ๋จํ๋ค' ๋ผ๋ฉด์ ๊ธฐ์ฌ์๋ค์ด ์ง์ ์นผํ๋๋ฅด๋ ์ฆ์ ๋ณ ์ธ์ด์ ์ ๋ง์ ๋ค์ ๋ค๊ณ ?
์ฌ์ค ์น๊ณ ๊ฑฐ๋ฌผ๊ธฐ์ ๋ค์ด ์ด๊ฑธ๋ก ์ด๋ฏธ ๊ฐ์ํ๊ฑฐ๋ ๊ฐ์ํ๊ณ ์๋ค๊ณ ํด์ ๋๋ฆฌ๋๊ฒ๋ ์์. ์ผ๋จ ๋ค ์กฐ์ธ๋๋ก ์ฃผ์ํ ๊ฒก
์ด๋ฐ ํฉ์กํ ๋ฐ๊ฐ.. ๋ด ๊ธ์์ ์จํ ๊ณ ์ ๋์ด ์ด์ผ๊ธฐํ๋๋ฐ ๋ค๊ณผ๋ผ๋ ๋์ ํ๊ณ ์ถ๋ค... ์ฆ๊ฒจ์ฐพ๊ธฐ ์๋ฃ
c++ ๋ณด๋ค ๋ ์ด๋ ต๊ฒ ๋๊ปด์ ธ! ๋ญ์ผ!!