C 언어 시작하기

  • 12 minutes to read

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

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

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

C 언어를 통해 다양한 프로그램을 개발할 수 있지만, 모든 것을 개인의 힘으로 만들어내는 것은 현실적으로 불가능합니다. C 언어는 고등학교 수학처럼, 대부분의 사람이 한 번쯤은 배워야 하는 기초 과목으로 여겨져야 합니다. 특히 컴퓨터 과학과 같은 전공에서는 필수적으로 다뤄지는 언어입니다. 파이썬, Java, C# 등 다양한 프로그래밍 언어가 존재하지만, C 언어는 학습 목적에 있어 여전히 최적의 선택으로 손꼽힙니다.

동영상 강의: 01_01 C 언어 시작하기.mp4

컴퓨터와 프로그래밍 언어

하드웨어와 소프트웨어

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

프로그래밍과 프로그래머

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

  • 프로그래머(Programmer)
  • 소프트웨어 개발자(Software Developer)
    • 솔루션 개발자(Solution Developer)
    • 애플리케이션 개발자(Application Developer)

참고로, 이 강의 내용을 이끄는 박용준 강사인 저를 소개할 때에는 솔루션 개발자 표현을 많이 사용합니다. 현재 사이트의 About 메뉴를 클릭해보면 제 소개를 볼 수 있습니다.

프로그래밍 언어

프로그래밍 언어는 컴퓨터에게 특정 작업을 지시하기 위해 사용되는 소프트웨어 도구입니다. 이는 인간이 어휘와 문법을 사용하여 소통하는 것과 유사하게, 예약어(키워드)와 문법을 활용하여 프로그램을 구축합니다. 다양한 프로그래밍 언어가 존재하며, 그 중 C, C++, C#, Java, JavaScript, Python 등이 널리 사용됩니다. 본 강의에서는 이러한 언어들 중 C 언어에 초점을 맞춥니다. 역사적으로 보면, C 언어가 등장하기 전에는 FORTRAN, ALGOL, CPL, BCPL, B 언어 등 다수의 프로그래밍 언어가 개발되었습니다.

프로그래밍 언어 순위

C 언어는 오랫동안 프로그래밍 언어 순위의 선두를 차지해 왔습니다. 프로그래머마다 선호하는 언어 스타일이 다를 수 있어 순위는 변동성이 있지만, 필자는 개인적으로 다양한 언어를 경험해 본 결과, 초보자가 프로그래밍을 배우기에 C 언어를 가장 추천합니다. 이는 C 언어가 간결하고 명확한 문법을 제공하며, 실행 속도가 빠른 장점을 갖고 있다고 생각하기 때문입니다. 다음은 전 세계 개발자 커뮤니티인 스택오버플로(StackOverflow)의 최근 설문 조사 결과를 바탕으로 한 내용으로, C 언어가 여전히 상위권에 위치하며 실제 사용되는 프로그래밍 언어 중 상위 10위 안에 드는 것을 확인할 수 있습니다.

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

Tiobe 프로그래밍 언어 순위

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

프로그래밍 언어 순위

코드와 코딩의 이해

코드(Code), 또는 소스(Source)는 소프트웨어를 구성하는 텍스트 형태의 명령어 집합을 의미합니다. 코딩(Coding)은 이러한 코드를 프로그래밍 언어로 작성하여 프로그램을 만드는 과정입니다. 즉, 코딩은 컴퓨터 프로그래밍의 핵심적인 활동입니다.

컴파일과 인터프리트

  • 컴파일(Compile): 프로그램의 소스 코드를 컴퓨터가 실행할 수 있는 기계어 코드로 변환하는 과정입니다. 이 변환 작업을 수행하는 프로그램을 컴파일러(Compiler)라고 합니다. 예를 들어, C와 C++ 언어가 이 방식을 사용합니다.
  • 인터프리트(Interpret): 소스 코드를 바로 실행 가능한 코드로 변환하지 않고, 인터프리터(Interpreter)를 통해 소스 코드를 직접 해석하며 실행하는 언어입니다. JavaScript와 PHP가 대표적입니다.
  • 하이브리드 접근: 컴파일과 인터프리트 방식을 혼합하여 사용하는 언어도 있습니다. C#, Java, Python 등이 이에 해당합니다.

C 언어는 컴파일 방식을 기반으로 하는 프로그래밍 언어입니다.

C 언어 소개

1972년, 천재 중의 천재 데니스 리치(Dennis Ritchie)에 의해 탄생한 C 언어는 그의 비범한 지능과 창의성의 산물입니다. 이 언어는 시스템 프로그래밍, 임베디드 시스템 개발, 콘솔 기반 응용 프로그램 제작 등 광범위한 응용 분야에서 핵심적인 역할을 담당합니다. 프로그래밍 언어의 다양한 패러다임 속에서도 C 언어는 그 유연성과 효율성으로 전 세계 개발자들에게 꾸준히 사랑받고 있으며, 특히 UNIX 운영체제 개발에 기여한 바는 그 가치를 더욱 빛나게 합니다.

C 언어의 특징

C 언어는 다음과 같은 독특한 특성을 지닙니다:

  • 컴파일 언어: 소스 코드를 기계어 코드로 변환하는 컴파일 과정을 거칩니다.
  • 고수준 언어: 사람이 이해하기 쉬운 형태의 프로그래밍 언어입니다.
  • 절차적 프로그래밍 스타일: 명령어를 순차적으로 실행하는 프로그래밍 방식을 따릅니다.
  • 메모리 관리의 유연성: 개발자가 메모리를 직접 관리할 수 있는 기능을 제공합니다.
  • 광범위한 응용: 시스템 프로그래밍부터 업무용 응용 프로그램까지 다양한 분야에 활용됩니다.

C 언어의 발전사 및 주요 버전들

C 언어는 수십 년에 걸쳐 지속적으로 발전해 온 프로그래밍 언어입니다. 공식적인 버전 명칭 대신, 표준화된 년도를 사용하여 여러 버전을 구분합니다. 이러한 표준화 과정은 C 언어의 진화와 함께 프로그래밍 커뮤니티의 요구 사항을 반영하며 개선되어 왔음을 보여줍니다.

C 언어의 주요 버전 일람

버전 발표 년도 설명
C72 1972 C 언어의 탄생, 데니스 리치(Dennis Ritchie) 개발
K&R 1978 "The C Programming Language" 출간, C 언어의 기준점
C89 1989 ANSI 표준화, 초기 표준 C 언어
C90 1990 ISO 표준(ISO/IEC 9899:1990), C89와 동일한 표준
C95 1995 ISO 표준 개정(ISO/IEC 9899:1995), 소소한 개선
C99 1999 ISO 표준 개정(ISO/IEC 9899:1999), 신규 기능 추가
C11 2011 ISO 표준 개정(ISO/IEC 9899:2011), _Generic 키워드 등 추가
C18 2018 최신 표준 개정, static_assert 등의 신규 기능 추가

이 강의에서는 C 언어의 역사를 소개함으로써, 이 언어가 오랜 시간 동안 어떻게 발전해 왔는지에 대한 이해를 돕고자 합니다.

C 언어 설명서

C 언어에 대한 자세한 정보와 설명서는 마이크로소프트의 공식 사이트에서 확인할 수 있습니다:

강의 범위

본 강의에서는 C 언어의 광범위한 사용 가능성 중 기초적인 부분에 초점을 맞추며, 프로그래밍 언어로서 C 언어의 기본적인 사용법과 개념을 다룰 예정입니다.

요약

C 언어를 프로그래밍 학습의 출발점으로 선택하는 것은 매우 현명한 결정입니다. 이 강의를 통해 C 언어의 기본을 익혀 프로그램을 작성하는 능력을 기르게 될 것입니다.

추가 자료

C 언어의 역사에 대한 더 깊은 이해를 위해 다음 링크의 영문 동영상을 추천합니다.

이 자료를 통해 C 언어의 발전 과정에 대해 더 자세히 알아볼 수 있습니다.

C 언어 강의 소스 모음 저장소 소개

이 강의 전체에서 사용되는 소스 코드는 다음 경로에 모아놓도록 하겠습니다.

https://github.com/VisualAcademy/c-language

https://youtu.be/yxwgmVTKMrA

다음 강의

2. Visual Studio 설치











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