자격증 정복/컴퓨터시스템기사

컴퓨터시스템기사 실기 09 — 개발자 환경 구축 + 구 범위 보충 (OS 명령어·우선순위·개발도구·SW 테스트·로더)

올드 IT직장인 2026. 10. 19. 00:30

컴퓨터시스템기사 실기 09 — 개발자 환경 구축 + 구 범위 보충 (OS 명령어·우선순위·개발도구·SW 테스트·로더)

출제기준 코드: 1-1-1 운영체제 특징 식별 · 1-1-2 CLI/GUI 기본 명령어 · 1-1-3 작업 우선순위 조정
/ 1-2-1 운영체제 설치 · 1-2-2 개발도구 설치 · 1-2-3 개발도구 활용
구 범위 보충: 스케줄링·교착상태·디스크 스케줄링·UNIX 파일시스템·어셈블러/로더·소프트웨어 테스트·SPICE
시험일: 2026-10-25 / 시리즈: 컴퓨터시스템기사 실기 09편 (마지막 편)

 

실기 시리즈의 마지막 편입니다.

 

두 가지를 한 번에 정리합니다.

  1. 2026 신 출제기준 대단원 1 (개발자 환경 구축) — 직접 기출은 없지만 "명령어 매핑", "우선순위 조정"이 나올 수 있는 영역
  2. 구 범위(2026 이전 출제기준) 기출 모음 — 운영체제·시스템 소프트웨어·소프트웨어 공학에서 반복 출제된 단답형. 필기 2026년 3회에도 옛 범위가 나왔기 때문에, 실기에서도 남아 있을 가능성을 열어두고 핵심 용어만 빠르게 훑습니다.

특히 2026년 1회 복원본에는 소프트웨어 테스트 오라클(Q7)과 McCabe 순환 복잡도(Q11) 가 실제로 나왔으니 8장은 꼭 읽어 주세요.


1. 실기 출제 포인트

구분 형태 중요도
작업 우선순위 에이징, HRN 계산, nice 값 ⭐⭐⭐
OS 기본 명령어 목적 → 명령어 매핑 (Linux/Windows) ⭐⭐
개발도구 컴파일 4단계, 컴파일러/링커/디버거 역할 ⭐⭐
소프트웨어 테스트 (구) 오라클, 블랙박스/화이트박스, 커버리지, McCabe ⭐⭐⭐ (2026-1 출제)
교착상태 (구) 4조건, 은행원 알고리즘 ⭐⭐
스케줄링 (구) HRN, SRT, 에이징 ⭐⭐⭐
디스크 스케줄링 (구) FCFS 이동 거리 계산 ⭐⭐
시스템 SW (구) 어셈블러 지시어, 로더 4기능, 절대 로더, 컴파일러/인터프리터 ⭐⭐
UNIX/Windows (구) 커널, i-node, 레지스트리 HKLM ⭐

💡 답안 키워드 박스
에이징 HRN nice(−20~19) 블랙박스/화이트박스 테스트 오라클 동등 분할 구문/결정/조건 커버리지 순환 복잡도 V(G)=E−N+2 교착상태 4조건 은행원 알고리즘 의사 명령 로더(할당·연결·재배치·적재) i-node HKLM


Part A. 개발자 환경 구축 (신 출제기준)

2. 운영체제 기초 활용 (1-1)

2-1. 운영체제 종류와 특징 (1-1-1)

구분 Linux / UNIX 계열 Windows
사용자 인터페이스 CLI(셸) 중심, GUI 선택 GUI 중심, CLI(CMD, PowerShell) 병행
파일 시스템 ext4, xfs 등 (/ 단일 루트) NTFS (C:\ 드라이브 문자)
설정 저장 텍스트 설정 파일 (/etc) 레지스트리 + 설정 파일
소스 오픈소스 (배포판별) 상용
서버 활용 서버·클라우드·임베디드 점유율 높음 엔터프라이즈 데스크톱·AD 환경

 

2-2. CLI 기본 명령어 매핑 (1-1-2) ⭐⭐

목적 Linux Windows (CMD)
현재 위치 / 목록 pwd, ls -al cd, dir
파일 복사 / 이동 / 삭제 cp, mv, rm -r copy, move, del
디렉터리 생성 mkdir -p mkdir
권한 변경 chmod 750 file, chown icacls
프로세스 확인 / 종료 ps -ef, kill -9 PID tasklist, taskkill /PID
네트워크 설정 / 포트 ip addr, ss -tlnp ipconfig, netstat -ano
파일 내용 / 검색 cat, grep type, findstr
디스크 사용량 df -h, du -sh dir, wmic / 탐색기
도움말 man, --help help, /?

 

chmod 숫자 권한 (자주 나오는 계산)

r=4, w=2, x=1
chmod 750 → 소유자 rwx(7) / 그룹 r-x(5) / 기타 ---(0)
chmod 644 → rw-(6) r--(4) r--(4)

→ -rwxr-x--- ≡ 750 (직접 확인한 변환)

 

2-3. 작업 우선순위 조정 (1-1-3) ⭐⭐⭐

Linux nice 값

범위: -20(최고 우선) ~ 19(최저 우선), 기본값 0
nice -n 10 ./job.sh          실행 시 nice 10으로 시작 (우선순위 낮춤)
renice -n 5 -p 1234          실행 중인 PID 1234의 nice를 5로 변경
  • 값이 작을수록 우선순위가 높습니다. (직관과 반대라 함정)
  • 일반 사용자는 nice 값을 올리는(우선순위 낮추는) 것만 가능, 낮추려면 root 권한 필요

 

Windows: 작업 관리자의 우선순위 클래스(실시간 > 높음 > 보통 이상 > 보통 > 보통 이하 > 낮음), start /low program.exe 등

 

⚠️ 함정: nice 값과 우선순위의 방향이 반대 / 스케줄링 이론의 "우선순위 값이 클수록 높음"과 헷갈리지 않기


3. 기본 개발환경 구축 (1-2)

3-1. 개발도구의 역할 (1-2-2, 1-2-3)

도구 역할
컴파일러 소스 → 목적 코드(기계어) 번역 (gcc, javac)
링커 목적 파일 + 라이브러리 연결 → 실행 파일
디버거 실행 추적, 중단점, 변수 확인 (gdb)
빌드 도구 컴파일·링크 자동화 (make, Maven, Gradle)
IDE 편집기+컴파일러+디버거 통합 (VS Code, Eclipse)
형상 관리 변경 이력·협업 (Git)
패키지 관리자 라이브러리·도구 설치 (apt, dnf/yum, pip, npm)

 

gcc 컴파일 4단계 (기출 후보)

소스(.c) → ① 전처리(-E) → ② 컴파일(-S, 어셈블리) → ③ 어셈블(-c, 목적파일 .o) → ④ 링크 → 실행파일
gcc -o prog prog.c        (한 번에 수행)
  • 환경 변수: PATH(실행 파일 탐색 경로), JAVA_HOME 등 → 도구가 어디서 실행되는지 결정
  • 개발환경 분리: 가상환경(Python venv), 컨테이너(Docker), VM 으로 의존성·OS 차이를 격리

 

3-2. OS 설치 시 고려 사항 (1-2-1)

  • 대상 플랫폼과 아키텍처(x86-64/ARM), 라이선스, 커널·라이브러리 버전 호환
  • 파티션/파일 시스템 설계, 보안 패치·최소 설치 원칙(필요 패키지만)

Part B. 구 범위 보충 (2026 이전 출제기준, 기출 이력 기반)

신 출제기준(실기)에는 명시되지 않았지만, 아래 문항은 A형/B형 복원 기출에 반복 등장했습니다.
용어-정의 짝을 외우는 용도로 빠르게 보세요.

4. 스케줄링 ⭐⭐⭐

기법 핵심 기출
기법 핵심 기출
FCFS 도착 순서 —
SJF 실행 시간 짧은 것 먼저 (비선점), 긴 작업 불리 —
SRT SJF의 선점형, 남은 시간 비교, 추적 오버헤드 A 2016-3, 2018-1
HRN 우선순위 = (대기시간 + 서비스시간) / 서비스시간, SJF 보완 A 2015-3, 2016-1, 2016-3, B형
라운드 로빈 (RR) 시간 할당량(타임 퀀텀) 순환, 선점 —
에이징 (Aging) 오래 기다린 프로세스 우선순위를 점진적으로 높여 기아 방지 A 2026-1

 

 

기출 (A 2015-3): 서비스 시간 20, 대기 시간 40일 때 HRN 우선순위는?

(40 + 20) / 20 = 3      ← 값이 클수록 먼저 실행

 

 

연습 (직접 만든 문제): P1(대기 10, 서비스 5), P2(대기 20, 서비스 20) 중 먼저 실행되는 것은?

P1 = (10+5)/5 = 3,  P2 = (20+20)/20 = 2   →  P1 먼저

(HRN은 서비스 시간이 짧거나 대기 시간이 길수록 우선순위가 높아집니다.)

 

5. 교착상태 (Deadlock) ⭐⭐

발생 4조건 (A 2015-3): 상호 배제, 점유 및 대기, 비선점, 환형 대기 — 네 조건이 모두 성립해야 교착상태가 발생합니다.

대응 방법
예방 4조건 중 하나를 제거
회피 은행원 알고리즘(Banker's) — 최대 자원 수를 미리 신고, 안전 상태일 때만 할당 (A 2023-1)
탐지·회복 자원 할당 그래프로 탐지 후 프로세스 종료·자원 선점

6. 디스크 스케줄링 ⭐⭐

기출 (A 2018-3, 2024-3 동일): 헤드가 100 트랙에 있고 요청 큐가 180, 50, 195, 5, 160, 70 일 때 FCFS 총 이동 거리는?

100→180: 80
180→ 50: 130
 50→195: 145
195→  5: 190
  5→160: 155
160→ 70: 90
합계 = 790     ← 정답

🔎 원본 대조 주의: 복원 파일의 문제 지문에는 요청 큐가 150, 30, 190, 20, 180, 10, 200 으로 적혀 있지만 정답 790은 위 큐(180, 50, 195, 5, 160, 70)로 계산한 값입니다. (지문 큐로 계산하면 1020) 정답과 계산 과정이 일치하는 위 큐가 원본이라고 보는 것이 맞습니다. 시험장에서는 주어진 큐로 직접 계산하세요.

비교 (직접 계산한 연습): 같은 큐를 SSTF(현재 위치에서 가장 가까운 트랙 먼저)로 처리하면

100→70(30) →50(20) →5(45) →160(155) →180(20) →195(15) = 285

 

FCFS(790)보다 훨씬 짧지만, 멀리 있는 요청이 계속 밀리는 기아가 생길 수 있습니다.

SCAN(엘리베이터)은 한 방향으로 끝까지 처리한 뒤 반대로 이동합니다.

 

7. 시스템 소프트웨어 (어셈블러·로더·번역기) ⭐⭐

문제 정답 출처
어셈블러에게 작업을 지시하는 명령 = 어셈블러 지시어 또는 ( ) 명령 의사(Pseudo) 명령 A 2017-1, 2019-1
자주 반복되는 코드를 편리하게 정의해 쓰는 것 매크로 A 2018-3
로더의 기능 4가지 할당(Allocation), 연결(Linking),
재배치(Relocation), 적재(Loading)
A 2018-1, 2023-3
적재 기능만 수행하는 로더 절대 로더 A 2017-1, 2023-3
절대 로더에서 할당·연결을 수행하는 주체 프로그래머 (재배치는 어셈블러) A 2015-3
고급 언어를 기계어로 번역해 목적 프로그램을 생성하는 번역기 컴파일러 (한 줄씩 해석 실행은 인터프리터) A 2018-1
ROM에 있고 전원을 켜면 OS를 적재하는 프로그램 부트스트랩 로더, IPL (05편) A 2020 통합

 

8. 소프트웨어 테스트와 품질 ⭐⭐⭐ (2026-1 Q7, Q11 출제)

8-1. 기본 개념

구분 질문
검증 (Verification) "제품을 올바르게 만들고 있는가?" (명세 대비, 개발 과정 점검)
확인 (Validation) "올바른 제품을 만들고 있는가?" (사용자 요구 충족)

 

테스트 단계 (V-모델): 단위 → 통합 → 시스템 → 인수 (알파/베타 테스트)

 

8-2. 블랙박스 vs 화이트박스

구분 블랙박스 테스트 화이트박스 테스트
관점 입출력(명세) 만 봄, 내부 구조 모름 내부 구조·논리 흐름 기반
기법 동등 분할, 경계값 분석, 원인-효과 그래프,
오류 예측, 비교 검사, 상태 전이
구문/결정/조건 커버리지, 기본 경로(McCabe),
데이터 흐름
주 사용 단계 시스템·인수 테스트 단위·통합 테스트

 

동등 분할 + 경계값 (직접 만든 예): 입력 범위 1~100이 유효할 때

동등 클래스: 유효(1~100), 무효(<1), 무효(>100)
경계값 테스트: 0, 1, 100, 101

8-3. 테스트 오라클 (A 2026-1 Q7)

오라클(Oracle): 테스트 결과가 맞는지 판단하는 기준(예상 결과를 알려주는 수단).

종류 설명
종류 설명
참(True) 오라클 모든 입력에 대해 기대 결과를 제공 (이상적)
샘플링(Sampling) 오라클 일부 특정 입력값에 대해서만 기대 결과 제공
휴리스틱(Heuristic) 오라클 일부 입력은 정확히, 나머지는 그럴 것으로 추정(유사 입력 → 유사 결과)
일관성 검사(Consistent) 오라클 수정 전·후 결과를 비교

🔎 원문 확인 불가 주의: 2026년 1회 Q7은 "유사 입력이면 유사 출력이 나올 것으로 예상해 임의 입력의 예상·실제 출력을 비교하는 기법"으로 복원됐고, 정답 후보는 휴리스틱 오라클, 비교 검사, 명세서 기반 동등 분할 로 의견이 갈립니다.
복원 메모에는 "비교 검사가 더 유력"이라고 적혀 있습니다.
확정된 정답이 아니므로, 시험장에서 문구가 "오라클"을 묻는다면 휴리스틱(유사 입력 → 유사 출력 추정),
"블랙박스 기법"을 묻는다면 비교 검사/동등 분할을 쓰고 간단한 설명을 덧붙이세요.

8-4. 화이트박스 커버리지 (강도 순) ⭐⭐

커버리지 기준
구문(문장, Statement) 모든 문장을 1번 이상 실행
결정(분기, Decision/Branch) 모든 결정의 참·거짓 결과를 1번 이상
조건(Condition) 결정 안 각 개별 조건의 참·거짓을 1번 이상
조건/결정 결정 + 조건 모두 만족
변경 조건/결정 (MC/DC) 각 조건이 독립적으로 결정 결과에 영향을 주는 것을 보임
다중 조건 조건의 모든 조합 (2ⁿ)

 

직접 만든 예제: if (A && B) 에서

결정 커버리지  : (T,T)→참, (T,F)→거짓 처럼 결과가 참/거짓 각 1회면 충족
조건 커버리지  : (T,F), (F,T) 2개로도 A, B가 각각 T/F를 가져 충족
                 → 하지만 결정 결과는 둘 다 거짓! (조건 커버 ≠ 결정 커버)
MC/DC          : (T,T), (T,F), (F,T) = 3개 (n+1개)
다중 조건      : 2² = 4개

 

8-5. McCabe 순환 복잡도 (A 2026-1 Q11) ⭐⭐⭐

V(G) = E − N + 2        (E: 간선 수, N: 노드 수)
     = 결정(분기) 노드 수 + 1
     = 그래프의 영역(region) 수

 

기출 (2026-1): 간선 11, 노드 9 → V(G) = 11 − 9 + 2 = 4
→ 독립 경로 수 = 테스트해야 할 최소 경로 수. 03편에서도 한 번 다뤘습니다.

V(G)가 클수록 복잡해 테스트·유지보수가 어렵습니다 (10 초과 시 위험하다고 보는 기준이 흔히 쓰입니다).

 

8-6. 소프트웨어 프로세스 평가 SPICE (A 2022-1, 2025-1)

SPICE(ISO/IEC 15504)는 프로세스와 프로세스 수행 능력 수준의 2차원으로 평가합니다.

  • 5개 프로세스 범주: 고객-공급자, 공학(Engineering), 지원, 관리, 조직
  • 능력 수준 0~5: 불완전 → 수행 → 관리 → 확립 → 예측 → 최적화
  • 기출 정답: 공학(Engineering) (소프트웨어 개발·명세·유지보수 관련 프로세스 범주)

 

9. UNIX·Windows 용어 ⭐

문제 정답 출처
UNIX의 핵심, 부팅 시 주기억장치에 적재되어 상주하며
하드웨어를 보호하고 프로그램과 하드웨어 사이 인터페이스
커널(Kernel) A 2019-1
UNIX 파일 시스템 구조로 소유자 UID/GID, 크기, 타입,
생성·변경 시각, 보호 권한 등 보관
i-node A 2017-3
HKEY_LOCAL_MACHINE (HKLM) 설명 시스템 전체(로그온 사용자와 무관)에 적용되는
하드웨어·드라이버·소프트웨어 설정 정보 저장
B 2019-11

10. 기출 Q&A 모음

Q1. 오래 기다린 프로세스의 우선순위를 점진적으로 높여 기아를 막는 기법은? (2026-1)
A. 에이징.

 

Q2. 서비스 시간 20, 대기 시간 40의 HRN 우선순위는? (2015-3)
A. (40+20)/20 = 3.

 

Q3. 교착상태 발생 4조건은? (2015-3)
A. 상호 배제, 점유 및 대기, 비선점, 환형 대기.

 

Q4. 최대 자원을 미리 신고하고 안전할 때만 할당하는 교착상태 회피 알고리즘은? (2023-1)
A. 은행원 알고리즘.

 

Q5. 간선 11, 노드 9인 그래프의 McCabe 순환 복잡도는? (2026-1)
A. 4.

 

Q6. 로더의 4가지 기능은? (2018-1)
A. 할당, 연결, 재배치, 적재.

 

Q7. 헤드 100, 큐 180, 50, 195, 5, 160, 70 FCFS 총 이동 거리는? (2018-3, 2024-3)
A. 790.

 

Q8. SJF를 선점형으로 변경한 기법은? (2016-3, 2018-1)
A. SRT.

 

Q9. 어셈블러 지시어의 다른 이름은? (2017-1)
A. 의사(Pseudo) 명령.


11. ⚠️ 함정 패턴 정리

  1. nice 값: 작을수록 우선순위 높음 (−20이 최고)
  2. HRN: 값이 클수록 먼저. 분자는 (대기+서비스)
  3. SRT = 선점형 SJF, SJF는 비선점
  4. 교착상태 4조건은 모두 성립해야 발생 (하나라도 깨면 예방)
  5. 디스크 FCFS: 시작 위치부터 큐 순서대로 절대값 합 — 문제 지문의 큐와 정답이 일치하는지 직접 계산
  6. 조건 커버리지 ≠ 결정 커버리지
  7. V(G) = E − N + 2 (E와 N 순서 주의), 결정 노드 + 1과 같음
  8. 검증(Verification)=올바르게 만들었나, 확인(Validation)=올바른 걸 만들었나
  9. 절대 로더의 할당·연결 주체는 프로그래머
  10. 블랙박스=명세/입출력, 화이트박스=내부 구조

12. 💡 실무에서는?

  • 우선순위 조정: 운영 서버에서 백업·배치가 서비스 프로세스의 CPU를 뺏지 않게 nice -n 19/ionice -c3 로 낮추거나, systemd 단위(CPUWeight, CPUQuota)·cgroup으로 자원을 제한합니다. 다만 락을 쥔 프로세스의 우선순위를 낮추면 우선순위 역전이 생길 수 있어 주의해야 합니다. 에이징은 이런 기아 문제를 이론으로 막는 장치입니다.
  • 보안 점검과 테스트 분류의 연결: SAST(소스 정적 분석)는 화이트박스, DAST·모의해킹·퍼징(Fuzzing) 은 블랙박스 성격입니다. 보안 시스템 구축 시 개발 단계(SAST·SCA) → 스테이징(DAST·퍼징) → 운영(모니터링)으로 테스트 기법을 계층 배치합니다. 순환 복잡도가 높은 모듈은 결함·취약점이 몰리는 경향이 있어 리팩터링·집중 리뷰 대상이 됩니다.
  • 개발환경 표준화: 개발자마다 도구 버전이 다르면 "내 PC에서는 되는데" 문제가 생깁니다. 컨테이너 기반 개발환경(Dev Container), 패키지 버전 고정(lock 파일), 이미지·패키지 서명 검증과 SBOM 관리로 공급망 위험을 줄입니다.
  • 레지스트리/설정 관리: Windows 레지스트리 HKLM은 시스템 전체 설정이라 변경 권한을 제한하고, GPO·구성 관리 도구로 변경 이력을 남기는 것이 보안 기준(Hardening)의 기본입니다. Linux의 /etc 설정 변경도 형상 관리(Git, Ansible)로 추적합니다.
  • 디스크 I/O 스케줄러: 리눅스는 장치 유형에 따라 mq-deadline, none(NVMe), bfq 등을 선택합니다. SSD/NVMe에서는 헤드 이동이 없어 SCAN/SSTF 같은 이론의 효과가 줄어듭니다.

13. 핵심 정리

✅ nice: -20(높음) ~ 19(낮음), 기본 0 / renice -n 값 -p PID
✅ chmod 750 = rwxr-x--- / r4 w2 x1
✅ gcc 4단계: 전처리 → 컴파일 → 어셈블 → 링크
✅ 에이징 = 기아 방지 / HRN = (대기+서비스)/서비스 / SRT = 선점 SJF
✅ 교착상태 4조건: 상호배제·점유대기·비선점·환형대기 / 회피 = 은행원
✅ FCFS 디스크 이동: 시작 위치부터 순서대로 합 (790)
✅ 로더 4기능: 할당·연결·재배치·적재 / 절대 로더 = 프로그래머가 할당·연결
✅ 어셈블러 지시어 = 의사 명령 / 반복 코드 정의 = 매크로
✅ 검증(올바르게 만들었나) vs 확인(올바른 걸 만들었나)
✅ 블랙박스(동등 분할·경계값·비교 검사) / 화이트박스(구문<결정<조건<MC/DC)
✅ V(G) = E − N + 2 (11−9+2=4)
✅ SPICE 5범주: 고객-공급자·공학·지원·관리·조직
✅ UNIX 커널 / i-node / HKLM = 시스템 전체 설정

14. 시리즈 마무리 — 1~9편 지도와 마지막 일주일 학습 순서

편 주제 시험 직전 핵심
01 출제 맵·답안 전략 시험 구조, 답안 작성 습관
02 자료구조 I 후위 표기 변환, 트리 순회, 정렬 코드
03 자료구조 II BFS/DFS, 다익스트라, 해시 Load Factor, McCabe
04 프로세서·명령어 파이프라인·CPI 계산, 주소지정, 해저드
05 기억장치·캐시 캐시 비트 계산, 적중률, 칩 구성, RAID 1
06 입출력 제어 폴링·데이지 체인, 사이클 스틸링, 셀렉터 채널
07 네트워크 OSI·TCP, 토폴로지, 흐름 제어, 해밍코드
08 프로그래밍 C 출력 예측, 재귀 빈칸, 객체지향·스크립트
09 개발자 환경·구 범위 우선순위, 테스트·순환 복잡도, 로더

 

마지막 일주일 추천 순서

  1. 계산 문제부터 손으로 다시 풀기 (파이프라인, CPI, 캐시 비트, 적중률, 해밍코드, 서브넷)
  2. 단답형 용어-정의 짝 표 소리 내어 읽기 (06편, 09편 표)
  3. 코드 출력 예측 3~4문제를 종이에 직접 추적 (08편)
  4. 기출 복원본에서 정답과 풀이가 안 맞는 문항(캐시 58ns, SATA 3.5Gb/s, 디스크 큐 등)은 이 시리즈의 정정 값으로 확인
  5. 시험 전날은 새 내용 없이 핵심 정리 박스만 훑기

답안 작성 팁: 계산 문제는 식과 단위를 같이 쓰고(부분 점수), 조건이 모호하면 가정을 한 줄로 적고, 단답형은 키워드를 먼저 쓰고 한 줄 설명을 덧붙이세요. 약어는 영문 풀네임과 한글을 병기하면 안전합니다.


시리즈를 읽어 주셔서 감사합니다.

 

시험(10/25) 후에는 후기 글로 돌아오겠습니다.

 

오탈자나 기출 정정 제보는 댓글로 남겨주시면 반영하겠습니다.

궁금한 점은 댓글로 남겨주세요!

반응형