C ํ๋ก๊ทธ๋๋ฐ, ๋
ํ๊ฒ ๋ ๊ฐ๋ ฅํ๊ฒ! ๐ฅ
์ฝ๋ฉ ์ธ์ด ๋ฌธ๋ฒ๋ง ์๋ค๊ณ
๊ฐ๋ฐ โ์โ ํ ์ ์์๊น์?
๐ฅ โ์ปดํ์ผ๋ฌ๊ฐ ๋ญ์ง ์ดํดํ๊ธฐ ์ด๋ ค์์.โ
๐ฅฒ โ์ ๊ณต์๋งํผ C์ธ์ด ์ํ๊ณ ์ถ์๋ฐ, ๋ญ๊ฐ ๋ถ์กฑํด์.โ
๐ค โ์ด์ ์์ CS ๊ณต๋ถ๋ฅผ ๋ค์ ํ๊ธด ํ๋คํ
๋ฐ...โ
์ฝ๋ฉ ์ดํ์ผ๋ก ๋๊ตฌ๋ ํ๋ก๊ทธ๋๋จธ๊ฐ ๋ ์ ์๋ ์ธ์์ด ์ด๋ ธ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ ์ ๊ธฐ์
์์๋ ์ธ๋ ฅ์ด ๋ถ์กฑํ๋ค๊ณ ์์ฐ์ฑ์ด๊ณ , ๋ง์ ์๋น ๊ฐ๋ฐ์๋ค์ด ์ทจ์
์ ๊ฑฑ์ ํฉ๋๋ค. ์ ๊ทธ๋ด๊น์? ์์ '์ ๋๋ก' ๋ฐฐ์ด ์ฌ๋์ด ์ ๊ธฐ ๋๋ฌธ์
๋๋ค. ๋๊ตฌ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ๋ฐฐ์ฐ๊ณ ๋ฌธ๋ฒ์ ์ตํ๋๋ค. ๊ทธ๋ฌ๋ ์ ๊ทธ๋ฐ ํํ๊ฐ ๋๋์ง, ์ด๋ค ์๋ฆฌ๋ก ์๋ํ๋์ง ๊น์ด ๊ณ ๋ฏผํ์ง ์๊ฑฐ๋ ์์ง ๋ชปํฉ๋๋ค.
๊ฐ๋ น ์ปดํ์ผ๋ฌ(Compiler)์ ๋ํด์๋ ์ด๋จ๊น์? ์ด๋ฏธ ํ์ง์ ์๋ ํ๋ก๊ทธ๋๋จธ๋ผ ํด๋ CS์ ๊ณต์๊ฐ ์๋ ์ด์ ์ปดํ์ผ๋ฌ์ ๋ํ ์ด์ผ๊ธฐ๋ ์ ์์ง ๋ชปํฉ๋๋ค. ๊ทธ๋์ ๋ชฐ๋ผ๋ ๋๊ธฐ ๋๋ฌธ์
๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ๋ฐ์๊ฐ ํ ๋จ๊ณ ๋ฐ์ ํ๊ธฐ ์ํด์๋ ๊ผญ ์์์ผ ํ ์ด๋ก ์ค ํ๋๋ ๋ฐ๋ก ์ปดํ์ผ๋ฌ์ ๋ํ ๊ฒ์
๋๋ค. ํ์ง๋ง, ๊ทธ๋ ๋ค๊ณ ์ด์ ์ CS ์ ๊ณต ๊ณต๋ถ๋ฅผ ๋ค์ ํ๊ธฐ๋ ์ฝ์ง ์๊ฒ ๋๊ปด์ง๋๋ค.
โ์ฌ์ค์ 4๋
์ด ๊ฑธ๋ฆฌ๋ ์ผ์
๋๋ค!โ
์ปดํจํฐ๊ณตํ์ ์ ๊ณตํ ๋ถ๋ค์ 4๋
์ด๋ผ๋ ๊ธด ์๊ฐ์ ์์๋ถ์ด ๊ฐ๋ฐ์๊ฐ ๋ฉ๋๋ค. ๋๊ตฌ๋ ํ ์ ์๋ค๋ ๊ทธ ์ฝ๋ฉ์ด, ์ฌ์ค์ 4๋
์ด ๋๋ ๊ธด ํ์ต ์๊ฐ์ ์๊ตฌํ๋ค๋ ์ฌ์ค์ ์ฐ๋ฆฌ๋ ์๊ฐ๋ณด๋ค ์ฝ๊ฒ ๊ฐ๊ณผํฉ๋๋ค.
๋๋ฌธ์ ์ด๋ณด์๊ฐ ๊ทธ ๋ค์ ๋จ๊ณ๋ก ๋์ด๊ฐ๊ธฐ ์ํด์๋ ์ปดํ์ผ๋ฌ์ ์๋ ์๋ฆฌ, ์ธ์ด์ ๋ฌธ๋ฒ ๊ด๊ณ, ์ปดํจํฐ ๊ตฌ์กฐ์ ์ฐ๊ฒฐ๋ ํ๋ก๊ทธ๋๋ฐ ์ด๋ก (๊ฐ์ ๋ฉ๋ชจ๋ฆฌ, ๋ฉํฐ์ค๋ ๋), ๋ณด์(์๊ฒฉ์ฝ๋ ์คํ ์ทจ์ฝ์ ), ์ํ์ด ์ฝ๋ฉ ๋ฑ์ ์ด๋ก ๋ค์ ์ตํ๋ ๋
ธ๋ ฅ์ด ํ์ํฉ๋๋ค.
๋ฐ๋ผ์ ์ด ๊ฐ์์ ์ฃผ์ ์ ํต์ฌ ๋ชฉํ๋ ๊ทธ๋ฌํ ์ด๋ก ๊ณผ ์๋ฆฌ๋ฅผ ์ตํ๊ณ , ๊ฒฝ์๋ ฅ์ ํ๋ณดํ๋ ๊ฒ์
๋๋ค.
ํ ๋จ๊ณ ๋์ฝํ๊ณ ์ถ์
C์ธ์ด ๊ฐ๋ฐ์๋ผ๋ฉด!
๋ชฉํ๋ ํ๋, CS ์ ๊ณต์ ์์ค์ ๋์ด์๋ C ํ๋ก๊ทธ๋๋ฐ ๋ฅ๋ ฅ ํ๋ณด์
๋๋ค!
โ
์ด๋ฏธ C์ธ์ด ๊ธฐ์ด ๋ฌธ๋ฒ์ ๊ณต๋ถํ์ง๋ง ๋ฌด์ธ๊ฐ ๋ถ์กฑํ๋ค๊ณ ๋๋ผ๋ ๋ถ
โ
CS ์ ๊ณต์ ์์ ํ๊ณผ ๊ณต๋ถ๋ฅผ ๋ฏธ๋ฆฌ ํด๋ณด๊ณ ์ถ์ ์๋น ์ ๊ณต์ (๋จ, C์ธ์ด ๋ฐ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์๊ณ ์๋ ๋ถ)
โ
์ปดํ์ผ๋ฌ ์ด๋ก ์ ๊ฒฝํํด๋ณด๊ณ , ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ํ ๋ ๊น์ ์ดํด๋ฅผ ์ป์ผ๋ ค๋ ๊ฐ๋ฐ์
โ
โ๋๊ตฌ๋ ํ ์ ์๋โ ์ฝ๋ฉ์ด ์๋๋ผ, ๊ฐ๋ฐ์๋ก์์ ๊ฒฝ์๋ ฅ์ ๊ฐ์ถ๊ณ ์ถ์ ์ทจ์ค์
C/C++ ๊ณ์ด ๊ฐ๋ฐ์๋ JAVA ๊ณ์ด๊ณผ ๋น๊ตํด ๊ฐ๋ฐ์ 1๋ช
์ ์์ฑํ๊ธฐ ์ํด ๋ณดํต 2~3๋ฐฐ ์ด์์ ์๊ฐ๊ณผ ๋
ธ๋ ฅ์ด ํ์ํ๋ค๊ณ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์๋ฐ ์ ๋ฌธ๊ฐ๋ ํธ๋ฌ๋ธ ์ํ
์ด๋ ๊ณ ๊ธ ์ด๋ก ๋ค์ ๋ค๋ฃจ๋ ค๋ฉด ๊ฒฐ๊ตญ C/C++ ๊ณ์ด ์ ๋ฌธ๊ฐ์ ๋๋ฑํ ์์ค์ ๋
ธ๋ ฅ(ํน์ ๊ทธ ์ด์)์ด ํ์ํฉ๋๋ค. ๊ฒฐ๊ตญ ๋ค๋ฅธ ๋ถ์ผ๋ก ์ถ๋ฐํ ๋ฟ ์ด๋ ์์ค์์๋ ๋ชจ๋ ์ด๋ก ๋ค์ด ๋ชจ์ด๋ ์ ์ ์ด ์๋ค๊ณ ํ ์ ์์ต๋๋ค.
์ด ๊ฐ์์ ์ฃผ์ ์ ํต์ฌ ๋ชฉํ๋ ๊ทธ ์ ์ ์ ํด๋นํ๋ ๋ณธ์ง์ ์ด๋ก ๋ค์ ์ดํดํ๋ ๊ฒ์
๋๋ค.
์ค๋ฌด ๊ฐ๋ฐ์๋ผ๋ฉด ๊ผญ ์์์ผ ํ
ํต์ฌ ๋ด์ฉ์ ๋ค๋ฃน๋๋ค.
๐ก C์ธ์ด ๊ฐ๋ฐ์๋ก์ CS ์ ๊ณต ์ง์์ ๋ํ ๋ถ์กฑํจ์ ๋๋ผ์ง๋ง ๋ง์ ํ์ตํ๊ธฐ์๋ ๋ถ๋ด์ ๋๋ผ์๋ ๋ถ๋ค์ด ๊ฐ๋ตํ๊ฒ๋ผ๋ ์ปดํ์ผ๋ฌ ์ด๋ก ๊ณผ ์์คํ
์ด๋ก ๋ฑ CS ์ ๊ณต ํต์ฌ ์ด๋ก ์ ์ดํดํ๋ ๋ฐ ๋์์ ์ค๋๋ค. ์ฐจ๋ณํ ํน์ ๋ค์ ๋จ๊ณ๋ก์ ๋์ฝ์ ์ํ๋ ์ด๊ธ ๊ฐ๋ฐ์ ๋ถ๋ค์๊ฒ ์ ์ ํ ๋ฐฉํฅ์ ์ ์ํฉ๋๋ค.
- C์ธ์ด ๊ธฐ๋ณธ์ด๋ก ์ฌ์ ๋ฆฌ
- ์ปดํ์ผ๋ฌ, ์ปดํจํฐ ๊ตฌ์กฐ
- ์คํํ๋ ์ ๊ตฌ์กฐ์ ์๋ฆฌ๋ฅผ ํฌํจํ ํจ์
- ๋๊ธฐ/๋น๋๊ธฐ ํ์ผ ์
/์ถ๋ ฅ
- ๋ฉํฐ์ค๋ ๋
- ๋ณ์์ ์์์ ๋ํ ๊ณ ๊ธ์ด๋ก
- ์ปดํ์ผ๋ฌ ์ต์ ํ์ ํจ์์ ๊ดํ ์ค๊ธ์ด๋ก
- ์ ์ /๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ฐ
- ๋ณด์๊ณผ ์ํ์ด ์ฝ๋ฉ
์ด ๊ฐ์๋ ์ด 10๊ฐ์ ์น์
์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. C์ธ์ด์ ๋ํ ์ดํด์ ์ปดํ์ผ๋ฌ๋ก ์์ํด ์์คํ
ํ๋ก๊ทธ๋๋ฐ ์ด๋ก ๊ณผ ์ํ์ด ์ฝ๋ฉ์ ์ด๋ฅด๊ธฐ๊น์ง ๋ชจ๋ ์ค๋ฌด ๊ฐ๋ฐ์๊ฐ ๋ฐ๋์ ํ์ตํด์ผ ํ ๋ด์ฉ์ผ๋ก ๊ตฌ์ฑํ์์ต๋๋ค.
์ปดํ์ผ๋ฌ ๊ตฌ์ฑ ์์ ไธญ
์ถ์ ๊ตฌ๋ฌธ ํธ๋ฆฌ(AST)์ IR ไธญ
์ ์ ์ง์์ ํ์ธํด์ฃผ์ธ์!
C์ธ์ด ๋ฌธ๋ฒ ๋ฐ ์๋ฃ๊ตฌ์กฐ์ ๋ํ ๊ธฐ๋ณธ์ ์ธ ์ดํด๊ฐ ํ์ํฉ๋๋ค.
์ด ๊ฐ์๋ ์
๋ฌธ์~์ด๋ณด์๋ฅผ ์ํ ๊ฐ์๊ฐ ์๋๋๋ค. C์ธ์ด ๊ธฐ๋ณธ ๋ฌธ๋ฒ ๋ฐ ์ด๋ก (ํฌ์ธํฐ ๋ฑ)๊ณผ ์๋ฃ๊ตฌ์กฐ์ ๋ํ ๊ธฐ๋ณธ์ ์ธ ์ดํด๊ฐ ์๋ค๋ ์ ์ ๋ก ์งํ๋๋ ์ค๊ธ ๊ณผ์ ์
๋๋ค. ์์ธ๋ฌ ๊ฐ์ โ๋๊ณ ์๊ฒ ์ธ์์ ์ปด๊ณต ์ ๊ณต์ ๋๊ธฐโ ๊ฐ์์์ ์ธ๊ธํ๋ ์ด๋ก ์ ๋๋ ์๊ณ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
Q&A ๐ญ
Q. C์ธ์ด ๋ฌธ๋ฒ์ ๋ค๋ฃจ์ง ์๋์?
๋ค, ์ด๋ฏธ C์ธ์ด์ ์๋ฃ๊ตฌ์กฐ๋ฅผ ๋ฐฐ์ด ๋ถ๋ค์ ์ํ ๊ฐ์์
๋๋ค. ์
๋ฌธ์ ์์ค์ ์ด๋ก ์ ๋ค๋ฃจ์ง ์์ต๋๋ค.
Q. ์๋ฐ(Java) ํ๋ก๊ทธ๋๋จธ๊ฐ ๋ค์ด๋ ์๊ด ์๋์?
C์ธ์ด๋ฅผ ๋ฐฐ์๋ณธ ๊ฒฝํ์ด ์๊ณ Pointer์ ๋ํด ์ผ์ ์์ค์ ์ง์์ ๊ฐ์ท๋ค๋ฉด ์๊ด ์์ต๋๋ค.
Q. macOS, Linux ํ๊ฒฝ์์๋ ์ค์ต์ด ๊ฐ๋ฅํ๊ฐ์?
์ด๋ก ์ ๋ฃ๋ ๊ฒ์ ๋ฌธ์ ์์ผ๋ ๋๊ตฌ ์ฌ์ฉ๋ฐฉ๋ฒ์ ๊ตฌ์ฒด์ ์ผ๋ก ๋ค๋ฃจ๊ธฐ ๋๋ฌธ์ ๋ฐ๋์ Windows 10 + Visual studio 2022 ๊ฐ๋ฐํ๊ฒฝ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๐พ ์ค์ต ํ๊ฒฝ & ํ์ต ์๋ฃ ์๋ด
- ๊ฐ์๋ Windows 10 ์ด์์ฒด์ ์์ Visual Studio 2022 Community ๋ฒ์ ์ ์ฌ์ฉํ์ฌ ์งํ๋ฉ๋๋ค. ๋ค๋ฅธ ํ๊ฒฝ์์๋ ์ด๋ก ์์
์ ์๊ฐํ๋ ๋ฐ๋ ๋ฌธ์ ๊ฐ ์์ผ๋, ๊ตฌ์ฒด์ ์ธ ๋๊ตฌ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ๋ค๋ฃจ๊ธฐ ๋๋ฌธ์ ๋ฐ๋์ ํด๋น ํ๊ฒฝ์ ํตํด ์๊ฐํ์๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
- ์๋ฃ๊ตฌ์กฐ ๋ฐ C์ธ์ด ๊ธฐ๋ณธ ๋ฌธ๋ฒ ๋ฐ ์ด๋ก (ํฌ์ธํฐ ๋ฑ)์ ์ค๋ช
ํ์ง ์๋ ์ค๊ธ ๊ณผ์ ์
๋๋ค.
- ์์
PPT ์๋ฃ ๋ฐ ๊ฐ ์์
์ ์ฌ์ฉ๋ ์์ ํ์ผ์ ์ ๊ณตํฉ๋๋ค.
ํจ๊ป ๋ณด๋ฉด ๋ ์ข์ ๊ฐ์ ๋ชจ์ ๐บ