티스토리 뷰

##Programming/#C

C언어란?

말라또 2013.02.05 18:45



C언어의 개론이라는 거창한 말을 붙였는데요. 저는 C언어를 마스터한 사람이 아니고 이제 막 배우는 사람이기 때문에 간단하게 C언어가 어떤 것인지, 어떤 장단점이 있어고 우리가 왜 c언어를 기본적으로 배워야 하는지 등만 간단하게 소개하도록 하겠습니다. 앞으로 계속해서 올라오는 C언어 글은 제가 제 머리에서 나온게 아닌 제가 c언어를 공부한 내용을 요약 정리하는 방식으로 올릴 것입니다. 모든 내용은 저자 윤성우의 '열혈강의 c 프로그래밍' 을 기본으로 하고 인터넷에서 추가 자료를 가지고 올릴 생각입니다. 책 내용은 그대로 올리지 못하고 배운 내용을 저만의 방법으로 풀어서 올리거나 인용정도를 할 생각입니다.



C언어란?


C언어는 비주얼 베이직이나 자바 등과 같은 프로그래밍 언어의 한가지입니다. 언어의 기능은 상호간의 의사소통을 하기 위해 필요한 것처럼 c언어 역시 마찬가지입니다. 

이 C언어는 컴퓨터와 사람이 서로 의사소통을 하기 위한 수단입니다. 그런데 중요한건 컴퓨터는 이 C언어를 알지 못한다는 것입니다. 그래서 존재하는게 바로 '컴파일러'입니다. 컴파일러는 사람이 입력한 C언어를 컴퓨터가 이해 할 수 있도록 번역을 해주는 역할을 합니다. 우리가 외국인과 대화할 때 서로 언어를 몰라 대화를 못하고 있을 때 중간에 통역사가 있는 것처럼 이 역할을 컴파일러가 해준다고 보시면 됩니다. 


이런 C언어는 1971년에 미국의 벨연구소에서 만들어졌습니다. 벨연구소에서는 소프트웨어 개발을 위해서 1969년에 UNIX라는 운영체제를 만들었었는데 이 운영체제의 언어인 어셈플리 언어는 하드웨어가 바뀌면 새로 프로그래밍을 해야하는 엄청난 단점을 가지고 있었습니다. 그래서 벨연구소에서는 C언어를 개발해 UNIX의 대부분에 적용을 시켰습니다. 그러면서 유닉스는 하드웨어간의 이식성이 좋아지고 멀티태스킹이나 다중사용자 설정이 가능하게 되면서 인기가 좋아졌습니다. 유닉스는 리눅스의 모태가 되었고 안정성과 이식성등이 뛰어나 각종 서버컴퓨터에서 널리 사용중입니다. 이는 C언어가 적용 되었기 때문에 가능한 일어었죠. 


C언어라는 이름은 이전에 B언어라고 있었는데 이 다음에 만들어진 언어라고 해서 C언어라고 붙여졌답니다.



C언어를 배워야하는 이유


C언어를 항상 모든 프로그래밍언어의 기초라고 하는 이유는 이 C언어를 기반으로 해서 만들어진게 대부분이기 때문입니다.-C++  C# 자바 등이 있습니다 -  거기다 C언어는 만들어진 뒤부터 지금까지 계속해서 수정에 수정을 거듭하고 있는 언어로 미국 표준 협회에서 C의 표준안을 발표했습니다. 여러가지 이론이 나오거나 문제점이 있으면 수정을 하죠. 그만큼 강력한 언어입니다. 



C언어의 장점과 단점

장점

1. 이식성 - 앞에서도 말한 것처럼 C언어는 컴퓨터 기종을 가리지 않고 실행이 되기 때문에 이식성이 좋습니다. 

2. 배움성 - 배우기가 쉽다는 말을 하기 위해 제가 만든 단어입니다..;; C언어는 절차지향적인 언어입니다. 프로그래밍을 하는데에 순서가 정해져있어서 우리는 그 순서를 따라가면서 프로그래밍을 하면 된다는 것이죠. 

3. 효율성 - C언어는 비교적 다른 프로그래밍 언어보다 효율적입니다. 배움성과도 관련이 있는데 사용자가 이해하기 쉬운 고급언어이지만  컴퓨터가 이해하기 쉬운 저급언어의 특징도 같이 가지고 있습니다. 그래서 중간언어라고도 불리죠. 거기다가 메모리 관리나 속도적인 측면에서도 다른 프로그래밍 언어보다 뛰어난면을 보이고 있습니다. 

C언어의 장점은 제가 위에 적은 것들 이외에도 훨씬 많습니다. 하지만 그런 장점들은 우리가 공부를 하지 않으면 느낄 수 없는 부분이기에 여기까지만 적도록 하겠습니다. 

단점

1. 배움성 - 분명 C언어는 타 언어에 비해 익숙해지는데에는 편한 부분이 있지만 완전한 고급언어라고 불리는 비주얼베이직(VisualBasic)같은 언어보다는 배우기가 어려운 면이 있습니다. 

2. 에러 - 프로그래밍을 하면서 에러가 생기면 발견하는게 힘들고 대형 프로그램을 짤 때에는 키보드 타이핑을 많이 해야한다는 단점이 있습니다. 




프로그래밍의 과정


첫번째로 프로그램을 작성합니다. 이를 C언어로 작성하는거죠. 

두번째로 작성된 C언어를 컴퓨터가 알 수 있도록 번역해주는 작업인 컴파일을 시작합니다. 
-> 이 과정에서 에러가 발생하면 다시 돌아가서 프로그램을 수정하는 작업을 합니다. 피드백이라고 하죠. 

세번째로 링크를 거칩니다. 이는 쉽게말해서 실행가능한 exe를 만드는 과정입니다. c언어를 컴파일하면 오브젝트 파일이 만들어집니다. 이 오브젝트 파일을 링커를 통해서 실행파일로 만드는거죠. 이렇게 하는 이유는 프로그래밍의 효율성과 보안유지를 위함이라고 합니다.  프로그램을 수정하고 다시 컴파일을 할 때 수정되지 않은 부분은 오브젝트파일에 그대로 두고 수정된 부분만 컴파일을 하면 되기 때문에 효율적이죠. 그리고 상대방에게 프로그램 소스를 제공해 줄 때 이 오브젝트파일을 제공해주면 소스코드는 상대방에게 보이지 않고 오브젝트 파일만 이용 가능해 보안상으로도 좋다고 하는군요. 

우리가 C언어를 작성할 때 컴파일 되지 않은... 프로그래머가 입력한 코드를 소스코드(Source code)라고 하고 이 소스코드가 저장되어있는 파일을 소스파일(Source file)이라고 합니다. 


여기까지가 C언어에 대한 개략적인 내용입니다. C언어를 배우는 사람의 입장에서 그리고 훗날에 프로그래머가 되려면 이정도는 기본적으로 알고 있어야 프로그래밍을 하는데 혹은 프로그래밍 언어를 공부하는데 도움이 될 것입니다. 이 뒤로는 C언어의 간단한 구조와 쓰이는 연산자들에 대해 포스팅할 계획입니다. 




 블코추천버튼한RSS추가버튼 구글리더기추천버튼 FeedBurner구독하기  컴초모카페로

    글이 마음에 드셨다면 추천버튼 꾸욱! 블로그를 구독하고 싶으시다면 HanRSS, GoogleReader, FeedBurner 버튼을 꾸욱!




저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'##Programming > #C' 카테고리의 다른 글

[C언어] HelloWorld 를 분석해보자  (4) 2016.03.05
[C언어] C언어 진입장벽 부수기  (1) 2016.03.03
[C언어]1편 - C언어의 기본  (2) 2013.12.28
C언어란?  (7) 2013.02.05
[C언어]Visual C++ 사용법  (17) 2013.02.01
댓글
  • 프로필사진 오오 정말잘봤어요,그런데제가오브젝트파일에대해서말할때부터이해가잘안돼요....참고로전중2고요,제나이에맞게좀...설명해주실수있나요? 2013.02.22 22:59 신고
  • 프로필사진 말라또 음 그러니깐 우리가 아는 언어인 C언어를 입력하고 컴퓨터가 알아들을 수있는 기계어로 변환하는 과정(컴파일)에서 변환된 기계어가 담겨있는 파일이라고 보시면 됩니다. 만약 이 오브젝트파일이 없다면 우리가 프로그램을 수정할 때 마다 코드 전체를 컴파일 해야되는 비효율적인 상황이 발생하죠. 그런데 이 오브젝트 파일을 만듦으로써 수정된 부분만 컴파일을 하도록 하는거죠. 그리고 이 오브젝트 파일을 다른 사람에게 공유 하면 해당 소스(C언어)는 보이지 않기 때문에 보안상 유지가 되는것이구요. 2013.02.23 00:06 신고
  • 프로필사진 Babilon C언어... 배우자니 막막하긴 하지만 배울 수 밖에 없겠죠ㅋ
    글 잘봤습니다!
    2013.03.03 19:06 신고
  • 프로필사진 말라또 c언어는 우리가 다른 나라의 언어를 배우는 것과 같기 때문에 처음에는 무작정 보고 계속해서 본인이 프로그래밍을 하면서 손에 익히는게 좋아요! 2013.04.02 03:42 신고
  • 프로필사진 드레이크 잘 보고 갑니디ㅏ ^^
    c언어를 배우고 지금 사용하고 있는 입장이여서 많이 배우고 갑니다
    2013.07.11 06:39 신고
  • 프로필사진 송창헌 고맙습니다 2015.01.02 00:22 신고
  • 프로필사진 송창헌 고맙습니다 2015.01.02 00:22 신고
댓글쓰기 폼