C 언어란?
- 1972년 **데니스 리치(Dennis Ritchie)**가 개발한 범용 프로그래밍 언어
- 주로 시스템 프로그래밍과 임베디드 시스템, 운영체제 개발 등에 많이 사용
C 언어의 장점
- 빠른 성능 🚀
- C언어는 저수준(low-level) 언어에 가까워서 하드웨어와 직접적으로 소통할 수 있다.
- 컴파일된 코드가 가볍고, 실행 속도가 빠르다.
- 메모리 제어 가능 🧠
- 포인터(pointer)를 사용해서 메모리를 직접 다룰 수 있다.
- 메모리 최적화가 가능하므로 임베디드 시스템, 운영체제, 드라이버 개발에 적합하다.
- 이식성이 뛰어남 🌍
- 운영체제(OS)에 상관없이 다양한 환경에서 사용할 수 있다.
- UNIX, Windows, Linux 등 거의 모든 시스템에서 실행 가능하다.
- 다양한 응용 가능 🔧
- 시스템 프로그래밍(OS, 드라이버)부터 게임 개발, 임베디드, 로봇 공학까지 활용 범위가 넓다.
- 다른 언어의 기반 🏗️
- C언어를 배우면 C++, Java, Python 같은 다른 언어로 쉽게 확장할 수 있다.
- 실제로 C++, Objective-C, Java, C# 등의 언어가 C언어를 기반으로 만들어졌다.
C언어 vs 다른 프로그래밍 언어
비교 항목 |
C언어 |
Python |
Java |
C++ |
실행 속도 |
빠름 🚀 |
느림 🐢 |
중간 ⚖️ |
빠름 🚀 |
메모리 관리 |
직접 제어 (포인터) |
자동 (Garbage Collector) |
자동 (Garbage Collector) |
직접 + 자동 선택 가능 |
문법 난이도 |
중간~어려움 |
쉬움 |
중간 |
어려움 |
운영체제 개발 |
가능 (리눅스, 윈도우 일부) |
불가능 |
불가능 |
일부 가능 |
사용 분야 |
시스템 프로그래밍, 임베디드 |
데이터 분석, AI, 웹 |
모바일 앱, 엔터프라이즈 |
게임, 그래픽, 시스템 |
절차적 프로그래밍(Procedural Programming) 언어
- 프로그램을 순차적으로 실행되는 명령(절차, 함수)의 모음으로 구성.
- 코드가 위에서 아래로(top-down) 흐름을 따라 실행됨.
✅ C언어 vs OOP (객체 지향 프로그래밍)
구분 |
C언어 (절차적) |
C++/Java (객체 지향) |
구조 |
함수 중심 |
객체 중심 |
데이터와 함수 관계 |
분리됨 |
객체 내부에 포함됨 |
재사용성 |
함수 단위 |
클래스 단위 |
예제 |
printf() , scanf() 같은 함수 사용 |
객체.메서드() 형식 사용 |
📌 즉, C언어는 함수 중심으로 동작하는 절차적 프로그래밍 언어! 🚀