C언어 1.1.1
기초 C언어Chapter 01 C언어 시작하기 › Section 01
1.1.1 C프로그래밍 언어
C언어는 새로운 언어를 만들고 싶어서 만든 것이 아님. 꼭 풀어야 할 문제가 있었기 때문에 태어났고, C언어의 특징은 모두 그 목적에서 나온 결과임.
▶ 강의 영상 자리
1.1.1 C프로그래밍 언어 · 약 11분
유튜브 업로드 후 임베드 코드를 넣어 주세요
유튜브 업로드 후 임베드 코드를 넣어 주세요
011972년, 유닉스를 위해 태어나다교재 10p
- 개발 — 1972년, 미국 벨 연구소의 연구원 데니스 리치(Dennis Ritchie).
- 배경 — 당시 벨 연구소는 유닉스(UNIX) 운영체제를 개발 중이었음.
- 당시의 두 가지 문제
- 컴퓨터 종류가 바뀌면 프로그램을 처음부터 다시 만들어야 함 — 기계마다 알아듣는 명령이 달랐기 때문
- 운영체제는 빨라야 함 — 모든 프로그램이 그 위에서 돌아가므로
- 그래서 필요했던 언어 — 하드웨어를 세밀하게 다룰 수 있으면서, 속도도 손해 보지 않고, 동시에 사람이 읽기 편한 언어.
- 결과 — 하드웨어 직접 제어와 읽기 쉬운 문법을 함께 가진 언어. 앞으로 볼 C언어의 특징이 모두 여기에서 나옴.
02C언어의 네 가지 특징교재 11p~12p
반세기가 넘도록 쓰이는 이유.
1절차지향 · 구조적
- 코드가 위에서 아래로 정해진 순서대로 실행.
- 복잡한 작업은 함수(Function)라는 작은 단위로 나누어 처리.
2높은 이식성
- 이식성 = 프로그램을 다른 컴퓨터로 옮겨 쓰기 쉬운 성질.
- 표준 문법을 지키면 CPU가 달라도 다시 번역만 하면 됨. 코드 수정은 거의 불필요.
3빠른 실행 속도
- 기계어에 가까운 코드를 미리 통째로 번역해 두는 컴파일 언어.
- 실행할 때 다시 번역하지 않으므로 빠름. 메모리도 직접 관리해 낭비가 적음.
4하드웨어 제어 능력
- 포인터(Pointer)로 메모리 주소에 직접 접근.
- 운영체제처럼 컴퓨터의 속을 다루는 시스템 프로그래밍에 강점.
네 가지는 외울 목록이 아님
- 유닉스를 다른 컴퓨터로 옮기고 싶었음 → 이식성
- 운영체제를 만들어야 했음 → 하드웨어 제어 · 빠른 속도
- 프로그램이 길고 복잡했음 → 함수로 나누는 방식
- 하나의 목적에서 자연스럽게 나온 결과.
03절차지향 · 구조적이란교재 11p
- 절차 — 프로그램을 일의 순서와 함수 단위로 짜 나간다는 뜻.
- 코드는 위에 쓴 것부터 차례대로 실행되고, 큰일은 작은 단위로 나누어 처리.
- 좋은 점 두 가지
- 코드의 흐름을 이해하기 쉬움
- 고치기 쉬움 — 잘못된 결과가 나오면 전체가 아니라 문제가 된 함수만 확인. 이것을 유지보수가 쉽다고 함.
수학 문제를 푸는 과정처럼
- 어려운 문제일수록 한 번에 답을 내지 않음 — 식을 세우고 · 정리하고 · 계산하고 · 확인함. 순서가 있음.
- 그 안의 통분은 한 번 익혀 두고 필요할 때마다 그대로 꺼내 씀. 이것이 함수.
- 입력 받기 · 계산하기 · 결과 출력을 각각 함수로 만들고, 퍼즐처럼 맞추면 하나의 프로그램이 됨.
04‘중급 언어’라는 이름의 뜻교재 12p
- 중급 = 난이도가 중간이라는 뜻이 아님 — 사람과 컴퓨터 사이에서 어디쯤 서 있느냐를 가리키는 말.
- 고급 언어 — 사람이 읽고 쓰기 편한 언어.
- 저급 언어 — 메모리나 장치를 직접 다루는, 컴퓨터에 가까운 언어. 수준이 낮다는 뜻이 아님.
- 보통은 둘 중 하나를 고름 — 사람이 편하면 컴퓨터를 세밀하게 다루기 어렵고, 그 반대도 마찬가지.
- C언어는 둘 다 가짐 — 읽기 쉬운 문법(고급) + 메모리 주소를 다루는 포인터(저급).
스마트폰 카메라처럼
- 평소에는 자동 모드 — 버튼만 누르면 알아서 잘 나옴.
- 어둡거나 빠르게 움직이는 것을 찍을 때는 프로 모드 — 밝기와 초점을 직접 조절.
- C언어도 하나의 프로그램 안에서 평소에는 편하게 쓰다가, 필요한 곳에서만 메모리까지 내려가 직접 손을 댈 수 있음.
05C언어를 배우는 세 가지 이유교재 12p~13p
언어 하나를 익히는 일이 아니라, 컴퓨터가 어떻게 움직이는지를 이해하는 가장 좋은 방법.
1컴퓨터 과학의 기본기
- 자료가 메모리의 어디에 저장되는지, 명령이 어떤 순서로 실행되는지를 직접 보게 됨.
- 교재의 비유 — 수동 변속기 자동차. 처음엔 불편하지만 동력 전달 원리를 몸으로 익히면 어떤 차도 몰 수 있음.
2실세계와 연결 · 피지컬 컴퓨팅
- C언어는 하드웨어의 언어. 아두이노 같은 마이크로컨트롤러와 대부분의 임베디드 시스템이 C/C++ 기반.
- 임베디드 시스템 — 전자레인지·세탁기·신호등처럼 제품 안에서 정해진 일만 하는 컴퓨터.
3현대 언어들의 뿌리
- C++, Java, C#, Python이 모두 C언어의 문법과 철학에 뿌리를 둠.
- C언어를 제대로 배워 두면 다른 언어에 훨씬 빠르게 적응.
06피지컬 컴퓨팅 — 화면 밖으로 나가는 코드교재 12p
- 세 가지 기본 동작
- LED 켜기 — 정해진 번호의 핀에 전기 신호를 보냄
- 모터 돌리기 — 신호를 보내는 빈도를 바꿔 회전 속도까지 조절
- 센서 값 읽기 — 밝기·온도·습도 같은 바깥 정보를 숫자로 받아 옴
- 이어 붙이면 하나의 장치 — 수분 센서가 값을 읽음 → 기준보다 낮은지 판단 → LED를 깜박이거나 펌프 모터를 돌려 물을 줌.
- 읽고 · 판단하고 · 움직이는 이 흐름이 피지컬 컴퓨팅의 기본 뼈대.
- 예비 교사에게 중요한 이유 — 변수를 말로만 설명하면 학생이 이해하기 어렵지만, 센서가 읽어 온 숫자가 변수에 담기고 그 값에 따라 눈앞의 불이 켜지는 것을 보면 다름. 보이지 않던 개념이 보이는 결과가 됨.
07모든 언어의 출발점교재 13p
- C언어의 흔적은 가까이에 있음
- C++ · Java · C# — 중괄호로 코드를 묶는 방법, 자료의 종류를 미리 정해 두는 방식이 그대로 남음
- Python — 겉모습은 달라도 조건에 따라 갈라지고 같은 일을 반복하는 사고방식을 이어받음
- 결론 — C언어는 낡은 언어가 아니라, 컴퓨터와 프로그래밍의 뿌리를 이해하는 출발점.
이 절의 핵심 정리
- 1972년 데니스 리치가 유닉스를 여러 컴퓨터에서 쓰기 위해 만든 언어
- 네 가지 특징 — 절차지향·구조적 / 높은 이식성 / 빠른 실행 속도 / 하드웨어 제어
- 고급 언어의 문법과 저급 언어의 제어력을 함께 가져 중급 언어라 불림
- 배우는 이유 — 기본기 · 피지컬 컴퓨팅 · 현대 언어의 뿌리
- 네 가지 특징은 외울 목록이 아니라 하나의 목적에서 나온 결과
강의 자료1.1.1 C프로그래밍 언어
1 / 8
번호를 누르면 해당 장으로 바로 이동합니다 · 방향키 ← → 로도 넘길 수 있습니다
다음 절 · 1.1.2 프로그램 구조 교재 14p~15p — 일곱 줄짜리 첫 번째 프로그램으로 C언어의 기본 뼈대를 살펴봅니다.
더 자세한 내용은 교재에서
이 글은 『기초 C언어』 10p~13p의 내용을 강의 영상에 맞춰 핵심만 간추린 요약입니다. 각 개념의 상세한 설명과 예제, 실습 코드, 임용시험 기출문제 풀이는 교재에서 다루고 있습니다.
댓글
댓글 쓰기