사무자동화산업기사 CBT
종목 메뉴

개념 한 쪽

사무자동화산업기사 라이브러리 종류 — 로더·링커·전처리기·번역기

라이브러리 종류 세트는 프로그램이 만들어져 실행되기까지 거치는 도구의 역할을 묻는다. 번역된 목적 프로그램을 주기억장치에 적재하는 것은 로더이고, 여러 목적 프로그램과 내장함수를 하나로 묶어 실행 가능한 프로그램을 만드는 것은 링커이며, 컴파일 전에 주석 삭제·매크로 치환·파일 포함을 맡는 것은 전처리기다. 로더의 기능 가운데 공간을 확보하는 일은 할당이고, 컴파일러·인터프리터·어셈블러는 번역기라 로더와 성격이 다르다.

2026-10-17 기준 · 사무자동화산업기사 대시보드

이 개념을 문제로 확인하고 싶으면 이 개념 문제 10개 풀기 회원용

가입 없이 오늘의 10문제 바로 풀기 →

뜻

프로그램이 실행되기까지는 번역과 결합과 적재가 차례로 일어난다. 컴파일러와 어셈블러가 소스 코드를 목적 코드로 번역하고, 링커는 번역 프로그램이 만든 여러 목적 프로그램과 프로그램에서 사용하는 내장함수를 하나로 모아 실행 가능한 로드 모듈(실행 파일)을 생성한다. 로더는 이 실행 파일을 보조기억장치에서 주기억장치로 읽어와 실행될 수 있도록 하는 프로그램이다 — 「번역은 컴파일러·어셈블러, 결합은 링커, 적재는 로더」로 나누어 두면 도구별 역할이 섞이지 않는다.

로더의 기능은 동작 순서로 구분한다. 실행 프로그램을 기억장치 안으로 옮겨 놓을 공간을 확보하는 일은 할당(Allocation)이고, 확보한 공간에 실제 데이터를 넣는 것이 적재(Load), 주소를 조정하는 것이 재배치, 여러 모듈을 하나로 잇는 것이 연결이다. Absolute Loader에서도 적재(Load)는 로더나 운영체제가 수행하는 일이고 컴파일러는 소스를 기계어로 번역하는 역할이므로, 적재의 주체로 컴파일러를 연결한 설명은 옳지 않다.

전처리기는 번역에 앞서 소스를 손보는 단계를 맡는다. 컴파일러가 시작하기 전에 별개의 프로그램으로 호출되어 주석을 지우고, 다른 프로그램 파일을 포함시키고, 매크로를 치환하며, C 언어의 #include 문을 처리한다. 링커는 객체 파일을 연결하고 로더는 메모리에 적재하며 디버거는 오류를 추적하므로 역할이 겹치지 않는다. 시스템 프로그램을 성격으로 묶으면 컴파일러·인터프리터·어셈블러는 모두 소스를 기계어로 옮기는 번역기이고, 로더는 번역이 아니라 적재를 맡는 프로그램이라 나머지 셋과 성격이 다르다.

예제

출제 패턴은 세 가지다. ① 도구 역할 매칭 — 「주기억장치에 적재」는 로더, 「여러 목적 프로그램과 라이브러리를 결합해 실행 가능 파일 생성」과 「목적 모듈로 로드 모듈 생성」은 링커, 「주석 삭제·매크로 치환·파일 포함」은 전처리기로 연결한다. ② 로더 기능 구분 — 공간을 확보하는 일은 할당이고 적재·재배치·연결과 섞어 놓은 선지를 가른다. ③ 성격 분류 — 컴파일러(번역)를 적재 주체로 연결한 선지가 오답이고, 컴파일러·인터프리터·어셈블러 사이에서 성격이 다른 하나로 로더를 고른다.

자주 묻는 물음

로더와 링커는 각각 무엇을 하나요?
로더는 기계어로 번역된 목적 프로그램이나 실행 파일을 보조기억장치에서 주기억장치로 읽어와 실행될 수 있게 하는 프로그램입니다. 링커는 번역된 여러 목적 프로그램과 프로그램에서 쓰는 내장함수를 하나로 모아 실행 가능한 로드 모듈을 생성합니다.
로더의 기능 가운데 공간 확보는 무엇이라고 하나요?
할당(Allocation)입니다. 로더는 실행 프로그램이 차지할 영역의 크기를 정해 예약하는 할당, 실제 데이터를 넣는 적재, 주소를 조정하는 재배치, 모듈을 잇는 연결의 기능을 순서대로 수행합니다.
전처리기의 역할과 번역기의 범위는 무엇인가요?
전처리기는 컴파일러가 시작하기 전에 별개 프로그램으로 호출되어 주석 삭제, 다른 프로그램 파일 포함, 매크로 치환, #include 문 처리 같은 일을 합니다. 컴파일러·인터프리터·어셈블러는 소스 코드를 기계어로 옮기는 번역기이고, 로더는 번역이 아니라 메모리 적재를 맡아 성격이 다릅니다.
이 개념 문제 10개 풀기 회원용

사무자동화산업기사 풀이 세트에서 이 개념의 문제 10개를 바로 풀어 보세요.