๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Programming/C language

1 C language - Why do we learn it

by Dowon Kang 2024. 1. 22.

 

C ์–ธ์–ด๋Š” 1972๋…„์— ๋ฒจ ์—ฐ๊ตฌ์†Œ์˜ ๋ฐ๋‹ˆ์Šค ๋ฆฌ์น˜(Dennis Ritchie)์™€ ์ผ„ ํ†ฐ์Šจ(Ken Thompson)์— ์˜ํ•ด ๊ฐœ๋ฐœ๋œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. C ์–ธ์–ด๋Š” ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์ ํ•ฉํ•˜๋ฉฐ, ์šด์˜ ์ฒด์ œ, ์ปดํŒŒ์ผ๋Ÿฌ, ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ถ„์•ผ์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 

 

์ด ์–ธ์–ด๋Š” ์ €๊ธ‰ ์–ธ์–ด์™€ ๊ณ ๊ธ‰ ์–ธ์–ด์˜ ํŠน์ง•์„ ๋ชจ๋‘ ๊ฐ€์ง€๊ณ  ์žˆ์–ด, ํ•˜๋“œ์›จ์–ด์™€ ๋ฐ€์ ‘ํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋˜๋ฉด์„œ๋„ ์ƒ๋Œ€์ ์œผ๋กœ ์‚ฌ์šฉ์ž ์นœํ™”์ ์ž…๋‹ˆ๋‹ค.

 

 

 

 

C์–ธ์–ด์˜ ํŠน์ง• 

  ๊ฐ„๊ฒฐํ•˜๊ณ  ๊ฐ„๋‹จํ•œ ๋ฌธ๋ฒ•   C ์–ธ์–ด๋Š” ์ƒ๋Œ€์ ์œผ๋กœ ๊ฐ„๊ฒฐํ•œ ๋ฌธ๋ฒ•์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ฝ”๋“œ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์ž‘์„ฑํ•   ์ˆ˜ ์žˆ๊ฒŒ ๋•์Šต๋‹ˆ๋‹ค.
  ์ €์ˆ˜์ค€ ์–ธ์–ด ํŠน์ง• ๋ฉ”๋ชจ๋ฆฌ์™€ ํ•˜๋“œ์›จ์–ด์— ์ง์ ‘ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ํŠน์ง•์„ ๊ฐ€์ง€๋ฉฐ, ์ด๋Š” ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋‚˜ ํ•˜๋“œ์›จ์–ด ์ œ์–ด์— ์ ํ•ฉํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  ์ด์‹์„ฑ ๋™์ผํ•œ ์ฝ”๋“œ๋ฅผ ์—ฌ๋Ÿฌ ํ”Œ๋žซํผ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ด์‹์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.
  ํ”„๋กœ์‹œ์ € ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•จ์ˆ˜ ๋˜๋Š” ํ”„๋กœ์‹œ์ €๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์Šคํƒ€์ผ์„ ์ง€์›ํ•˜๋ฉฐ, ๋ชจ๋“ˆํ™” ๋ฐ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค.
  ํฌ์ธํ„ฐ ํฌ์ธํ„ฐ๋ฅผ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์— ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์™€ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์ž…์ถœ๋ ฅ, ๋ฌธ์ž์—ด ์ฒ˜๋ฆฌ, ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋“ฑ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ํ‘œ์ค€ํ™”๋œ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  ๋Œ€์ค‘ํ™” ๋ฐ ํ™•์žฅ์„ฑ ๋งŽ์€ ์ปดํ“จํ„ฐ ๊ณผํ•™ ๊ต์œก์—์„œ ํ•ต์‹ฌ ์–ธ์–ด๋กœ ์‚ฌ์šฉ๋˜์—ˆ์œผ๋ฉฐ, ๋‹ค์–‘ํ•œ ์‘์šฉ ๋ถ„์•ผ์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ์–ธ์–ด์ž…๋‹ˆ๋‹ค.

 

 

C์–ธ์–ด๋ฅผ ๋ฐฐ์›Œ์•ผ ํ•˜๋Š” ์ด์œ  

C ์–ธ์–ด๋ฅผ ๋ฐฐ์šฐ๋ฉด ๊ณ ๊ธ‰ ์ˆ˜์ค€์˜ ์ถ”์ƒํ™”๋ฅผ ์ œ๊ณตํ•˜๋Š” ์–ธ์–ด๋“ค๋ณด๋‹ค ๋” ๋‚ฎ์€ ์ˆ˜์ค€์˜ ์–ธ์–ด๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜๋Š” ๊ฒฝํ—˜์„ ์–ป๊ฒŒ ๋˜์–ด, ์ปดํ“จํ„ฐ ๊ตฌ์กฐ, ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ, ํ•˜๋“œ์›จ์–ด์™€์˜ ์ƒํ˜ธ์ž‘์šฉ ๋“ฑ์— ๋Œ€ํ•œ ์ดํ•ด๋„๋ฅผ ๊นŠ๊ฒŒ ํ‚ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋ช‡ ๊ฐ€์ง€ ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค:

 

  1. ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์˜ ์ดํ•ด: C ์–ธ์–ด์—์„œ๋Š” ์ง์ ‘์ ์œผ๋กœ ํฌ์ธํ„ฐ๋ฅผ ๋‹ค๋ฃจ๊ณ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น ๋ฐ ํ•ด์ œํ•˜๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋ฉ”๋ชจ๋ฆฌ์˜ ๋™์ž‘ ๋ฐฉ์‹์— ๋Œ€ํ•œ ๋ช…ํ™•ํ•œ ์ดํ•ด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ํšจ์œจ์„ฑ๊ณผ ์•ˆ์ •์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ํ•˜๋“œ์›จ์–ด์™€์˜ ์ƒํ˜ธ์ž‘์šฉ: C ์–ธ์–ด๋Š” ์ €์ˆ˜์ค€์˜ ์ž…์ถœ๋ ฅ ๋ฐ ํ•˜๋“œ์›จ์–ด ์ œ์–ด๋ฅผ ์ง€์›ํ•˜๋ฏ€๋กœ, ํ•˜๋“œ์›จ์–ด์™€ ์ง์ ‘ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝํ—˜์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ, ๋“œ๋ผ์ด๋ฒ„ ๊ฐœ๋ฐœ, ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋“ฑ์—์„œ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
  3. ์„ฑ๋Šฅ ์ตœ์ ํ™”: C ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์„ฑ๋Šฅ ์ตœ์ ํ™”์— ๋Œ€ํ•œ ๋” ํฐ ์ž์œ ๋„๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ตœ์ ํ™”์— ๋Œ€ํ•œ ์ง์ ‘์ ์ธ ์ œ์–ด๋ฅผ ํ†ตํ•ด ๋†’์€ ์„ฑ๋Šฅ์˜ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. ์ปดํ“จํ„ฐ ๊ตฌ์กฐ ์ดํ•ด: C ์–ธ์–ด๋ฅผ ๋ฐฐ์šฐ๋ฉด ์ปดํ“จํ„ฐ์˜ ๋™์ž‘ ์›๋ฆฌ์™€ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ ˆ์ง€์Šคํ„ฐ, ์Šคํƒ, ํž™ ๋“ฑ์˜ ์ปดํ“จํ„ฐ ์•„ํ‚คํ…์ฒ˜์˜ ํ•ต์‹ฌ ๊ฐœ๋…์„ ์ดํ•ดํ•˜๋Š”๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
  5. ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐ ์šด์˜ ์ฒด์ œ ์ดํ•ด: C ์–ธ์–ด๋Š” ์šด์˜ ์ฒด์ œ ๋ฐ ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์šด์˜ ์ฒด์ œ์˜ ๋™์ž‘, ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ, ํŒŒ์ผ ์‹œ์Šคํ…œ ๋“ฑ๊ณผ ๊ฐ™์€ ์‹œ์Šคํ…œ ๋ ˆ๋ฒจ์˜ ์ž‘์—…์„ ์ดํ•ดํ•˜๊ณ  ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๊นŠ์€ ์ดํ•ด๋Š” ๊ณ ๊ธ‰ ์ˆ˜์ค€์˜ ์–ธ์–ด๋“ค๋กœ ์ถ”์ƒํ™”๋œ ๊ฐœ๋ฐœํ™˜๊ฒฝ์—์„œ๋Š” ์–ป๊ธฐ ์–ด๋ ค์šด ๊ฒฝํ—˜๊ณผ ์ง€์‹์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ์ด๋Ÿฌํ•œ ๊ธฐ๋ฐ˜์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด ๋‹ค๋ฅธ ์–ธ์–ด๋กœ์˜ ์ „ํ™˜์ด๋‚˜ ๋†’์€ ์ˆ˜์ค€์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž‘์—…์—๋„ ๋ณด๋‹ค ๋” ๊ฐ•๋ ฅํ•œ ๊ธฐ์ดˆ๊ฐ€ ๋งˆ๋ จ๋ฉ๋‹ˆ๋‹ค.

 

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

4 Constant  (1) 2024.01.23
3 Variable  (0) 2024.01.22
2 Hello world  (0) 2024.01.22
[Algorithm] Time complexity (์‹œ๊ฐ„๋ณต์žก๋„)  (0) 2024.01.21
[์ž๋ฃŒ๊ตฌ์กฐ] Data structure  (0) 2024.01.07

๋Œ“๊ธ€