[프로그래밍 언어 알아보기] C언어

C언어란??

- 애플리케이션 개발에서 가장 많이 사용되는 언어. C는 C언어의 개정판은 'C++(C쁠쁠)과 함께 'C/C++'로 적는 경우가 많습니다. 즉, 이 둘을 세트로 생각해도 된다라는 것입니다. 


C의 역사

C는 1972년 미국의 AT&T 벨연구소의 브라이언 케니핸과 데니스 리치라는 두 연구자에 의해 개발된 프로그래밍 언어입니다. 미니컴퓨팅의 OS를 만들기 위해서 고안된 언어입니다. 그 OS는 UNIX였습니다. 'C'라는 이름이 생긴 이유는 그 전에 'B'라는 언어가 있었는데 그 'B'다음은 'C'라는 생각으로 붙여졌다고 합니다. C는 OS(운영체제)를 만들기 위해 고안된 것이기 때문에 효율이 좋습니다. 그리고 컴픅트하며 기기를 유연하게 제어할 수 있어야 했었습니다.. 그러한 기대에 부응했던 것이 C였습니다. "C는 왜이렇게 이해하기 어렵지?"라는 소리를 자주 듣는데 그 이유는 처음부터 알기쉽게 작성한 것을 목표로하여 만든 언어가 아니기 때문입니다. 'C'자체는 아주 심플하지만 잘 구사하기 위해서는 메모리 등 여러가지 공부를 하지 않으면 안된다는 것입니다. 솔직히 말해서 프로그래밍 첫걸음으로는 C가 적합하지 않다고 생각합니다. 컴퓨터에 대한 공부를 병행하는 비전공자에서는 한에서요.


C언어의 특징

- 매우 컴팩트하다 : C언어의 본체는 문자나 숫자를 표시하는 기능조차 없을 정도로 굉장히 작습니다. "전에 C책을 사서 본적이 있는데 그때는 산더미처럼 많은 함수가 나오던데요?" 라고 물을지도 모르지만 그것은 C 본체의 기능이 아닙니다. C의 본체 자체는 약간의 기능밖에 마련되어있지 않습니다. 필요한 기능은 모두 외부에 라이브러리로 마련해 두고 필요에따라 그 라이브러리를 호출하여 사용하도록 하므로 본체 자체는 아주 작습니다. 게다가 OS 등에 의존하는 부분이 본체와 분리되어있어 C는 정말 이식성이 높습니다. 그래서 처음에 UNIX에서만 사용된 것이 순식간에 PC까지 널리 퍼지게 되었던 것입니다.


- C는 함수가 전부 : 뭐니뭐니해도 함수로 되어있다는 것입니다. 하나하나의 기능이 모두 함수로 정의되어있으므로 알기 쉽습니다 하지만 무엇을 하려고 할떄 함수를 호출해야만 하므로 귀찮을 수도 있습니다.


- C명령은 저수준이다? : C에 있는 명령들은 저수준입니다. 프로그래밍에서 저수준이라는 것은 수준이 낮다 기능이 낮다라는 것이 아니라 보다 하드웨어에 가까운 것이라는 뜻입니다. C의 명령은 CPU에게 보내는 명령의 형태에 가깝습니다.


- 하드웨어를 직접 제어 : C는 OS를 만들기 위해 설계된 것이므로 컴퓨터의 하드웨어 제어가 특기입니다. 예를 들어, 주변 하드웨어에 엑세스하기 위한 것은 C의 독무대가 됩니다. 물론 그러기 위해서는 하드웨적인 지식이 필요합니다. 그래서 C를 사용하기 위해서는 메모리구조등에 관한 지식을 최소한은 갖춰야합니다. 요즘 흔하게 개발되는 4차산업혁명 등 아두이노나 라즈베리파이 등은 C계열의 언어로 개발이 됩니다. 


- 자료가 풍부하다 : C( C++포함) 는 현 시점에서 가장 많은 프로그래머가 사용하는 언어일것입니다.(국내말고 해외까지 합친) 지금까지 작성된 소스코드도 방대하며, 책이나 기술 문서등도 셀 수 없을 만큼 많습니다. 뭔가 궁금하거나 의문점이 있을 때 정보를 쉽고 많이 얻을 수 있다는 것이 C의 장점입니다.


C는 보통 수학과 등 컴퓨터공학과가 아닌 학과들도 교양정도로는 배우는 과목중 하나일것입니다. 수학과는 알고리즘에 기초하여 프로그램을 짜보는 것으로 알 고 있고 수학적 지식을 C로 구현해보는 과정을 배운다고 알고있습니다. 메모리를 할당하고 할당한 만큼 변수에 값을 대입하는 등 수학적 알고리즘에 기초한 언어가 C라고 생각합니다. 따라서 저같은 비전공자들은 컴공과에서 기초 언어로 C를 배운다고 무작정 따라하시면 안됩니다. 프로그래밍을 도전해보기도 전에 C의 깊고 저수준의 언어레벨때문에 포기하게되는 경우가 많습니다. 그러니 어느정도 쉬운 파이썬이나 자바같은 언어를 먼저 배워보시고 더 깊은 공부를 위해 C를 해보시는 걸 추천드립니다.


댓글

Designed by JB FACTORY