Skip to Content
독학사독학사 2단계C프로그래밍21. 시험 지문 영문 키워드·전문용어 정리

이번 문서의 목표: 시험 지문·보기·컴파일러 에러 메시지에 반복해서 나오는 영문 키워드의 뜻과 발음을 정확히 알아, 영어 표현 때문에 시간을 낭비하지 않고 문제의 핵심을 바로 파악할 수 있다.

왜 영문 용어를 따로 정리하는가

왜 필요한가

독학사는 한국어로 출제되는 시험이지만, C언어 자체가 영어 키워드로 이루어진 언어이기 때문에 문제 지문과 보기 안에 영문 용어가 그대로 섞여 나온다. “선언(declaration)과 정의(definition)의 차이”, “call by value와 call by reference의 차이” 같은 문항은 한국어 번역만 외워서는 정확히 구분하기 어렵다. 번역 과정에서 미묘한 뉘앙스가 사라지기 때문이다. 또한 컴파일러가 실제로 내뱉는 에러 메시지(예: undeclared identifier, segmentation fault)를 읽을 줄 알아야, 21편에서 다룬 오류 찾기형 문제에서 지문에 제시된 에러 메시지만 보고도 원인을 짐작할 수 있다.

쉽게 말하면: C 문법 용어의 한국어 번역은 “그림자”이고 영문 원어는 “실체”다. 실체를 알아야 그림자만 보고도 헷갈리지 않는다.

이 편에서 다루는 범위

이 편은 03편(자료형·연산자·키워드), 04편(표준 입출력 용어), 05편(메모리 모델)에서 이미 다룬 용어를 표로 재정리하며 반복 병기하고, 여기에 시험 지문에서 실제로 자주 쓰이는 표현 패턴과 에러 메시지, 영문 지문을 읽는 절차까지 더해 시험 직전 최종 점검용으로 구성한다. 각 용어는 다른 편에서 이미 깊게 설명했으므로, 여기서는 뜻을 다시 짚고 그 편 번호를 표기한다.

문법 관련 영문 키워드

자료형·선언 관련

영문발음참고 편
declaration디클러레이션선언 — 변수·함수의 이름과 자료형만 컴파일러에 알리는 것06
definition데피니션정의 — 변수에 실제 메모리를 할당하거나 함수의 본문을 작성하는 것06
identifier아이덴티파이어식별자 — 변수·함수·타입에 붙이는 이름02
initialization이니셜라이제이션초기화 — 변수를 선언과 동시에 값으로 채우는 것07
implicit conversion임플리싯 컨버전암묵적 형 변환 — 컴파일러가 자동으로 자료형을 바꿔주는 것07, 21
explicit conversion (cast)익스플리싯 컨버전(캐스트)명시적 형 변환 — 프로그래머가 직접 (자료형)으로 지정하는 형 변환07
signed / unsigned사인드 / 언사인드부호 있음 / 부호 없음 — 음수를 표현하는지 여부03, 07
literal리터럴리터럴 — 코드에 직접 쓰는 값 자체(예: 10, 'A', "hi")03

설명 하나를 골라 자세히 보자. declaration(선언)과 definition(정의)은 한국어로는 둘 다 “정한다”는 느낌이라 헷갈리기 쉽지만, C에서는 명확히 다르다. int x;는 선언이자 동시에 정의(메모리도 실제로 확보됨)이지만, 함수의 경우 int add(int a, int b);선언(프로토타입, 함수의 존재만 알림)이고 int add(int a, int b) { return a + b; }처럼 몸체가 있는 것은 정의다. 10편에서 다룬 함수 프로토타입이 바로 이 “선언과 정의의 분리”를 이용하는 예다.

연산자·표현식 관련

영문발음참고 편
assignment operator어사인먼트 오퍼레이터대입 연산자, =03, 08
comparison(relational) operator컴패리즌(릴레이셔널) 오퍼레이터비교(관계) 연산자, ==·!=·>08
logical operator로지컬 오퍼레이터논리 연산자, &&·||·!08
operator precedence오퍼레이터 프리시던스연산자 우선순위 — 어떤 연산을 먼저 계산할지 정하는 규칙08
associativity어소시어티비티결합 규칙 — 우선순위가 같은 연산자를 왼쪽부터 계산할지 오른쪽부터 계산할지08
increment / decrement인크리먼트 / 디크리먼트증가 / 감소, ++·--08
expression / statement익스프레션 / 스테이트먼트식(값으로 평가되는 코드 조각) / 문(세미콜론으로 끝나는 하나의 실행 단위)02

제어문·함수 관련

영문발음참고 편
condition컨디션조건 — if·while 등에서 참·거짓을 판단하는 식09
iteration / loop이터레이션 / 루프반복 — for·while·do-while로 같은 코드를 되풀이하는 것09
infinite loop인피니트 루프무한 루프 — 종료 조건이 참이 되지 않아 영원히 반복되는 루프09, 21
function prototype펑션 프로토타입함수 프로토타입 — 함수의 몸체 없이 반환형·이름·매개변수만 미리 알리는 선언문10
parameter / argument패러미터 / 아규먼트매개변수(함수 정의에서 받는 변수) / 인자(함수 호출 시 실제로 넘기는 값)10
call by value / call by reference콜 바이 밸류 / 콜 바이 레퍼런스값에 의한 전달(값을 복사) / 참조에 의한 전달(주소를 넘겨 원본 접근)10, 13, 21
return value리턴 밸류반환값 — 함수가 호출한 곳으로 돌려주는 값10
scope스코프범위 — 변수·함수 이름이 유효하게 인식되는 코드 영역10
recursion리커전재귀 — 함수가 자기 자신을 다시 호출하는 것10

자주 틀리는 점: parameter(매개변수)와 argument(인자)를 뒤바꿔 서술한 보기가 시험에 종종 나온다. 함수를 정의할 때 괄호 안에 적는 변수 이름이 매개변수이고, 함수를 호출할 때 그 자리에 실제로 넘기는 값이 인자다. 예를 들어 int add(int a, int b)a, b는 매개변수, add(3, 5)3, 5는 인자다.

메모리·포인터 관련 영문 키워드

영문발음참고 편
pointer포인터포인터 — 다른 변수의 메모리 주소를 저장하는 변수05, 12
dereference디레퍼런스역참조 — 포인터가 가리키는 위치의 값을 읽거나 쓰는 연산(*)12
address-of operator어드레스-오브 오퍼레이터주소 연산자, & — 변수의 메모리 주소를 구하는 연산자12
stack스택스택 — 함수 호출·지역 변수가 저장되는, 후입선출 구조로 자동 관리되는 메모리 영역05, 10
heap힙 — malloc 등으로 프로그래머가 직접 요청·반납해야 하는 메모리 영역05, 17
stack frame스택 프레임스택 프레임 — 함수가 호출될 때 스택에 쌓이는, 그 함수의 매개변수·지역 변수·복귀 주소를 담는 블록10
dynamic memory allocation다이내믹 메모리 얼로케이션동적 메모리 할당 — 프로그램 실행 중에 필요한 만큼 힙 메모리를 요청하는 것17
memory leak메모리 리크메모리 누수 — free하지 않아 계속 점유되는 힙 메모리17, 21
dangling pointer댕글링 포인터댕글링(매달린) 포인터 — 이미 해제된 메모리를 여전히 가리키는 포인터17, 21
null pointer널 포인터널 포인터 — 아무 것도 가리키지 않음을 뜻하는, 값이 0인 포인터12, 21
segmentation fault세그멘테이션 폴트세그멘테이션 오류 — 허용되지 않은 메모리 영역에 접근해 운영체제가 프로그램을 강제 종료시키는 런타임 오류21

표준 라이브러리 함수 이름과 에러 메시지 표현

자주 나오는 표준 라이브러리 함수 이름의 어원

함수 이름어원 풀이참고 편
printfprint formatted(포맷을 지정해 출력한다)형식 문자열에 맞춰 화면에 출력하는 함수04
scanfscan formatted(포맷을 지정해 읽어들인다)형식 문자열에 맞춰 입력을 읽어들이는 함수04
strlenstring length(문자열 길이)문자열의 길이(널 문자 제외)를 구하는 함수19
strcpystring copy(문자열 복사)한 문자열을 다른 배열에 복사하는 함수19
strcmpstring compare(문자열 비교)두 문자열을 사전 순으로 비교하는 함수19
mallocmemory allocation(메모리 할당)힙에서 지정한 바이트 수만큼 메모리를 확보하는 함수17
calloccontiguous allocation(연속된 메모리 할당)메모리를 확보하면서 그 내용을 0으로 초기화까지 해주는 함수17
reallocre-allocation(재할당)이미 할당된 메모리의 크기를 조정하는 함수17
fopenfile open(파일 열기)파일을 열어 이후 입출력에 쓸 FILE 포인터를 얻는 함수16
sizeofsize of(…의 크기)자료형이나 변수가 차지하는 바이트 수를 구하는 연산자07

단, “구조체”, “함수” 같은 일반 한자어에는 억지 어원 풀이를 붙이지 않는다. 이 표는 영문 함수 이름 자체가 축약어라서 어원을 알면 기억하기 쉬운 경우만 골랐다.

컴파일러·런타임 에러 메시지에서 자주 보는 표현

영문 표현어떤 상황에서 나오는가
undeclared identifier선언되지 않은 식별자선언 없이 변수·함수를 사용했을 때(21편의 컴파일 오류 예시)
expected ';' before ...세미콜론이 있어야 할 자리에 없음문장 끝에 세미콜론을 빠뜨렸을 때
implicit declaration of function함수의 암묵적 선언프로토타입 없이 함수를 먼저 호출했을 때(경고 또는 오류)
segmentation fault (core dumped)세그멘테이션 오류(코어 덤프됨)잘못된 메모리 주소에 접근했을 때
division by zero0으로 나누기정수를 0으로 나누는 연산을 실행했을 때
warning: unused variable사용하지 않는 변수 경고선언만 하고 한 번도 쓰지 않은 변수가 있을 때(오류는 아니고 경고)

자주 틀리는 점: warning(경고)과 error(오류)를 같은 것으로 착각하면 안 된다. warning은 컴파일이 끝까지 진행되어 실행 파일이 만들어지는 상태이고, error는 컴파일이 중단되어 실행 파일이 만들어지지 않는 상태다. 시험 지문에 “컴파일 warning이 발생했다”고만 나오면, 실행 파일은 정상적으로 만들어졌다는 뜻이다.

영문 지문 읽는 전략

왜 필요한가

독학사 시험 지문은 한국어 위주지만, 코드 안의 주석이나 변수 이름, 문제 자체가 인용한 컴파일러 메시지는 영어 그대로 나올 수 있다. 이때 문장을 처음부터 끝까지 사전 찾듯이 정독하면 시간이 부족해진다. 아래 절차로 필요한 정보만 빠르게 뽑아내는 습관을 들인다.

  1. 핵심 키워드부터 찾는다. 지문에서 error, warning, 함수 이름, 자료형 이름처럼 이 편의 표에 있는 단어를 먼저 눈에 띄는 대로 표시한다.
  2. 에러 메시지는 위치 정보와 분리해서 읽는다. line 5: expected ';'처럼 나오면 “5번째 줄에 세미콜론이 빠졌다”는 위치+원인 구조로 재구성한다.
  3. 코드와 지문을 번갈아 대조한다. 지문이 가리키는 줄 번호나 변수 이름을 실제 코드에서 찾아 짚어가며 읽는다.
  4. 모르는 단어는 문맥으로 추측하고 넘어간다. 시험 중 사전을 볼 수 없으므로, 이 편의 표에 없는 생소한 단어가 나오면 주변 문맥(코드가 하는 일, 나머지 보기)으로 뜻을 추정하고 넘어간다.

쉽게 말하면: 영문 지문을 통째로 번역하려 하지 말고, “이 편의 용어 표에 있는 단어들”만 빠르게 걸러내 읽으면 시간을 크게 아낄 수 있다.

핵심 정리

  • declaration(선언)과 definition(정의)은 다르다 — 함수는 프로토타입(선언)과 몸체가 있는 정의를 구분해서 봐야 한다.
  • parameter(매개변수)는 함수 정의에서 받는 변수, argument(인자)는 함수 호출 시 실제로 넘기는 값이다.
  • stack(스택)은 자동 관리되는 지역 변수·함수 호출 영역, heap(힙)은 malloc 등으로 직접 관리하는 영역이다.
  • warning(경고)은 컴파일이 끝까지 진행되어 실행 파일이 만들어지지만, error(오류)는 컴파일 자체가 중단된다.
  • 영문 지문은 처음부터 정독하지 말고, 핵심 키워드와 에러 메시지의 위치+원인 구조부터 빠르게 뽑아 읽는다.

마무리 복습

문제 14지선다
declaration과 definition에 대한 설명으로 가장 적절한 것은?
문제 24지선다
parameter(매개변수)와 argument(인자)의 구분으로 옳은 것은?
문제 34지선다
stack과 heap에 대한 설명으로 옳지 않은 것은?
문제 44지선다
컴파일러가 warning을 출력했을 때의 상태로 가장 적절한 것은?
문제 54지선다
다음 중 함수 이름과 그 어원(축약 이전 표현)의 연결로 옳지 않은 것은?
문제 64지선다
segmentation fault에 대한 설명으로 가장 적절한 것은?

참고 자료

Last updated on