정보처리기사 CBT
종목 메뉴

개념 한 쪽

정보처리기사 소스코드 품질분석 도구 — 성능 테스트·정렬·검색

소스코드 품질분석 도구 세트는 테스트 자동화 도구의 분류와 정렬·검색 알고리즘을 함께 묻는다. 가상 사용자로 성능 지표를 재는 도구가 무엇인지, 인접한 데이터를 비교·교환하는 정렬이 무엇인지, 배열 인덱스로 힙의 자식 노드 값을 구하는 계산이 중심이다.

2026-11-08 기준 · 정보처리기사 대시보드

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

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

시험에 이렇게 나온다

출제기준 단원 「소스코드 품질분석 도구」의 공개 문제 3개를 묻는 꼴별로 나누면 이렇습니다.

묻는 꼴문제 수무엇을 묻나
성능 도구 분류 고르기1가상 사용자로 처리량·응답시간을 재는 테스트 도구 고르기
인접 비교 정렬 식별1이웃한 데이터의 크기를 비교해 자리를 바꾸는 정렬 고르기
힙 자식 값 계산1배열 인덱스로 37의 왼쪽·오른쪽 자식 값 구하기

뜻

테스트 자동화 도구는 하는 일로 분류한다. 성능 테스트 도구는 실제 사용자를 흉내 내는 가상 사용자를 여러 명 만들어 시스템에 부하를 주고, 처리량과 응답시간·경과시간·자원 사용률을 재어 성능 목표에 닿았는지 확인한다. 명세 기반 테스트 설계 도구는 요구사항 명세를 바탕으로 테스트 케이스를 만들고, 코드 기반 테스트 설계 도구는 소스 코드를 분석해 케이스를 뽑아 낸다. 기능 테스트 수행 도구는 소프트웨어가 규격대로 동작하는지를 확인하는 도구다.

정렬 알고리즘은 비교하는 대상으로 구분한다. 버블 정렬은 이웃한 두 데이터의 크기를 비교해 순서가 어긋나면 자리를 바꾸는 과정을 반복하고, 한 바퀴가 끝날 때마다 가장 큰 값이 배열의 끝으로 몰린다. 삽입 정렬은 손에 든 카드를 하나씩 받아 이미 정리된 묶음의 알맞은 자리에 끼워 넣는 방식이다. 힙 정렬은 완전이진트리로 힙을 만들고 루트의 최댓값을 반복해서 뽑아 내며, 시간복잡도는 어느 경우든 O(n log n)으로 일정하다.

힙을 배열에 담으면 인덱스 계산만으로 자식을 찾는다. 부모의 인덱스를 i라 하면 왼쪽 자식은 2i+1, 오른쪽 자식은 2i+2에 놓인다. 레코드에서 37이 인덱스 4 자리에 있으면 자식은 인덱스 9와 10, 곧 값 14와 9가 된다. 트리를 그리지 않고도 이 공식 하나로 답이 나온다.

검색 알고리즘은 두 갈래로 정리한다. 선형 검색은 목록의 첫 칸부터 차례로 하나씩 확인하며, 비교 횟수는 최선 1번, 최악 n번, 평균 (n+1)/2번이다. 이진 검색은 데이터가 이미 정렬되어 있어야 쓸 수 있고, 중간값과 비교해 찾을 범위를 절반씩 줄여 나가므로 효율이 좋다. 피보나치 수열로 다음 대상을 고르는 것은 피보나치 검색의 방식이므로 이진 검색의 특징으로 적으면 오답이 된다.

해싱에서 서로 다른 데이터가 같은 버킷을 가리키면 충돌이 일어난다. 선형 개방 주소법은 충돌이 난 자리에서부터 다음 버킷을 차례로 훑어 처음 만나는 빈 버킷에 데이터를 넣는 방식이다. 재해싱은 해시 함수 자체를 바꾸고, 이차 조사법은 1, 4, 9처럼 제곱 간격으로 건너뛰며, 임의 조사법은 무작위로 위치를 고른다.

예제

패턴은 넷으로 정리한다. ① 도구 분류 — 가상 사용자를 만들어 처리량·응답시간을 재면 성능 테스트 도구, 명세나 코드로 케이스를 만들면 설계 도구, 규격 동작 확인이면 기능 테스트 수행 도구다. ② 정렬 식별 — 이웃 비교와 교환은 버블, 정리된 묶음에 끼워 넣기는 삽입, 완전이진트리 활용은 힙 정렬이다. ③ 계산 — 부모 인덱스 i의 자식은 2i+1과 2i+2다. ④ 검색·충돌 — 순차 확인은 선형 검색, 범위 절반 축소는 이진 검색이고, 충돌 뒤 다음 칸 훑기는 선형 개방 주소법이다.

대표 기출 3문항

애플리케이션의 처리량, 응답시간, 경과시간, 자원사용률에 대해 가상의 사용자를 생성하고 테스트를 수행함으로써 성능 목표를 달성하였는지를 확인하는 테스트 자동화 도구는?

  1. 명세 기반 테스트 설계 도구
  2. 코드 기반 테스트 설계 도구
  3. 기능 테스트 수행 도구
  4. 성능 테스트 도구
정답과 해설 보기

정답 ④ · 가상 사용자를 생성해 처리량, 응답시간 등 성능 지표를 확인하는 테스트 자동화 도구를 고르는 문제이다. 가상 사용자를 만들어 부하를 발생시키고 처리량, 응답시간, 경과시간, 자원사용률을 측정해 성능 목표 달성 여부를 확인하는 것은 성능 테스트 도구의 대표적인 기능이다.

가상 사용자를 생성하여 처리량, 응답시간 등을 측정하는 테스트는 성능 테스트이므로 성능 테스트 도구가 정답이다.

인접한 데이터를 비교하면서 그 크기에 따라 데이터의 위치를 바꾸어 정렬하는 방법은?

  1. 퀵 정렬(Quick Sort)
  2. 힙 정렬(Heap Sort)
  3. 셀 정렬(Shell Sort)
  4. 버블 정렬(Bubble Sort)
정답과 해설 보기

정답 ④ · 인접한 두 데이터를 비교하여 크기에 따라 위치를 교환하는 정렬 방법을 묻는 문제이다. 버블 정렬은 인접한 두 원소를 비교해 순서가 역전되어 있으면 교환하는 방식으로, 한 패스가 끝날 때마다 큰 값이 배열의 끝으로 이동하여 거품이 떠오르는 듯한 모습을 보인다.

버블 정렬은 인접한 두 원소를 비교하여 순서가 틀리면 교환하는 방식으로, 이름 그대로 거품이 위로 뜨듯 큰 값이 끝으로 이동한다.

이진트리의 레코드 R=(88,74,63,55,37,25,33,19, 26,14,9)에 대하여 힙(heap) 정렬을 만들 때 37의 왼쪽과 오른쪽의 자노드(child node)의 값은?

  1. 55, 25
  2. 63, 33
  3. 33, 19
  4. 14, 9
정답과 해설 보기

정답 ④ · 주어진 11개의 레코드를 완전이진트리 형태로 구성한 후, 부모 노드가 자식 노드보다 크거나 같은 값을 가지도록 max heap(최대 힙) 정렬 과정을 거치게 됩니다. 과정을 거친 최종 힙 트리에서 값이 37인 노드의 위치를 찾아보면, 해당 노드는 맨 아래쪽 깊이(레벨 4)의 부모 노드 위치에 있습니다.

완전이진트리 배열 인덱스 i의 자식은 2i+1, 2i+2이므로 37의 자식은 14, 9이다.

자주 묻는 물음

정렬 방식을 묻는 문제는 어떻게 접근하나요?
비교하는 대상을 먼저 본다. 이웃한 두 원소를 비교해 자리를 바꾸면 버블 정렬이고, 손에 든 카드처럼 정리된 부분의 알맞은 자리에 끼워 넣으면 삽입 정렬이다. 힙 구조를 만들어 최댓값을 반복해 뽑으면 힙 정렬이고, 기준값으로 큰 값과 작은 값을 나누면 퀵 정렬이다.
선형 검색과 이진 검색은 어떻게 구분하나요?
선형 검색은 처음부터 하나씩 순서대로 확인하는 방식으로, 비교 횟수는 최선 1번, 최악 n번, 평균 (n+1)/2번이다. 이진 검색은 정렬된 데이터에서 중간값과 비교해 찾을 범위를 절반씩 줄이는 방식이다. 피보나치 수열을 이용하는 것은 이진 검색이 아니라 피보나치 검색의 특징이다.
해싱 충돌 해결 방식은 어떻게 정리하나요?
충돌 난 자리부터 다음 버킷을 차례로 훑어 빈 칸을 찾으면 선형 개방 주소법이다. 해시 함수를 바꾸면 재해싱, 제곱 간격으로 건너뛰면 이차 조사법, 무작위로 위치를 고르면 임의 조사법이다. 순차 탐색 키워드가 보이면 선형 개방 주소법으로 연결한다.
이 개념 문제 10개 풀기 회원용

정보처리기사 풀이 세트에서 이 개념의 문제 10개를 바로 풀어 보세요.