Karinoya 학습실

자격증 · IT Passport 합격 랩

개발 기술

문제와 해설을 한국어(으)로 읽을 수 있습니다. 강의(해설 기사)는 일본어판에만 있습니다.

일본어판(강의 포함) 보기 →

문제 1 | 요구사항 정의

시스템 개발에서 요구사항 정의 단계에 수행하는 작업은 어느 것인가?

  1. 프로그램 내부의 모듈 구조와 처리 절차를 정한다
  2. 실제 가동 후에 발생한 장애를 수정하고 기능을 개선한다
  3. 사용자의 업무를 조사하여 시스템에 필요한 기능과 성능을 명확히 한다
  4. 작성한 프로그램이 설계서대로 동작하는지 1개씩 확인해 나간다
정답C. 사용자의 업무를 조사하여 시스템에 필요한 기능과 성능을 명확히 한다

요구사항 정의는 개발의 첫 공정으로, 사용자의 요구를 정리하여 시스템에 요구되는 기능과 성능을 명확히 한다. 두 번째는 내부 설계, 세 번째는 단위 테스트, 네 번째는 유지보수에서 수행하는 작업으로, 모두 요구사항 정의보다 뒤의 공정에 해당한다.

문제 2 | 외부 설계

외부 설계(기본 설계)에서 정하는 내용으로 가장 적절한 것은 어느 것인가?

  1. 통합 테스트에서 사용할 테스트 데이터의 작성 절차
  2. 코딩 규약에 따른 변수명과 함수명 명명 방식의 통일
  3. 각 모듈 내부의 처리 절차와 알고리즘
  4. 사용자가 조작하는 화면과 출력되는 전표·보고서의 레이아웃
정답D. 사용자가 조작하는 화면과 출력되는 전표·보고서의 레이아웃

외부 설계는 사용자에게 보이는 부분(화면, 전표·보고서, 데이터 주고받기)을 정하는 공정이므로 네 번째가 맞다. 첫 번째는 내부 설계, 두 번째는 프로그래밍, 세 번째는 테스트 공정의 작업으로, 모두 외부 설계에서 정하는 내용이 아니다.

문제 3 | 설계의 관계

외부 설계와 내부 설계의 관계를 설명한 것으로 적절한 것은 어느 것인가?

  1. 외부 설계에서 정한 사용자에게 보이는 사양을, 내부 설계에서 프로그램 구조로 구체화한다
  2. 내부 설계를 마친 뒤, 그 결과에 기초하여 외부 설계를 수행한다
  3. 외부 설계와 내부 설계 모두 사용자와 합의해야 할 화면·전표의 레이아웃 사양을 정하는 공정이다
  4. 외부 설계는 프로그래머가, 내부 설계는 사용자가 중심이 되어 수행한다
정답A. 외부 설계에서 정한 사용자에게 보이는 사양을, 내부 설계에서 프로그램 구조로 구체화한다

개발은 외부 설계에서 내부 설계로 진행하며, 밖에서 보이는 사양을 내부의 모듈 구성과 처리 절차로 구체화한다. 첫 번째는 순서가 반대이고, 두 번째는 내부 설계가 사용자 대상 사양을 정하는 공정이 아니라는 점에서, 네 번째는 담당이 반대라는 점에서 잘못이다.

문제 4 | 공정의 순서

시스템 개발 공정을 수행하는 순서로 적절한 것은 어느 것인가?

  1. 요구사항 정의 → 테스트 → 시스템 설계 → 프로그래밍
  2. 시스템 설계 → 요구사항 정의 → 테스트 → 프로그래밍
  3. 요구사항 정의 → 프로그래밍 → 시스템 설계 → 테스트
  4. 요구사항 정의 → 시스템 설계 → 프로그래밍 → 테스트
정답D. 요구사항 정의 → 시스템 설계 → 프로그래밍 → 테스트

개발은 요구사항 정의로 만들 것을 정하고, 시스템 설계로 구현 방법을 정하고, 프로그래밍으로 만들고, 테스트로 확인하는 순서로 진행한다. 나머지 셋은 모두 설계나 테스트가 본래보다 앞에 놓여 있어, 만들기 전에 검사하는 등 성립하지 않는 순서이다.

문제 5 | 모듈 분할

프로그램을 여러 모듈로 분할하여 설계하는 주된 목적은 어느 것인가?

  1. 부품별 독립성을 높여 수정·테스트·재사용을 쉽게 한다
  2. 운영 환경에서 사용하는 서버 대수를 줄여 비용을 낮춘다
  3. 사용자가 입력하는 항목 수를 줄여 조작을 간단하게 한다
  4. 프로그램 전체의 소스 코드 행 수를 반드시 줄일 수 있게 한다
정답A. 부품별 독립성을 높여 수정·테스트·재사용을 쉽게 한다

모듈 분할은 기능별로 부품화하여 독립성을 높이고, 수정의 영향 범위를 좁혀 테스트와 재사용을 쉽게 하는 것이 목적이다. 분할해도 총 행 수가 줄어든다는 보장은 없으므로 첫 번째는 잘못이고, 두 번째는 화면 설계, 네 번째는 인프라 구성 이야기로 목적이 다르다.

문제 6 | 사용성

사용성(usability)을 높이는 화면 설계의 예로 가장 적절한 것은 어느 것인가?

  1. 입력 오류를 그 자리에서 알려 주고, 오류 내용과 고치는 방법을 구체적으로 표시한다
  2. 전문 용어를 많이 사용하여 잘 아는 사용자만 쓸 수 있는 화면으로 만든다
  3. 조작 방법은 화면에 표시하지 않고 별도 책자 매뉴얼로만 설명한다
  4. 한 화면에 모든 입력 항목을 몰아넣고, 제목이나 보조 설명은 일절 표시하지 않는다
정답A. 입력 오류를 그 자리에서 알려 주고, 오류 내용과 고치는 방법을 구체적으로 표시한다

사용성은 사용자가 헤매지 않고 효율적으로 목적을 달성할 수 있는 쓰기 편함을 말하며, 오류를 그 자리에서 알기 쉽게 알려 주는 장치는 이를 높인다. 나머지 셋은 모두 사용자의 이해와 조작 부담을 늘리므로 쓰기 편함을 떨어뜨린다.

문제 7 | 인수

소프트웨어 인수(검수)의 설명으로 적절한 것은 어느 것인가?

  1. 실제 가동 시작 후에 업무 변화와 사용자 요망에 맞추어 소프트웨어를 개량해 나가는 것
  2. 개발자가 자신이 작성한 프로그램을 모듈이나 프로그램 1개 단위로 나누어 테스트하는 것
  3. 발주자가 납품된 소프트웨어를 운영 테스트 등으로 확인하고, 요구를 충족하면 받아들이는 것
  4. 개발자가 설계서대로 프로그램의 내부 구조와 처리 절차를 조립하여 만들어 넣는 것
정답C. 발주자가 납품된 소프트웨어를 운영 테스트 등으로 확인하고, 요구를 충족하면 받아들이는 것

소프트웨어 인수는 발주자 측이 운영 테스트 등으로 요구 충족 여부를 확인한 뒤 납품물을 받아들이는 공정으로, 검수라고도 한다. 첫 번째는 단위 테스트, 세 번째는 프로그래밍, 네 번째는 유지보수로, 모두 인수와는 다른 공정이다.

문제 8 | 단위 테스트

단위 테스트의 설명으로 적절한 것은 어느 것인가?

  1. 사용자가 실제 업무 절차에 따라 사용해 보고 요구를 충족하는지 확인한다
  2. 모듈이나 프로그램 1개 단위로 내부 처리가 올바르게 동작하는지 확인한다
  3. 실제 운영에 가까운 환경에서 성능과 부하에 대한 내성을 포함해 시스템 전체를 확인한다
  4. 여러 모듈을 조합하여 그 사이의 데이터 주고받기가 올바른지 확인한다
정답B. 모듈이나 프로그램 1개 단위로 내부 처리가 올바르게 동작하는지 확인한다

단위 테스트는 모듈 단위로 수행하는 테스트의 첫 단계이다. 두 번째는 통합 테스트, 세 번째는 시스템 테스트, 네 번째는 운영 테스트(인수 테스트)의 설명으로, 모두 단위 테스트보다 뒤 단계에서 실시한다.

문제 9 | 통합 테스트

통합 테스트에서 주로 확인하는 내용은 어느 것인가?

  1. 조합한 모듈 사이의 데이터 주고받기와 연계가 올바른가
  2. 사용자가 실제 업무 흐름에서 문제없이 사용할 수 있는가
  3. 하나의 모듈 안에 있는 명령과 분기가 모두 실행되는가
  4. 개발 비용이 당초 예산 안에 들어가 있는가
정답A. 조합한 모듈 사이의 데이터 주고받기와 연계가 올바른가

통합 테스트는 단위 테스트를 마친 모듈을 연결하여 인터페이스(주고받기)가 올바른지 확인하는 단계이다. 두 번째는 단위 테스트에서 수행하는 화이트박스 테스트, 세 번째는 운영 테스트의 목적, 네 번째는 테스트가 아니라 프로젝트 원가 관리에 관한 이야기이다.

문제 10 | 시스템 테스트

시스템 테스트(종합 테스트)에서 수행하는 내용으로 가장 적절한 것은 어느 것인가?

  1. 실제 운영에 가까운 환경에서 시스템 전체를 대상으로 기능에 더해 성능과 부하 내성도 확인한다
  2. 소스 코드의 들여쓰기나 서식 흐트러짐을 자동 정형 도구로 정리한다
  3. 납품 후 사용자에게서 접수된 요망을 새 기능으로 추가해 나간다
  4. 작성 중인 모듈을 담당자끼리 1개씩 책상 위에서 읽어 맞추며 기술 오류를 확인한다
정답A. 실제 운영에 가까운 환경에서 시스템 전체를 대상으로 기능에 더해 성능과 부하 내성도 확인한다

시스템 테스트는 개발 측이 수행하는 마지막 단계의 테스트로, 시스템 전체가 요구대로 동작하는지를 기능·성능·부하 등의 측면에서 확인한다. 첫 번째는 리뷰나 단위 테스트의 작업, 두 번째는 코딩 작업, 네 번째는 유지보수의 기능 추가로, 모두 해당하지 않는다.

문제 11 | 운영 테스트

운영 테스트(인수 테스트)의 설명으로 적절한 것은 어느 것인가?

  1. 개발자가 프로그램을 책상 위에서 함께 읽으며 오류를 지적한다
  2. 개발자가 프로그램 내부 구조에 주목하여 명령과 분기를 망라해 확인한다
  3. 개발자가 통합한 모듈 사이의 연계를 확인한다
  4. 사용자가 실제 업무 흐름에 따라 사용해 보고 요구를 충족하는지 확인한다
정답D. 사용자가 실제 업무 흐름에 따라 사용해 보고 요구를 충족하는지 확인한다

운영 테스트는 사용자(발주자)가 주체가 되어 실제 업무 절차로 사용할 수 있는지 확인하는 최종 테스트이다. 첫 번째는 화이트박스 테스트, 두 번째는 통합 테스트, 세 번째는 코드 리뷰로, 모두 개발자 측이 수행하는 작업이라 주체도 목적도 다르다.

문제 12 | V자 모델

V자 모델에서 외부 설계(기본 설계)와 대응되는 테스트 공정은 어느 것인가?

  1. 단위 테스트
  2. 통합 테스트
  3. 시스템 테스트
  4. 운영 테스트
정답C. 시스템 테스트

V자 모델에서는 요구사항 정의와 운영 테스트, 외부 설계와 시스템 테스트, 내부 설계와 통합 테스트, 프로그래밍과 단위 테스트가 서로 마주 본다. 따라서 외부 설계에 대응하는 것은 시스템 테스트이며, 단위 테스트는 프로그래밍, 통합 테스트는 내부 설계, 운영 테스트는 요구사항 정의에 대응한다.

문제 13 | 화이트박스

화이트박스 테스트의 설명으로 적절한 것은 어느 것인가?

  1. 실제 운영과 같은 양의 데이터를 흘려 처리 시간이 기준 안인지 측정한다
  2. 프로그램 내부 구조는 고려하지 않고, 사양서에 제시된 입력과 출력의 관계에만 주목하여 테스트한다
  3. 프로그램 내부 구조에 주목하여 명령과 분기가 실행되도록 경로를 망라해 테스트한다
  4. 사용자에게 시제품을 조작하게 하고 요망을 청취하여 요구에 반영한다
정답C. 프로그램 내부 구조에 주목하여 명령과 분기가 실행되도록 경로를 망라해 테스트한다

화이트박스 테스트는 프로그램의 내부(제어 구조)를 보고 명령과 분기를 망라하도록 테스트 케이스를 만드는 방법으로, 주로 단위 테스트에서 사용한다. 첫 번째는 블랙박스 테스트, 세 번째는 프로토타이핑, 네 번째는 성능 테스트의 설명이다.

문제 14 | 블랙박스

블랙박스 테스트에서 테스트 케이스를 만드는 방법으로 적절한 것은 어느 것인가?

  1. 소스 코드 행 수에 비례하는 수의 테스트 케이스를 기계적으로 할당하여 준비한다
  2. 모든 분기가 적어도 한 번은 실행되도록 경로를 고른다
  3. 개발자가 쓴 주석문의 기술이 올바른지 1행씩 확인한다
  4. 사양서의 입력 조건을 의미 있는 묶음별로 나누고, 그 대표값이나 경계값을 고른다
정답D. 사양서의 입력 조건을 의미 있는 묶음별로 나누고, 그 대표값이나 경계값을 고른다

블랙박스 테스트는 내부 구조를 보지 않고 사양에 기초해 수행하며, 동치 분할이나 경계값 분석으로 입력의 대표값·경계값을 고른다. 첫 번째는 내부 구조에 주목하는 화이트박스 테스트이고, 두 번째의 행 수는 테스트 케이스의 근거가 되지 않으며, 네 번째는 코드 리뷰의 작업이다.

문제 15 | 회귀 테스트

회귀 테스트(리그레션 테스트)를 수행하는 목적은 어느 것인가?

  1. 프로그램을 수정함으로써 수정 전에는 올바르게 동작하던 부분에 결함이 생기지 않았는지 확인한다
  2. 교육을 받은 사용자가 변경 후의 새 조작 방법을 올바르게 익혔음을 확인한다
  3. 실제 운영을 견딜 만한 처리 성능이 있음을 확인한다
  4. 새로 추가한 기능이 사양서대로 동작하는지만을 대상으로, 추가한 부분에 한정하여 확인한다
정답A. 프로그램을 수정함으로써 수정 전에는 올바르게 동작하던 부분에 결함이 생기지 않았는지 확인한다

회귀 테스트는 수정이나 기능 추가의 영향으로 기존의 정상이던 기능이 망가지지 않았는지 확인하는 테스트이다. 첫 번째는 추가 기능 자체의 테스트, 두 번째는 성능 테스트, 세 번째는 교육·훈련의 확인으로, 모두 회귀 테스트의 목적이 아니다.

문제 16 | 리뷰 기법

소프트웨어 리뷰 기법 가운데 인스펙션의 설명으로 적절한 것은 어느 것인가?

  1. 진행자(모더레이터)가 주관하고, 참가자의 역할과 절차를 미리 정하여 공식적으로 산출물의 결함을 검출한다
  2. 프로그램을 실제로 동작시켜 입력에 대한 출력이 사양대로인지 확인한다
  3. 2인 1조로 1대의 단말을 사용하여 교대하면서 프로그램을 작성한다
  4. 작성자가 중심이 되어 관계자에게 산출물 내용을 차례로 설명하고, 그 자리에서 비공식적으로 오류와 의문점을 서로 지적한다
정답A. 진행자(모더레이터)가 주관하고, 참가자의 역할과 절차를 미리 정하여 공식적으로 산출물의 결함을 검출한다

인스펙션은 모더레이터가 진행하고 역할·절차를 정해 기록을 남기는 공식 리뷰이다. 두 번째는 비공식적으로 수행하는 워크스루, 세 번째는 실제로 동작시키는 테스트, 네 번째는 XP의 페어 프로그래밍으로, 모두 인스펙션과 다르다.

문제 17 | 폭포수 모델

워터폴(폭포수) 모델의 특징으로 적절한 것은 어느 것인가?

  1. 시제품을 만들어 사용자의 평가를 받으면서 요구를 굳혀 간다
  2. 공정을 순서대로 진행하고, 원칙적으로 앞 공정으로 되돌아가지 않고 개발을 진행한다
  3. 짧은 기간의 반복을 되풀이하며 반복마다 동작하는 소프트웨어를 제공한다
  4. 개발 담당과 운영 담당이 일체가 되어 자동화로 자주 릴리스한다
정답B. 공정을 순서대로 진행하고, 원칙적으로 앞 공정으로 되돌아가지 않고 개발을 진행한다

워터폴 모델은 상류에서 하류로 공정을 순서대로 진행하고, 앞 공정으로 되돌아가지 않는 것을 전제로 산출물을 승인해 가며 개발한다. 첫 번째는 애자일 개발, 세 번째는 프로토타이핑 모델, 네 번째는 DevOps의 설명으로, 모두 다른 접근이다.

문제 18 | 프로토타입

프로토타이핑 모델을 채택하는 주된 이점은 어느 것인가?

  1. 시제품이 설계서를 대신하므로 문서화 작업이 일절 필요 없게 된다
  2. 이른 단계에 시제품을 사용자에게 확인받아, 요구의 어긋남과 인식 차이로 인한 재작업을 줄일 수 있다
  3. 사용자가 시제품을 확인했으므로 가동 시작 후에 사양 변경이 발생하지 않음을 보증할 수 있다
  4. 시제품을 만들면 개발 총공수가 반드시 절감되어 비용이 절반이 된다
정답B. 이른 단계에 시제품을 사용자에게 확인받아, 요구의 어긋남과 인식 차이로 인한 재작업을 줄일 수 있다

프로토타이핑은 시제품을 조기에 평가받음으로써 요구를 잘못 파악해 생기는 큰 재작업을 막는 기법이다. 시제품을 만들어도 설계서는 필요하므로 첫 번째는 잘못이고, 공수가 반드시 절반이 된다는 보증도, 변경이 일어나지 않는다는 보증도 없으므로 두 번째와 네 번째도 잘못이다.

문제 19 | 나선형 모델

나선형(스파이럴) 모델의 설명으로 적절한 것은 어느 것인가?

  1. 상류에서 하류로 한 번의 공정 흐름으로 전체 기능을 완성하며, 앞 공정으로의 후퇴나 도중의 재검토는 일절 하지 않는다
  2. 요구사항 정의 공정을 생략하고, 동작하는 것을 먼저 만든 뒤에 사양을 문서화한다
  3. 개발 전체 공정을 외부에 위탁하고, 진척은 월간 보고만으로 관리한다
  4. 시스템을 부분으로 나누어 설계·개발·평가라는 일련의 작업을 반복하면서 나선형으로 완성도를 높인다
정답D. 시스템을 부분으로 나누어 설계·개발·평가라는 일련의 작업을 반복하면서 나선형으로 완성도를 높인다

나선형 모델은 시스템을 부분으로 나누고 설계에서 평가까지의 사이클을 반복하여 리스크를 줄이면서 완성도를 높이는 개발 모델이다. 첫 번째는 워터폴 모델의 사고방식이고, 두 번째와 세 번째는 나선형 모델의 정의와 관계가 없다.

문제 20 | 애자일

애자일 개발의 사고방식으로 가장 적절한 것은 어느 것인가?

  1. 사용자는 요구사항 정의와 검수 때만 관여하고 개발 기간 중에는 관여하지 않는다
  2. 모든 사양을 처음에 확정하고, 이후의 변경은 원칙적으로 인정하지 않는다
  3. 짧은 반복으로 동작하는 소프트웨어를 만들고, 사용자 의견을 받아들이면서 변화에 대응한다
  4. 상세한 설계 문서를 완벽하게 갖추는 일을, 동작하는 소프트웨어를 빨리 보여 주는 일보다 우선한다
정답C. 짧은 반복으로 동작하는 소프트웨어를 만들고, 사용자 의견을 받아들이면서 변화에 대응한다

애자일 개발은 짧은 반복을 되풀이하며, 동작하는 소프트웨어와 변화 대응을 중시하고 사용자와 협조하면서 진행한다. 나머지 셋은 모두 워터폴형 진행 방식의 특징으로, 애자일의 사고방식과는 반대되는 내용이다.

문제 21 | 모델 선택

요구가 확정되지 않아 사용자 반응을 보면서 짧은 기간에 기능을 추가해 나가고 싶은 시스템의 개발 방침으로 가장 적절한 것은 어느 것인가?

  1. 테스트는 마지막에 몰아서 실시하고, 그때까지는 동작 확인을 하지 않는다
  2. 요구사항 정의서 승인 전에는 개발에 착수하지 않고, 승인 후에는 변경을 일절 받아들이지 않는다
  3. 짧은 반복마다 동작하는 기능을 릴리스하고, 사용자 평가를 다음 반복에 반영한다
  4. 전체 기능의 사양을 확정한 뒤 일괄로 개발하고, 완성 시점에 처음으로 사용자에게 보여 준다
정답C. 짧은 반복마다 동작하는 기능을 릴리스하고, 사용자 평가를 다음 반복에 반영한다

요구가 변하기 쉬운 안건에는 반복마다 동작하는 것을 내놓고 평가를 반영하는 애자일형 진행 방식이 알맞다. 첫 번째와 세 번째는 워터폴형이라 변경에 약하고, 네 번째는 결함 발견이 늦어져 재작업이 커지므로 이 상황에는 맞지 않는다.

문제 22 | RAD

RAD(Rapid Application Development)의 설명으로 적절한 것은 어느 것인가?

  1. 개발 담당과 운영 담당이 긴밀히 협력하며 자동화로 지속적 개선을 꾀하는 사고방식
  2. 소수 인원의 팀과 개발 지원 도구를 활용하여 단기간에 시스템을 개발하는 기법
  3. 공개되어 있는 여러 서비스를 조합하여 새로운 서비스를 만드는 기법
  4. 기존 프로그램을 해석하여 그 사양과 설계 정보를 도출하는 기법
정답B. 소수 인원의 팀과 개발 지원 도구를 활용하여 단기간에 시스템을 개발하는 기법

RAD는 소수 인원의 팀과 개발 지원 도구를 활용해 개발 기간을 단축하는 기법이다. 첫 번째는 리버스 엔지니어링, 두 번째는 DevOps, 네 번째는 매시업의 설명으로, 모두 RAD와는 다른 용어이다.

문제 23 | 페어 프로그래밍

페어 프로그래밍의 설명으로 적절한 것은 어느 것인가?

  1. 2개 팀이 같은 기능을 각각 따로 개발하고, 완성된 후에 더 잘 만든 쪽을 채택한다
  2. 2인 1조로 1대의 단말을 사용하여 한 사람이 코드를 쓰고 다른 사람이 확인·조언하면서 개발한다
  3. 2명의 사용자에게 같은 화면을 조작하게 하여 쓰기 편함을 비교한다
  4. 2종류의 테스트를 동시에 실시하여 결함을 빨리 찾아낸다
정답B. 2인 1조로 1대의 단말을 사용하여 한 사람이 코드를 쓰고 다른 사람이 확인·조언하면서 개발한다

페어 프로그래밍은 XP의 대표적 실천법으로, 두 사람이 하나의 코드를 작성하며 그 자리에서 리뷰하여 품질을 높인다. 첫 번째는 경쟁적 개발 진행 방식, 두 번째는 테스트 실시 방법, 세 번째는 사용성 평가로, 모두 해당하지 않는다.

문제 24 | TDD

테스트 주도 개발(TDD)의 진행 방식으로 적절한 것은 어느 것인가?

  1. 먼저 테스트 코드를 작성하고, 그것이 통과하도록 프로그램을 구현해 나간다
  2. 모든 구현이 완료된 뒤에 비로소 테스트 계획을 세운다
  3. 테스트는 외부 전문 업체에만 맡기고 개발자는 테스트하지 않는다
  4. 실제 가동 후에 사용자에게서 장애 보고를 받고 나서야 테스트를 작성한다
정답A. 먼저 테스트 코드를 작성하고, 그것이 통과하도록 프로그램을 구현해 나간다

테스트 주도 개발은 테스트를 먼저 작성하고, 그것이 통과하는 최소한의 구현을 한 뒤 개선을 반복하는 기법이다. 나머지 셋은 모두 테스트가 구현이나 가동보다 뒤로 밀리는 진행 방식으로, 테스트가 개발을 이끈다는 TDD의 사고방식에 어긋난다.

문제 25 | 리팩터링

리팩터링의 설명으로 적절한 것은 어느 것인가?

  1. 외부에서 본 동작을 바꾸지 않고 프로그램의 내부 구조를 알기 쉽게 정리하는 것
  2. 운영 중인 시스템을 다른 데이터 센터로 이전하는 것
  3. 사용자에게서 접수된 요망에 따라 기존 프로그램에 새 기능을 추가해 나가는 것
  4. 처리 속도를 높이기 위해 서버 대수나 메모리를 늘리는 것
정답A. 외부에서 본 동작을 바꾸지 않고 프로그램의 내부 구조를 알기 쉽게 정리하는 것

리팩터링은 외부에서 본 동작을 유지한 채 코드의 내부 구조를 정리하여 이후의 수정을 쉽게 하는 작업이다. 첫 번째는 기능 추가, 세 번째는 하드웨어 증강, 네 번째는 설비 이전으로, 모두 내부 구조의 개선이 아니다.

문제 26 | 프로덕트 오너

스크럼에서 프로덕트 오너의 역할은 어느 것인가?

  1. 프로덕트 백로그의 내용과 우선순위에 책임을 지고 산출물의 가치를 최대로 만든다
  2. 팀 멤버의 인사 평가를 수행하고 담당 작업을 한 사람씩 할당한다
  3. 매일의 진척을 기록하고 경영진에게 예산 초과를 보고한다
  4. 스크럼의 규칙이 올바르게 지켜지도록 지원하고, 개발에 방해가 되는 문제를 제거한다
정답A. 프로덕트 백로그의 내용과 우선순위에 책임을 지고 산출물의 가치를 최대로 만든다

프로덕트 오너는 무엇을 만들지의 우선순위에 책임을 지는 역할이다. 두 번째는 스크럼 마스터의 역할이고, 첫 번째는 스크럼에서 정의되어 있지 않으며 작업 분담은 개발 팀이 스스로 정하고, 네 번째도 정의된 역할이 아니다.

문제 27 | 스크럼 마스터

스크럼에서 스크럼 마스터의 역할로 적절한 것은 어느 것인가?

  1. 스크럼이 올바르게 실천되도록 지원하고, 팀에 방해가 되는 문제를 제거한다
  2. 고객과 가격 협상을 하고 계약 조건을 결정한다
  3. 개발 팀 한 사람 한 사람에게 작업을 지시하고, 늦어진 멤버를 질책하며 관리한다
  4. 요구의 우선순위를 정하고 릴리스할 기능을 확정한다
정답A. 스크럼이 올바르게 실천되도록 지원하고, 팀에 방해가 되는 문제를 제거한다

스크럼 마스터는 팀이 스크럼을 실천할 수 있도록 지원하고 방해 요소를 제거하는 역할이다. 첫 번째와 같은 지휘 명령은 하지 않으며, 두 번째는 영업이나 관리 부문의 일, 세 번째는 프로덕트 오너의 역할로, 모두 스크럼 마스터의 직무가 아니다.

문제 28 | 스크럼 용어

스크럼에서 데일리 스크럼의 설명으로 적절한 것은 어느 것인가?

  1. 개발 팀이 매일 짧게 모여 진척과 문제점을 공유하고 당일 작업을 확인한다
  2. 스프린트가 끝날 때 그 회차에 완성한 산출물을 관계자에게 보여 주고 평가와 의견을 받는다
  3. 실현하고 싶은 요구를 우선순위를 매겨 목록으로 정리한다
  4. 팀의 일하는 방식을 돌아보고 다음을 위한 개선책을 정한다
정답A. 개발 팀이 매일 짧게 모여 진척과 문제점을 공유하고 당일 작업을 확인한다

데일리 스크럼은 매일 15분 정도로 하는 짧은 회의로, 진척 공유와 방해 요소의 조기 발견이 목적이다. 두 번째는 스프린트 리뷰, 세 번째는 프로덕트 백로그, 네 번째는 스프린트 회고(레트로스펙티브)의 설명으로, 실시 시기도 목적도 다르다.

문제 29 | CI/CD

CI/CD(지속적 통합/지속적 제공)의 설명으로 적절한 것은 어느 것인가?

  1. 운영 담당자가 수작업으로 운영 환경에 파일을 복사하여 변경을 하나씩 반영한다
  2. 릴리스 직전에 모든 변경을 한꺼번에 일괄 통합하고, 그 시점에 처음으로 몰아서 한 번만 테스트를 실시한다
  3. 새로운 개발을 중단하고 기존 시스템의 사양서 정비만 진행한다
  4. 변경한 소스 코드를 자주 통합하여 빌드와 테스트를 자동 실행하고, 릴리스까지의 흐름도 자동화한다
정답D. 변경한 소스 코드를 자주 통합하여 빌드와 테스트를 자동 실행하고, 릴리스까지의 흐름도 자동화한다

CI/CD는 작은 변경을 자주 통합하고 빌드·테스트·릴리스를 자동화하여 품질과 제공 속도를 높이는 구조이다. 첫 번째는 종래형 일괄 통합이라 문제 발견이 늦어지고, 세 번째는 자동화되어 있지 않으며, 네 번째는 개발 활동 자체가 진행되지 않으므로 잘못이다.

문제 30 | 리버스 E

리버스 엔지니어링에 해당하는 것은 어느 것인가?

  1. 화면에서 부품을 배치하기만 하면 애플리케이션을 만들 수 있는 개발 환경을 이용한다
  2. 설계서에 기초하여 프로그램을 작성한다
  3. 공개되어 있는 여러 서비스를 조합하여 새로운 서비스를 만든다
  4. 기존 프로그램을 해석하여 그 사양과 설계 정보를 도출한다
정답D. 기존 프로그램을 해석하여 그 사양과 설계 정보를 도출한다

리버스 엔지니어링은 기존 소프트웨어를 해석하여 사양과 설계 정보를 끌어내는 것을 말한다. 첫 번째는 설계에서 구현으로 나아가는 통상의(순방향) 개발, 두 번째는 매시업, 네 번째는 노코드/로코드 개발의 설명이다.

연습: 이 페이지의 문제 풀기

무작위로 출제하는 연습 도구입니다(JavaScript가 활성화된 경우에 작동합니다). 위의 문제와 해설은 그대로 모두 읽을 수 있습니다.

※ 해설은 학습용 정보 제공입니다. 시험 출제 범위와 제도는 연도에 따라 바뀌므로, 반드시 시행 기관의 공식 발표를 확인하십시오.

이 페이지는 일본어 원문을 번역한 것입니다. 번역과 원문의 내용이 다를 경우 일본어판이 우선합니다. 일본어 원문 보기