โ 1. C ์ธ์ด์ ๋ฑ์ฅ๊ณผ ๋ฐ์
(1) ์ปดํจํฐ ํ๋ก๊ทธ๋๋ฐ๊ณผ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
[ ํ๋ก๊ทธ๋๋ฐ์ด๋? ]
- ์ปดํจํฐ๊ฐ ์์ ์ ์ํํ๊ธฐ ์ํด ์คํํด์ผ ํ๋ ์ผ๋ จ์ ๋ช ๋ น์ ์์ฑํ๋ ๊ฒ
[ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ]

- ํ๋ก๊ทธ๋จ์ ์์ฑํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์ธ์ด
(2) C ์ธ์ด์ ํ์
- 1972๋ Bell ์ฐ๊ตฌ์์ Denis Ritchie๊ฐ ์์คํ ํ๋ก๊ทธ๋๋ฐ์ ์ํ ๋ชฉ์ ์ผ๋ก ๊ฐ๋ฐํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด๋ค.
- ์ปดํจํฐ ๊ธฐ์ข ๊ฐ ํธํ์ฑ์ด ๋์ ๊ณ ๊ธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
- ํ๋์จ์ด ์์ค์ ์ ์ด์ ๋น ๋ฅธ ์คํ์ด ๊ฐ๋ฅํ ํ๋ก๊ทธ๋จ์ ๋ง๋ค ์ ์๋ ์ธ์ด
- PDP-7 ์ปดํจํฐ์์ ์ด์ ๋ธ๋ฆฌ์ด๋ก ๊ตฌํํ Unix ์ปค๋์ C์ธ์ด๋ก ์ฌ์์ฑ ์ฆ, C๋ก ๋ฐ๊ฟ์ ์ฝ๊ฒ ๋ณด์ด๊ฒํจ.
- ๋ค์ํ ์ปดํจํฐ์ Unix ์ด์์ฒด์ ๋ฅผ ์ด์ํ ์ ์๊ฒ ๋จ ( ํ๋์ ์ด์์ฒด์ ๋ค์ ๋๋ถ๋ถ Unix ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ ธ ์์. )
(3) C ์ธ์ด์ ํน์ง
[ ๋ฒ์ฉ ๊ณ ๊ธ์ธ์ด ]
- ๋ ผ๋ฆฌ์ ์ธ ์ฒ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค ์ ์๋ ๋ฐ์ดํฐ ํํ ๋ฐ ํ๋ฆ์ ์ด๋ฅผ ํ ์ ์์.
- ์ฌ๋ฌ ๊ฐ์ง ์ ์ฉํ ์ฒ๋ฆฌ๋ฅผ ์ํ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ณตํจ
- ํ๋ก๊ทธ๋จ์ ์ด์์ฑ์ด ๋์
[ ์์คํ ํ๋ก๊ทธ๋๋ฐ์ ์ ์กํ ์ธ์ด ]
- ์ด์์ฒด์ , ์ฅ์น๊ด๋ฆฌ์, ์ ํธ๋ฆฌํฐ ๋ฑ์ ๋ง๋๋ ๊ฒ์ ์์คํ ํ๋ก๊ทธ๋๋ฐ์ด๋ผ๊ณ ํ๋ค.
- ์ด ์ฒ๋ผ ์ ๊ธ์ธ์ด ์์ค์ ํน์ฑ์ด ์์ผ๋ฉฐ, ํ๋์จ์ด ์ ์ด์ ์ ํฉํ๋ฉฐ, ๋งค์ฐ ๋น ๋ฅธ ์คํ ์๋๋ฅผ ๊ฐ์ง๊ณ ์์.
[ ๊ฐ๊ฒฐํ ๋ฌธ๋ฒ ๊ตฌ์กฐ๋ก ๋์ด ์์ ]
- ๋ฌธ๋ฒ ๊ตฌ์กฐ๊ฐ ๊ณ ๊ธ์ธ์ด ์์ค์ผ๋ก ๋์ด์์ด, ์ดํดํ๊ธฐ ์ฌ์
โ 2. C ํ๋ก๊ทธ๋จ์ ์์ฑ
(1) ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ ๋จ๊ณ

(2) C ํ๋ก๊ทธ๋จ์ ์คํ ํ์ผ๋ก ๋ง๋๋ ๊ณผ์
[ 1. ์ฝ๋ฉ ]
- C ์ธ์ด์ ๋ฌธ๋ฒ์ ๋ง๊ฒ ์ฝ๋ฉ์ ํ๋ ๊ณผ์ ์ด๋ฉฐ, ์ด ๊ณผ์ ์ ํตํด C ํ๋ก๊ทธ๋จ์ ๋ง๋ค ์ ์๋ค. ( .c ํ์ฅ์ )
[ 2. ์ปดํ์ผ ]
- ๋ชฉ์ ํ์ผ(.obj) ๋ณํ ๊ณผ์ ์ด๋ฉฐ, ์ด ๊ณผ์ ์ ์ปดํ์ผ์ด๋ผ๊ณ ํ๋ค.
- ๋ชฉ์ ํ์ผ: ๊ธฐ๊ณ๊ฐ ์ดํด ํ ์ ์๋ ๊ธฐ๊ณ ํํ์ ์ฝ๋๋ฅผ ์๋ฏธํ๋ค. ( .obj ํ์ฅ์ )
[ 3. ๋งํฌ ]
- ๋ชฉ์ ํ์ผ๋ค์ ๋ฌถ์ด์ ํ๋์ ์คํํ๋ฆ์ผ๋ก ๋ง๋๋ ๊ณผ์ ์ด ๋งํฌ ๊ณผ์ ์.
- ์ปดํ์ผ ๋ ๋ชฉ์ ํ์ผ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ์ ๋ฌถ์ด์ ์คํ ํ ์ ์๋ ์ฝ๋์ ํํ๋ก ๋ง๋ค์ด์ค ( .exe ํ์ฅ์ )
[ ์ ๋ฆฌ ]
- ๋ณดํต์ ์ด ๊ณผ์ ๋ค์ IDE ๋ฅผ ํตํด ํ ๋ฒ์ ์ด๋ค์ง. ํ์ง๋ง, ๊ฐ๊ฐ์ ๋์์ ๋ด๋ถ์ ์ผ๋ก ๋ถ๋ฆฌ๊ฐ ๋์ด์์.
- ์ปดํ์ผ๊ณผ ๋งํฌ ๊ณผ์ ์ ํฉ์ณ์ ๋น๋๊ณผ์ ์ด๋ผ๊ณ ๋ถ๋ฆ
- C ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ ๋ฐ ์คํ์๋ ์์ค ์ฝ๋ ํธ์ง๊ธฐ, ์ปดํ์ผ๋ฌ, ๋ง์ปค, ๋๋ฒ๊น ๋๊ตฌ๊ฐ ํ์ํจ. ( ํตํฉ๊ฐ๋ฐํ๊ฒฝ - IDE ๋ผ๊ณ ๋ถ๋ฆ )
โ 3. C ํ๋ก๊ทธ๋จ์ ๊ตฌ์ฑ
(1) C ํ๋ก๊ทธ๋จ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ

[ C ํ๋ก๊ทธ๋จ ์์ฑ์์ ์ผ๋ฐ์ ์ธ ๊ท์น ]
- ๋ฐ๋์ ํ๋ ์ด์์ ํจ์๋ฅผ ํฌํจํด์ผ ํ๋ค.
- main() ํจ์๊ฐ ๋ฐ๋์ ์กด์ฌํด์ผ ํ๋ค.
- ํจ์์ ๋ชธ์ฒด๋ ์์๊ณผ ๋์ ์๋ฆฌ๋ ์ค๊ดํธ {}๋ฅผ ์ฌ์ฉํ์ฌ ๋ธ๋ก์ผ๋ก ๊ตฌ์ฑํ๋ค.
- ๋ธ๋ก ์์๋ ๋ณ์ ์ ์ธ๋ฌธ, ์นํ, ์ฐ์ฐ, ํจ์ํธ์ถ ๋ฑ์ ๋ช ๋ น์ ๊ธฐ์ ํ๋ค.
- ์ ํ์ฒ๋ฆฌ ์ง์์ด(perprocessiong directives)๋ฅผ ์ ์ธํ ๋ฌธ์ฅ์ ๋์๋ ์ธ๋ฏธ์ฝ๋ก (;)์ ๋ถ์ธ๋ค.
- ์ ํ์ฒ๋ฆฌ ์ง์์ด: C ํ๋ก๊ทธ๋จ ์ปดํ์ผ ์ ์ฒ๋ฆฌ๋๋ ๋ช ๋ น์ด๋ฅผ ์๋ฏธํจ.
(2) C ํ๋ก๊ทธ๋จ์ ๊ตฌ์ฑ ์์
[ C ํ๋ก๊ทธ๋จ์ ๊ตฌ์ฑํ๋ ํ ํฐ์ ์ข ๋ฅ ]
- ์์ฝ์ด(ํค์๋): C์์ ๊ณ ์ ํ ๋ฌธ๋ฒ ๋ฐ ์๋ฏธ๊ฐ ์ ํด์ง ๋จ์ด ( char, int, auth, volatile, for, if ๋ฑ )
- ๋ช ์นญ: ๋ณ์, ํจ์ ๋ฑ์ ์๋ณํ๊ธฐ ์ํด ์ ์ํ๋ ์ด๋ฆ ( ๋ณ์๋ช , ํจ์๋ช ๋ฑ )
- ์์: ๊ฐ์ด ๋ณํ์ง ์๋ ์๋ฃ (์ ์, ์ค์, ๋ฌธ์ ๋ฑ)
- ๋ฌธ์์ด: ํฐ๋ฐ์ดํ๋ก ๋ฌถ์ธ ๋ฌธ์ ์ํ์ค
- ๊ตฌ๋์ : ๊ณ ์ ํ ๋ฌธ๋ฒ ๋ฐ ์๋ฏธ๊ฐ ์ ํด์ง ๊ธฐํธ
- ์ค๋ช ๋ฌธ: ํ๋ก๊ทธ๋จ์ ๋ํ ์ฃผ์ ex - /* */ , // ( ์ปดํ์ผ๋ฌ๋ ์ค๋ช ๋ฌธ์ ์์ญ์ ๋ฌด์ํจ )
โ 4. ์๋ฌ์ ๊ฒฝ๊ณ
(1) ์๋ฌ
- ํ๋ก๊ทธ๋จ์ ์ ์์ ์ผ๋ก ๋น๋ํ ์ ์๋ ๋ฌธ์ ๊ฐ ํฌํจ๋ ์์ค ์ฝ๋์ ๊ฒฝ์ฐ ์๋ฌ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํจ
- C์ธ์ด์ ๋ฌธ๋ฒ์ ๋ง์ง ์๋ ํ์์ ๋ฌธ์ฅ์ ์ฌ์ฉํ ๊ฒฝ์ฐ
- ๋ฐ๋์ ํ์ํ ์์๊ฐ ๋๋ฝ๋ ๊ฒฝ์ฐ
- ์๋ฌ ๋ฐ์์ ๋น๋๊ฐ ์ค์ง๋์ด ๋ชฉ์ ์ฝ๋ ๋ฐ ์คํ ํ์ผ์ด ์์ฑ๋์ง ์์
- ์๋ฌ ๋ฉ์์ง๋ฅผ ํ์ธํ์ฌ ๋ฐ๋์ ์์ ํด์ผ ํจ
(2) ๊ฒฝ๊ณ
- ๋น๋๋ฅผ ์งํํ ์๋ ์์ง๋ง, ๋ฌธ์ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ์๋ ์์ค ์ฝ๋๋ฅผ ์์ฑํ ๊ฒฝ์ฐ์ด๋ค.
- ์ฌ์ฉํ์ง ์๋ ๋ณ์๋ ํจ์๋ฅผ ์ ์ํ ๊ฒฝ์ฐ
- ์ค์ฐจ๊ฐ ๋ฐ์ํ ์ ์๋ ๋ฌธ์ฅ ๋ฑ
- ๊ฒฝ๊ณ ๊ฐ ์๋๋ผ๋ ์คํ ํ์ผ์ ์์ฑ๋๋ฉฐ, ํ๋ก๊ทธ๋จ์ ์คํํ ์ ์์
- ๊ฒฝ๊ณ ๋ฉ์์ง๋ฅผ ๋ด์ฉ์ ํ์ ํ์ฌ ํ์ํ ๊ฒฝ์ฐ์๋ ์ ์ ํ ์์ ํ๋ฉฐ, ์๋ฌด๋ฐ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ๊ณ ๋ ๋ฌด์ํ ์ ์์
'๐ ๏ธBackend > โ๏ธC' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C] ์๋ฃํ๊ณผ ์ ํ์ฒ๋ฆฌ๊ธฐ (1) | 2025.08.29 |
---|