본문 바로가기

Programming

[C] C언어, 특징과 장단점

출처:http://www.pskills.org/c.jsp

C언어란?

절차 지향 언어의 특징을 가지는 프로그래밍 언어입니다.

언어를 나누는 저급 언어와 고급언어의 개념으로 보았을 때,

C언어부터 고급언어라고 부르지만 저급 언어에서 가지는 특징도 가지고 있습니다.
그렇기에 그만큼 기계와 가깝고 더 효율적인 코드를 구성할 수 있다는 점입니다.
(저급 언어일수록 기계 친화적이고, 고급언어일수록 개발자 친화적입니다.)

 

C언어의 개발 배경을 말할 때 빠지지 않는 것이 UNIX 운영체제일 것입니다.
이 당시 대부분의 시스템은 어셈블리어로 구성되었는데, 유지보수 힘들고,

타 플랫폼과의 이식성 또한 나빳기에 이를 해결하고자 개발한 것입니다. 

 

C언어의 특징, 장단점

C언어의 특징을 보면 효율성, 유연성 그리고 절차 지향적 특성을 가진다는 것입니다.
C언어의 최대 강점이 바로 효율성일 것입니다.

C언어 자체가 어셈블리어를 대체하기 위해 개발되었기 때문입니다.
이러한 C언어로 제작한 프로그램의 경우 하드웨어 성능이 제한적인 환경에서도 아주 빠른 속도를 보여줍니다.

그리고 유연성. 이는 아마도 모듈화가 대표적이지 않을까 싶습니다.
특정 기능을 가지는 어려가지 모듈을 만들고 필요한 기능의 모듈을 가져다 사용하는 모듈화 프로그래밍 방법입니다.
(이런 모듈화를 포함한 여러가지 기법을 디자인 패턴이라고도 합니다.)

마지막으로 절차 지향 언어의 특징. (절차 지향과 객체 지향에 대한 내용은 다시 다루겠지만)
절차 지향에는 몇 가지 특징이 있지만 가장 중요한 특징은 'Top to Down',

말 그대로 위에서 아래로 진행한다는 것입니다.

 

이렇게 C언어는 장점이 명확한만큼 단점도 명확합니다.

우선 배우기에 조금 힘들 수 있다는 점입니다.

흔히들 배우면서 한 번씩은 겪어보는 포인트가 주범이기도 하지만 이를 넘어가도 머리가 아픈 건 마찬가지입니다.

 

또 포인트를 사용하다보니 에러가 터질 경우 눈알도 같이 터져나갈 수 있습니다.

이를 조금이라도 덜어주는 방법은 모듈화를 정말 잘해놓으면 그나마 괜찮습니다.

또한 코드라인이 길지 않으면 다행이지만 모듈화도 잘 되어있지 않고 코드라인까지 길다면 지옥을 맛볼 수도 있습니다.

 

그럼에도 C언어는 매력적인 언어라고 생각합니다.

일일히 헤더부터 다 만들면서 시작하고 절차 지향 언어만 가지는 스트레스도 느낄 수 있구요.

'Programming' 카테고리의 다른 글

[C++] C++란, C++의 특징  (0) 2020.01.24