๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • Maker's VAP
Programming/C

[C์–ธ์–ด] C์–ธ์–ด๋ž€?

by E = mc² 2020. 3. 10.
๋ฐ˜์‘ํ˜•

๐Ÿ›ธ C์–ธ์–ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

์ธ๊ฐ„๊ณผ ์ปดํ“จํ„ฐ๊ฐ„์˜ ์˜์‚ฌ์†Œํ†ต ์ˆ˜๋‹จ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์ค‘ ํ•˜๋‚˜์ธ C์–ธ์–ด๋Š” 1972๋…„ ๋ฏธ๊ตญ ๋ฒจ ์—ฐ๊ตฌ์†Œ์˜ ๋ฐ๋‹ˆ์Šค ๋ฆฌ์น˜(Dennis Ritchie)๊ฐ€ ๊ฐœ๋ฐœํ•œ ์‹œ์Šคํ…œ ๊ธฐ์ˆ ์šฉ ์–ธ์–ด์ด๋‹ค.(์‹œ๋Œ€์  ๋ฐฐ๊ฒฝ : 1960๋…„๋Œ€ ํ›„๋ฐ˜, ๋ฏธ๊ตญ ๊ตญ๋ฐฉ๋ถ€์—์„œ ๊ฐœ๋ฐœํ•˜๊ธฐ ์‹œ์ž‘ํ•œ ARPANET์„ ์‹œ์ž‘์œผ๋กœ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ๋ง ์ ์ฐจ ๋ณต์ž‘ํ•œ ํ˜•ํƒœ๋กœ ๋ฐœ์ „)

 

๋‹น์‹œ ๋Œ€๋ถ€๋ถ„์˜ ์ปดํ“จํ„ฐ์—์„œ ์œ ๋‹‰์Šค๋ฅผ ์ฑ„ํƒํ•˜์˜€๋Š”๋ฐ ํ•˜๋“œ์›จ์–ด ์˜์กด๋„๊ฐ€ ๋†’์•„ ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ณ  ์ธ๊ฐ„์ด ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์šด ์ €๊ธ‰ ์–ธ์–ด(low-level language)์ธ ์–ด์…ˆ๋ธ”๋ฆฌ ์–ธ์–ด๋กœ ๋งŒ๋“ค์–ด์กŒ๊ธฐ ๋•Œ๋ฌธ์— ์ปดํ“จํ„ฐ ๊ฐ๊ฐ์˜ ๊ธฐ์ข…์— ๋”ฐ๋ฅธ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐ์ข… ๊ฐ„์˜ ํ˜ธํ™˜์ด ๊ฐ€๋Šฅํ•œ ๊ณ ๊ธ‰ ์–ธ์–ด(high-level language)์ด๋ฉด์„œ ์ปดํ“จํ„ฐ์˜ ํ•˜๋“œ์›จ์–ด ์ œ์–ด๊ฐ€ ๊ฐ€๋Šฅํ•œ ์ €๊ธ‰ ์–ธ์–ด์˜ ํŠน์„ฑ์„ ์ง€๋‹Œ ์ƒˆ๋กœ์šด ์–ธ์–ด์˜ ๋“ฑ์žฅ์ด ํ•„์š”ํ–ˆ๊ณ  ๊ทธ ๊ฒฐ๊ณผ ์œ ๋‹‰์Šค(UNIX) ์šด์˜์ฒด์ œ ๊ฐœ๋ฐœ์— ์‚ฌ์šฉํ•  ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์–ธ์–ด๊ฐ€ C์ด๋‹ค. C๋Š” ์—ฐ์‚ฐ์ž์˜ ์ข…๋ฅ˜๊ฐ€ ๋‹ค์–‘ํ•ด ๊ฐ„๋žตํ•œ ๋ฌธ๋ฒ• ํ‘œํ˜„์œผ๋กœ ์ž‘์„ฑ์ด ์šฉ์ดํ•˜๋ฉฐ ํ”„๋กœ๊ทธ๋žจ ์ด์‹์„ฑ์ด ๋†’๋‹ค.

 

์ด์ „๊นŒ์ง€ ์–ด์…ˆ๋ธ”๋ฆฌ ์–ธ์–ด์—๋งŒ ์˜์กดํ• ์ˆ˜๋ฐ–์— ์—†์—ˆ๋˜ ์œ ๋‹‰์Šค ์šด์˜์ฒด์ œ์˜ 90% ์ด์ƒ์ด C๋กœ ๋Œ€์ฒด๋˜๋ฉด์„œ ๋„๋ฆฌ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๊ณ  ํ˜„์žฌ๊นŒ์ง€ ์ปดํ“จํ„ฐ ์šด์˜์ฒด์ œ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ, ์‚ฐ์—…์šฉ ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ, ์œ ๋ฌด์„  ํ†ต์‹  ์‹œ์Šคํ…œ, ๋กœ๋ด‡ ์ œ์–ด ๋“ฑ ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๋Š” ๋Œ€ํ‘œ์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ๋ฐœ์ „ํ•˜์˜€๋‹ค.

 

์ฐธ๊ณ ๋กœ C์–ธ์–ด์— ๊ฐ์ฒด์ง€ํ–ฅ ๊ฐœ๋…์„ ์ถ”๊ฐ€ํ•œ ์–ธ์–ด๊ฐ€ C++์ด๊ณ  ๋„คํŠธ์›Œํฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” JAVA, C# ๋“ฑ ๋งŽ์€ ์–ธ์–ด์—๋„ ์˜ํ–ฅ์„ ์ค€ ์–ธ์–ด๊ฐ€ ๋ฐ”๋กœ C์ด๋‹ค.


์ปดํ“จํ„ฐ๋Š” 0, 1 ๋‘ ๊ฐœ์˜ ์ˆซ์ž(์ด์ง„์ˆ˜)๋งŒ ์‚ฌ์šฉํ•˜๋Š” ์ด์ง„๋ฒ•์œผ๋กœ ๋Œ€ํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋”ฐ๋ผ์„œ ๋งˆ์น˜ ์ธ๊ฐ„์ด ๋‹ค๋ฅธ ๋‚˜๋ผ์˜ ์–ธ์–ด๋ฅผ ๋ฒˆ์—ญํ•˜๋“ฏ์ด ์ปดํ“จํ„ฐ๊ฐ€ ์ธ๊ฐ„์˜ ์–ธ์–ด๋ฅผ ์•Œ์•„๋“ค์„ ์ˆ˜ ์žˆ๋„๋ก ํ†ต์—ญํ•˜๋Š” ์ˆ˜๋‹จ์ด ํ•„์š”ํ•˜๋‹ค. C์—์„œ ์ด๋Ÿฌํ•œ ์—ญํ• ์„ ํ•˜๋Š” ๊ฒƒ์ด ์ปดํŒŒ์ผ๋Ÿฌ์ด๋‹ค. ์ธ๊ฐ„์ด ์†Œ์Šค ์ฝ”๋“œ(source code)๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ๊ธฐ์–ต์žฅ์น˜์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋„๊ตฌ๊ฐ€ ์—๋””ํ„ฐ(editor)์ด๊ณ  ์ด ์—๋””ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์„ฑํ•œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ปดํ“จ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๊ณ„์–ด๋กœ ๋ฒˆ์—ญํ•ด์ฃผ๋Š” ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์ปดํŒŒ์ผ๋Ÿฌ(compiler)์ธ๋ฐ C๋กœ ์ž‘์„ฑ๋œ ์†Œ์Šค ํ”„๋กœ๊ทธ๋žจ์„ ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜ํ•˜๋ ค๋ฉด C์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.(C์ปดํŒŒ์ผ๋Ÿฌ ์ข…๋ฅ˜)

 

C ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋‹จ๊ณ„๋Š” ์ด 7๋‹จ๊ณ„๋กœ ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™๋‹ค.

 

ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ ๋‹จ๊ณ„

 

C๋กœ ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจ์€ ํฌ๊ฒŒ ๋ถ„๋ฅ˜ํ•˜์—ฌ ์ฝ”๋”ฉ(coding), ์ปดํŒŒ์ผ(compile), ๋งํ‚น(linking)์ด๋ผ๋Š” 3๋‹จ๊ณ„ ๋ณ€ํ™˜ ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค.

  • ์ฝ”๋”ฉ ๋‹จ๊ณ„ : ์ฃผ์–ด์ง„ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์„ค๊ณ„๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ์†Œ์Šค ํŒŒ์ผ(source file, ํ™•์žฅ์ž : .c)์„ ์ƒ์„ฑํ•จ
  • ์ปดํŒŒ์ผ ๋‹จ๊ณ„ : ์†Œ์Šค ํŒŒ์ผ์ด ๋ชฉ์  ํŒŒ์ผ(object file, ํ™•์žฅ์ž : .obj)๋กœ ๋ณ€ํ™˜๋จ
  • ๋งํ‚น ๋‹จ๊ณ„ : ๋ชฉ์  ํŒŒ์ผ์„ ์‹คํ–‰ ํŒŒ์ผ(execution file, ํ™•์žฅ์ž : .exe)๋กœ ๋ณ€ํ™˜ํ•จ

 

 

๋ฐ˜์‘ํ˜•

'Programming > C' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[C] Visual Studio 2019 ๋ฌด๋ฃŒ ๋‹ค์šด๋กœ๋“œ ๋ฐ ์„ค์น˜  (0) 2020.03.10

๋Œ“๊ธ€