C 언어 시작하기

  • 10 minutes to read

"씨"로 발음하는 C 언어는 프로그래밍 언어입니다. 이 강의는 C 언어 이름을 가진 프로그래밍 언어를 다룹니다. 자, 이제부터 오랜 기간동안 많은 프로그래머에게 사랑받아 온 최고의 언어 중 하나인 C 언어를 배워보도록 하겠습니다.

C 언어를 한 줄로 압축해서 정의하면 다음과 같습니다. 여러모로 많은 뜻을 담고 있습니다.

> // C 언어: 대부분의 프로그래밍 언어의 시조가 되는 프로그래밍 언어

컴퓨터와 프로그래밍 언어

하드웨어와 소프트웨어

컴퓨터는 하드웨어(Hardware)와 소프트웨어(Software)로 이루어집니다. 하드웨어는 PC, 스마트폰,자동차와 같은 장치를 말하며 소프트웨어는 이러한 하드웨어에 설치된 운영체제, 앱 등을 말합니다.

프로그래밍과 프로그래머

소프트웨어를 만드는 행위를 프로그래밍(Programming)이라고 합니다. 소프트웨어를 만드는 사람을 프로그래머(Programmer) 또는 개발자(Developer)로 부릅니다.

  • 프로그래머(Programmer)
  • 소프트웨어 개발자(Software Developer)

프로그래밍 언어

명령(Instruction)을 통해서 컴퓨터에게 무엇인가를 시킬 수 있는 프로그램을 만들 수 있는 또 다른 소프트웨어가 프로그래밍 언어입니다. 사람이 어휘와 문법을 통해서 대화하듯이 프로그래밍 언어는 예약어(키워드)와 문법으로 무언가를 만들 수 있습니다. 세상에는 C 언어, C++, C#, Java, JavaScript, Python 등의 많은 프로그래밍 언어가 있습니다. 그 중에서 이 강의는 C 언어 프로그래밍 언어를 다룹니다. 참고로, C 언어가 처음 나오기 이전에는 FORTRAN, ALGOL, CPL, BCPL, B 언어 등의 많은 이름의 프로그래밍 언어가 있었습니다.

프로그래밍 언어 순위

C 언어 프로그래밍 언어는 굉장히 오랜 기간동안 프로그래밍 언어 순위 1위에 들었습니다. 프로그래머마다 좋아하는 언어 스타일이 다르기에 순위에는 항상 변동이 있을 수 있습니다. 하지만, 필자의 경우에는 프로그래밍 언어 순위 10위 안에 드는 대부분의 언어를 사용해 봤지만, 프로그래밍을 처음 학습하기에 가장 좋아하는 언어로 C 언어를 1순위로 들고 있습니다. 필자의 주관적인 생각이지만, 간결함과 명확한 문법, 그리고 빠른 실행 등의 장점을 가지고 있는 게 C 언어라고 생각합니다. 다음 그림은 전세계 개발자 커뮤니티로 유명한 스택오버플로(StackOverflow) 사이트의 최근 설문 조사 결과입니다. C 언어는 항상 상위권에 위치하고 있습니다. 실제 프로그래밍 언어로만 보면 상위 10개 언어에 포함됩니다.

[그림] Tiobe 프로그래밍 언어 순위

Tiobe 프로그래밍 언어 순위

[그림] 스택오버플로 사이트의 가장 인기있는 기술 순위 설문조사 결과

프로그래밍 언어 순위

코드(Code)와 코딩(Coding)

텍스트로 되어 있는 소프트웨어를 만드는 명령들의 집합을 코드(Code) 또는 소스(Source)라고 합니다. 코딩(Coding)은 프로그래밍 언어의 코드로 프로그램을 만드는 과정입니다. 코딩은 컴퓨터 프로그래밍과 같은 개념입니다.

컴파일(Compile)과 인터프리트(Interpret)

프로그램 소스 코드를 컴퓨터와 같은 하드웨어가 실행할 수 있는 기계 코드로 변환해주는 프로그램을 컴파일러(Compiler)라하고 변환하는 과정을 컴파일(Compile)이라고 합니다. 따로 컴파일의 과정을 거치지 않고 소스를 바로 해석해서 실행해주는 인터프리터(Interpreter) 언어도 있습니다. 우리가 배울 C 언어는 컴파일 기반 프로그래밍 언어입니다.

  • 컴파일(Compile)
    • 소스 코드를 기계 코드로 실행
    • C, C++ 등
  • 인터프리트(Interpret)
    • 소스 코드를 인터프리터로 실행
    • JavaScript, PHP 등
  • 하이브리드: 컴파일과 인터프리트 둘 다 사용
    • C#, Java, Python

C 언어 소개

C 언어는 1972년에 천재 중의 천재인 데니스 리치(Dennis Ritchie)가 만든 프로그래밍 언어입니다. C 언어 프로그래밍 언어를 사용하면 콘솔, 시스템 프로그래밍, 임베디드 프로그래밍 등 많은 영역에서 프로그램을 작성할 수 있습니다. 수많은 프로그래밍 언어 중에서 전 세계 개발자들에게 오랜 기간동안 가장 많이 사용되는 언어 중 하나입니다. C 언어는 소프트웨어 즉, 시스템 프로그램을 만들기 위한 프로그래밍 언어입니다. 프로그래밍 언어는 C 언어 이외에도 C, C++, Java, Python, TypeScript 등 굉장히 많은 언어들이 있습니다. UNIX 운영체제는 C 언어를 사용해서 만들어졌습니다.

C 언어의 특징

C 언어 프로그래밍 언어의 특징은 다음과 같습니다. 가볍게 한 번 읽어보세요.

  • C 언어는 컴파일 언어입니다.
  • C 언어는 고수준 언어입니다.
  • C 언어는 절차적 프로그래밍 스타일 언어입니다.
  • C 언어는 메모리 관리를 자유롭게 할 수 있습니다.
  • C 언어는 시스템 프로그래밍(OS)부터 업무용 응용 프로그래밍까지를 모두 할 수 있습니다.

C 언어의 역사와 버전

C 언어는 굉장히 오랜 기간 발전해 온 프로그래밍 언어입니다. C 언어는 따로 버전을 표시하지는 않지만, 최근 C 언어 표준에 의해서 년도를 의미하는 C99, C17 등으로 표기합니다.

표: C 언어 주요 버전들

C 언어 버전 표준 년도
C72 C 언어 탄생 - Dennis Ritchie 1972
K&R The C Programming Language 책 출간 1978
C89 ANSI 표준 1989
C90 ISO 표준(ISO/IEC 9899:1990) 1990
C95 ISO 표준(ISO/IEC 9899:1995) 1995
C99 ISO 표준(ISO/IEC 9899:1999) 1999
C11 ISO 표준(ISO/IEC 9899:2011) 2011
C18 C18 릴리스 2018

아직 C 언어에 대해서 전혀 배우지 않은 상태에서 위 표를 제시하는 이유는 C 언어가 오랜 기간동안 꾸준히 프로그래밍 언어로서 발전을 해왔다는 사실을 보여주기 위해서입니다.

버전 출시 연도 기능 및 주요 변경 사항
C89 1989 초기 표준 C 언어
C90 1990 C89의 개정 버전으로서 실제로는 C89과 같은 버전이다.
C99 1999 표준 C 언어의 개정판으로서 신규 기능이 추가됨
C11 2011 C99의 개정판으로서 신규 기능이 추가됨, _Generic 키워드 등 추가
C17 2018 C11의 개정판으로서 신규 기능이 추가됨, static_assert 등 추가

C 언어 설명서

마이크로소프트의 C 언어 설명서 공식 사이트는 다음 경로입니다.

이 강의의 범위

이 강의에서는 C 언어로 할 수 있는 굉장히 많은 부분 중에서 C 언어의 기초에 대해서 다룹니다.

요약

프로그래밍을 학습할 때 처음으로 C 언어를 선택했다면 이는 탁월한 선택 중 하나입니다. 이 강의 전체를 통해서 C 언어 프로그래밍 언어를 사용하여 프로그램을 작성할 수 있는 기초를 완성해 나가도록 하겠습니다.

참고

C 언어에 대한 역사를 소개하는 영문 동영상이 있습니다.

시간되면 한 번 정도 살펴보세요.

https://youtu.be/xGVRF-Y--hI

VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com