자격증 요약/정보처리기사

[23년 1회 1과목] 정보처리기사 필기 문제 풀이

문성 2026. 1. 14. 16:28

제1과목: 소프트웨어 설계 (1~20번)

정보처리기사 필기 기출문제
24년 3회 1과목 2과목 3과목 4과목 5과목
24년 2회 1과목 2과목 3과목 4과목 5과목
24년 1회 1과목 2과목 3과목 4과목 5과목
23년 3회 1과목 2과목 3과목 4과목 5과목
23년 2회 1과목 2과목 3과목 4과목 5과목
23년 1회 1과목 2과목 3과목 4과목 5과목

1. 소프트웨어 공학에서 워크스루(Walkthrough)에 대한 설명으로 틀린 것은?

① 사용사례를 확장하여 명세하거나 설계 다이어그램, 원시 코드 등에 적용할 수 있다.

② 복잡한 알고리즘 또는 반복, 실시간 동작, 병행 처리와 같은 기능이나 동작을 이해하려고 할 때 유용하다.

③ 인스펙션(Inspection)과 동일한 의미를 가진다.

④ 단순한 테스트 케이스를 이용하여 프로덕트를 수작업으로 수행해 보는 것이다.

요구사항 검증 방법
요구사항 검토 : 요구사항 명세서의 오류 확인 및 표준 준수 등의 결함 여부를 검토 담당자들이 수작업으로 분석
 - 동료 검토 : 요구사항 명세서 작성자가 명세서 내용을 직접 설명하고 동료들이 이를 들으면서 결함을 발견하는 형태
 - 워크 스루 : 작성자가 요구사항 명세서를 미리 배포하여 사전 검토한 후에 짧은 검토 회의를 통해 결함을 발견하는 형태
 - 인스펙션 : 요구사항 명세서 작성자를 제외한 다른 검토 전문가들이 요구사항 명세서를 확인하면서 결함을 발견하는 형태

프로토타이핑 : 사용자의 요구사항을 정확히 파악하기 위해 실제 개발될 소프트웨어에 대한 견본품을 만들어 최종 결과물을 예측

테스트 설계 : 요구사항은 테스트할 수 있도록 작성되어야 하며, 이를 위해 테스트 케이스를 생성하여 이후에 요구사항이 현실적으로 테스트 가능한지를 검토

CASE 도구 활용 : 일관성 분석을 통해 요구사항 변경사항의 추적 및 분석, 관리하고, 표준 준수 여부를 확인

답: 3번
 

2. XP(eXtreme Programming)의 5가지 가치로 거리가 먼 것은?

① 용기

② 의사소통

③ 정형 분석

④ 피드백

XP(eXtreme Programming) 는 수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발과정을 반복 극대화하여 개발 생산성을 향사시키는 방법
 - XP는 짧고 반복적인 개발 주기, 단순한 설계, 고객의 적극적인 참여를 통해 소프트웨어를 빠르게 개발하는 것을 목적으로 한다.
 - 릴리즈의 기간을 짧게 반복하면서 고객의 요구사항 반영에 대한 가시성을 높인다.
 - 애자일 개발 방법론을 기반으로 한다.
 - XP의 핵심가치 5가지 : 의사소통단순성용기존중피드백 (Communication, Simplivity, Coutage, Respect, Feedback)

XP의 주요 실천 사항
Pair Programming (짝 프로그래밍): 두 명이서 한 컴퓨터로 함께 코딩.
Collective Ownership (공동 코드 소유): 누구든지 코드를 수정할 수 있음.
Continuous Integration (지속적 통합): 수시로 코드를 합치고 빌드함.

답: 3번
 

3. 메시지 지향 미들웨어(Message-Oriented Middleware, MOM)에 대한 설명으로 틀린 것은?

① 느리고 안정적인 응답보다는 즉각적인 응답이 필요한 온라인 업무에 적합하다.

② 독립적인 애플리케이션을 하나의 통합된 시스템으로 묶기 위한 역할을 한다.

③ 송신측과 수신측의 연결 시 메시지 큐를 활용하는 방법이 있다.

④ 상이한 애플리케이션 간 통신을 비동기 방식으로 지원한다.

미들웨어 : '운영체체-응용프로그램', '서버-클라이언트' 사이에서 다양한 서비스를 제공 (중간(Middle)에 위치하는 소프트웨어)
 - 서로 다른 기종의 하드웨어나 운영체제(OS), 네트워크 프로토콜 위에서 애플리케이션들이 서로 원활하게 통신할 수 있도록 다리 역할
DB: 클라이언트와 원격 DB 연결 (예: ODBC, JDBC).

RPC (원격 프로시저 호출, Remote Procedure call): 다른 컴퓨터의 프로시저를 내 것처럼 호출
 - 즉각적인 응답이 필요한 경우에 주로 사용

MOM 
(메시지 지향 미들웨어, Message Oriented Middleware): 메시지 기반의 비동기 서비스 제공.
 - MOM은 메시지를 큐에 쌓아두었다가 나중에 처리하는 비동기 방식
 - 보낸 즉시 답이 와야하는 '실시간/즉각적'업무보다는, 응답이 조금 늦더라도 데이터를 안전하게 보관하고 전달하는 업무에 적합
 - 예. 대량의 로그 수집, 작업 예약

TP Monitor 
(Transaction Processing Monitor): 항공권 예약 등 트랜잭션 처리 감시/제어.
ORB (객체 요청 브로커, Object Request Broker): 객체지향 시스템에서 객체 간 통신 지원 (예: CORBA).
WAS (웹 애플리케이션 서버, Web Application Server): 동적 콘텐츠 처리를 위한 미들웨어 (예: WebLogic, WebSphere)

답: 1번
MOM : 메시지 큐, 비동기, 지연 처리 가능, 안정성(전달 보장) 중시
RPC : 직접 호출, 동기, 실시간/즉각적 응답 중시
 

4. 자료 흐름도(DFD)를 작성하는 데 지침이 될 수 없는 항목은?

① 자료 흐름은 처리(Process)를 거쳐 변환될 때마다 새로운 이름을 부여한다.

② 어떤 처리(Process)가 출력 자료를 산출하기 위해서는 반드시 입력 자료가 발생해야 한다.

③ 자료 저장소에 입력 화살표가 있으면 반드시 출력 화살표도 표시되어야 한다.

④ 상위 단계의 처리(Process)와 하위 자료 흐름도의 자료 흐름은 서로 일치되어야 한다.

① 자료 흐름은 처리(Process)를 거쳐 변환될 때마다 새로운 이름을 부여한다.
 → 데이터가 처리(Process)를 거치면 그 내용이나 형태가 변하므로, 변환된 데이터에는 그에 맞는 새로운 이름을 붙여야 합니다.

② 어떤 처리(Process)가 출력 자료를 산출하기 위해서는 반드시 입력 자료가 발생해야 한다.
 → 보존의 원칙에 따라 처리(Process)가 결과를 내보내려면 반드시 필요한 입력 데이터가 들어와야 합니다. (입력 없이 출력만 있는 것은 불가능)

④ 상위 단계의 처리(Process)와 하위 자료 흐름도의 자료 흐름은 서로 일치되어야 한다.
 → 평형 원칙(Balancing Rule)에 따라 상위 단계의 처리에서 들어오고 나가는 자료 흐름은 하위 단계로 분할되었을 때도 그 개수와 종류가 유지되어야 합니다.

※ 자료 흐름도의 최하위 처리는 소단위명세서를 갖는다.

답: 3번
③ 자료 저장소에 입력 화살표가 있으면 반드시 출력 화살표도 표시되어야 한다.
 → 자료 저장소는 데이터를 단순히 저장하기만 할 수 있고(입력만 발생), 필요한 데이터를 읽어오기만 할 수도 있음(출력만 발생)
 → 따라서 입력 화살표가 있다고 해서 반드시 출력화살표가 동시에 존재하는 것은 아님
 

5. 설계 기법 중 하향식 설계 방법과 상향식 설계 방법에 대한 비교 설명으로 가장 옳지 않은 것은?

① 하향식 설계에서는 통합 검사 시 인터페이스가 이미 정의되어 있어 통합이 간단하다.

② 하향식 설계에서 레벨이 낮은 데이터 구조의 세부 사항은 설계 초기 단계에서 필요하다.

③ 상향식 설계는 최하위 수준에서 각각의 모듈들을 설계하고 이러한 모듈이 완성되면 이들을 결합하여 검사한다.

④ 상향식 설계에서는 인터페이스가 이미 성립되어 있지 않더라도 기능 추가가 쉽다.

하향식 통합 테스트 : 프로그램의 상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트하는 기법
 - 주요 제어 모듈을 기준으로 하여 아래 단계로 이동하면서 통합하는데, 깊이 우선 통합법이나 넓이 우선 통합법을 사용
 - 테스트 초기부터 사용자에게 시스템 구조를 보여줄 수 있음
 - 상위 모듈에서는 테스트 케이스를 사용하기 어려움.
 - 스텁(Stub) : 일시적으로 필요한 조건만을 가지고 임시로 제공되는 가짜 모듈의 역할, 드라이버(Driver)보다 작성하기 쉬움

상향식 통합 테스트 : 프로그램의 하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트하는 기법
 - 가장 하위 단계의 모듈부터 통합 및 테스트가 수행되므로 스텁(Stub)은 필요하지 않음
 - 하나의 주요 제어 모듈과 관련된 종속 모듈의 그룹인 클러스터(Cluster)가 필요
 - 드라이버(Driver) : 이미 존재하는 하위 모듈과 존재하지 않는 상위 모듈 간의 인터페이스 역할을 함

답: 4번
하양식 설계에 대한 설명
 

6. 소프트웨어 공학에서 모델링(Modeling)과 관련한 설명으로 틀린 것은?

① 개발팀이 응용 문제를 이해하는 데 도움을 줄 수 있다.

② 유지보수 단계에서만 모델링 기법을 활용한다.

③ 개발될 시스템에 대하여 여러 분야의 엔지니어들이 공통된 개념을 공유하는 데 도움을 준다.

④ 절차적인 프로그램을 위한 자료 흐름도는 프로세스 위주의 모델링 방법이다.

모델링 : 소프트웨어 개발 생명주기(SDLC)의 전 과정(분석 → 설계 → 구현 → 테스트 → 유지보수)에서 사용됨

① 개발팀이 응용 문제를 이해하는 데 도움을 줄 수 있다.
 → 모델링은 현실 세계의 복잡한 문제를 추상화(필요한 부분만 뽑아냄)하여 그림이나 기호로 표현합니다. 이를 통해 개발팀은 구현해야 할 시스템의 본질을 더 쉽게 파악할 수 있습니다.

③ 개발될 시스템에 대하여 여러 분야의 엔지니어들이 공통된 개념을 공유하는 데 도움을 준다.
 → 공통 언어의 역할: UML(통합 모델링 언어)과 같은 표준화된 모델을 사용하면 분석가, 설계자, 개발자, 고객이 서로 오해 없이 소통할 수 있는 매개체가 됩니다.

④ 절차적인 프로그램을 위한 자료 흐름도는 프로세스 위주의 모델링 방법이다.
 → 중요 개념: 자료 흐름도(DFD)는 시스템의 기능을 '프로세스(Process)' 중심으로 나타내며, 데이터가 어떻게 변하고 흐르는지를 보여줍니다. 이는 구조적(절차적) 분석 기법의 대표적인 도구입니다.


답: 2번
② 유지보수 단계에서'만' 사용하는 것이 아니라 전 과정에서 사용한다.
 

7. UML 모델에서 한 객체가 다른 객체에게 오퍼레이션을 수행하도록 지정하는 의미적 관계로 옳은 것은?

① Dependency

② Realization

③ Generalization

④ Association

관계 : 사물과 사물 사이의 연관성을 표현
연관 관계( Association ): 2개 이상의 사물이 서로 관련되어 있음을 표현
 - 두 클래스가 서로 장기적으로 관련되어 있을 때

집합 관계( Aggregation ) : 하나의 사물이 다른 사물에 포함되어 있는 관계를 표현

포함 관계( Composition ) : 집합 관계의 특수한 형태로, 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계를 표현

일반화 관계( Generalization ) : 일반화 관계는 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지를 표현
 - 상속 관계(부모-자식)


의존 관계( 
Dependency ): 연관 관계와 같이 사물 사이에 서로 연관은 있으나 필요에 의해 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계.
 - 한 클래스가 다른 클래스를 일시적으로 참조할 때 (키워드 : 매개변수)

실체화 관계( Realization ): 사물이 할 수 있거나 해야 하는 기능(행위, 인터페이스)으로 서로를 그룹화 할 수 있는 관계를 표현
 - 인터페이스를 실제로 구현할 때 (오퍼레이션(행위, 기능)을 수행하도록 지정하는 관계)

답: 2번
 

8. 분산 시스템을 위한 마스터-슬레이브(Master-Slave) 아키텍처에 대한 설명으로 틀린 것은?

일반적으로 실시간 시스템에서 사용된다.

② 마스터 프로세스는 일반적으로 연산, 통신, 조정을 책임진다.

③ 슬레이브 프로세스는 데이터 수집 기능을 수행할 수 없다.

④ 마스터 프로세스는 슬레이브 프로세스들을 제어할 수 있다.

파이프-필터 (Pipe-Filter) 패턴 (※단방향, 재사용성)
 - 데이터 스트림 절차의 각 단계를 필터(filter) 컨포넌트로 캡슐화하여 파이프(Pipe)를 통해 데이터를 전송하는 패턴
 - 필터 컴포넌트는 재사용성이 좋고, 추가가 쉬워 확장이 용이하다.
 - 필터 컴포넌트들을 재배치하여 다양한 파이프라인을 구축하는 것이 가능하다.
 - 파이프-필터 패턴은 데이터 변환, 버퍼링, 동기화 등에 주로 사용된다.
 - 대표적으로 UNIX의 쉘(Shell)이 있다.


모델-뷰-컨트롤러 (MVC, Model-View-Controller) 패턴
 - 3개의 서브시스템(모델, 뷰, 제어(컨트롤러))으로 구성 
 - 모델 (Model) : 서브시스템의 핵심 기능과 데이터를 보관
 - 뷰 (View) : 사용자에게 정보를 표시함
 - 컨트롤러 (Controller) : 사용자로부터 입력된 변경 요청을 처리하기 위해 모델에게 명령을 보냄

마스터-슬레이브 (Master-Slaver) 패턴
 - 마스터 컴포넌트에서 슬레이브 컴포넌트로 작업을 분할한 후, 슬레이브 컴포넌트에서 처리된 결과물을 다시 돌려받는 방식으로 작업을 수행
 - 장애 허용 시스템과 병렬 컴퓨팅 시스템에서 주로 활용
 - 슬레이브(Slave)는 마스터(Master)의 통제를 받으며 실제적인 작업을 수행하는 주체 (마스터 = 관리/명령, 슬레이브 = 실행/보고)
 - 슬레이브(Slaver)는 데이터 수집 뿐만 아니라 연산, 장치 제어 등 마스터가 할당한 다양한 업무를 수행(※데이터 수집 기능도 한다)

브로커 (Broker) 패턴
 - 사용자가 원하는 서비스와 특성을 브로커 컴포넌트에 요청하면 브로커 컴포넌트가 요청에 맞는 컴포넌트와 사용자를 연결
 - 분산 환경 시스템에서 주로 활용

피어-투-피어 (Peer-To-Peer) 패턴
 - 피어(Peer)를 하나의 컴포넌트로 간주하며, 각 피어는 서비스를 호출하는 클라이언트가 될 수도, 서비스를 제공하는서버가 될 수도 있는 패턴

이벤트-버스 (Event-Bus) 패턴
 - 소스가 특정 채널에 이벤트 메시지를 발행(Publish)하면, 해당 채널을 구독(Subscribe)한 리스터들이 메시지를 받아 이벤트를 처리하는 방식

블랙보드 (Blackboard) 패턴
 - 모든 컴포넌트들이 공유 데이터 저장소와 블랙보드 컴포넌트에 접근이 가능한 형태로, 컴포넌트들은 검색을 통해 블랙보드에서 원하는 데이터를 찾을 수 있음
 - 음성 인식, 차량 식별, 신호 해석 등에 주로 활용

인터프리터 (Interpreter) 패턴
 - 프로그램 코드의 각 라인을 수행하는 방법을 지정하고, 기호마다 클래스를 갖도록 구성됨

답: 3번
 

9. 객체지향 분석 방법론 중 Coad-Yourdon 방법에 해당하는 것은?

① E-R 다이어그램을 사용하여 객체의 행위를 데이터 모델링하는 데 초점을 둔 방법이다.

② 객체, 동적, 기능 모델로 나누어 수행하는 방법이다.

③ 미시적 개발 프로세스와 거시적 개발 프로세스를 모두 사용하는 방법이다.

④ Use-Case를 강조하여 사용하는 방법이다.

객체지향 분석의 방법론
Rumbaugh (럼바우) 방법 : 가장 일반적으로 사용되는 방법으로 분석 활동을 객체 모델, 동적 모델, 기능 모델로 나누어 수행
Booch (부치) 방법 : 미시적 개발 프로세스와 거시적 개발 프로세스를 모두 사용하는 분석 방법, 클래스와 객체들을 분석 및 식별하고 클래스의 속성과 연산을 정의
Jacobson 방법 : Use case를 강조하여 사용하는 분석 방법
Coad와 Yourdon 방법 : E-R 다이어그램을 사용하여 객체의 행위를 모델링하며, 객체 식별, 구조 식별, 주제 정의, 속성과 인스턴스 연결 정의, 연산과 메시지 연결 정의 등의 과정으로 구성하는 기법
Wirfs-Brock 방법 : 분석과 설계 간의 구분이 없고, 고객 명세서를 평가해서 설계 작업까지 연속적으로 수행하는 기법

답: 1번
럼바우는 객동기
코드 에러(coad-ER)
미시적/거시적 →부치
 

10. 데이터 흐름도(DFD)의 구성 요소에 포함되지 않는 것은?

① Process

② Data Flow

③ Data Store

④ Data Dictionary

자료 흐름도 (DFD) : 요구사항 분석에서 자료의 흐름 및 변환 과정과 기능을 도형 중심으로 기술하는 방법으로 자료 흐름 그래프, 버블 차트라고도 한다.
 - 프로세스 ( Process ) : 원
 - 자료 흐름 ( Data Flow ) : 화살표
 - 자료 저장소( Data Store ) : 평행선
 - 단말 (Terminator ) : 사각형

※DFD는 시간의 흐름을 표현하지 못 한다. (20년 4회 기출)

답: 4번
 

11. UML의 기본 구성 요소가 아닌 것은?

① Things

② Terminal

③ Relationship

④ Diagram

UML : 시스템 분석, 설계, 구현 등 시스템 개발 과정에서 시스템 개발자와 고객 또는 개발자 상호간의 의사소통이 원활하게 이루어지도록 표준화한 대표적인 객체지향 모델링 언어

UML 구성요소
 - 사물 (Things)
 - 관계 (Relationship)
 - 다이어그램 (Diagram)

답: 2번
주로 터미널(Termial), 객체(Object), 링크(Link)를 오답으로 낸다.
 

12. 한 모듈 내의 각 구성 요소들이 공통의 목적을 달성하기 위하여 서로 얼마나 관련이 있는지의 기능적 연관의 정도를 나타내는 것은?

① Cohesion

② Coupling

③ Structure

④ Unity

응집도(Cohesion): 모듈 내부의 요소들이 하나의 목적을 위해 얼마나 뭉쳐있는가. 높을수록(단단할수록) 좋음
 - 응집도 순서 : (낮음) 우연(Coincidental) → 논리(Logical) → 시간(Temporal) → 절차(Procedural) → 교환(통신)(Communication) → 순차(Sequential) → 기능(Functional) (높음)
 - 암기tip :  시절에 먹었던 통한  임밥

기능적 (Functional) : 모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우의 응집도
순차적 (Sequential) : 모듈 내 하나의 활동으로부터 나온 출력 데이터를 그 다음 활동의 입력 데이터로 사용할 경우의 응집도
교환(통신)적 (Communication) : 동일한 입력과 출력을 사용하여 서로 다른 기능을 수행하는 구성 요소들이 모였을 경우의 응집도
절차적 (Procedural) : 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행할 경우의 응집도
시간적 (Temporal) : 특정 시간에 처리되는 몇 개의 기능을 모아 하나의 모듈로 작성할 경우의 응집도
논리적 (Logical) : 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들로 하나의 모듈이 형성되는 경우의 응집도
우연적 (Coincidental) : 모듈 내부의 각 구성 요소들이 서로 관련 없는 요소로만 구성된 경우의 응집도

결합도
 - 결합도 순서 : (결합도 낮음) 자료 → 스탬프 → 제어 → 외부 → 공통 → 내용 (결합도 높음)
 - 암기tip : 테(자)스  저래 유랑 닮았데 

자료 (Data) : 모듈 간의 인터페이스가 자료 요소로만 구성될 때
스탬프 (Stamp) : 모듈 간의 인터페이스로 배열이나 레코드 등의 자료 구조가 전달될 때
제어 (Control) : 어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해 제어 신호를 이용하여 통신하거나 제어 요소를 전달
외부 (External) : 어떤 모듈에서 선언한 데이터(변수)를 외부의 다른 모듈에서 참조할 때
공통(공유) (Common) : 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때
내용 (Content) : 한 모듈이 다른 모듈의 내부 기능 및 그 내부 자료를 직접 참조하거나 수정할 때

답: 1번
※①응집도 ②결합도를 고르는 문제다.
② Coupling (결합도)
③ Structure (구조)
④ Unity (통일성)
 

13. 객체 지향 소프트웨어 공학에서 하나 이상의 유사한 객체들을 묶어서 하나의 공통된 특성을 표현한 것은?

① 트랜잭션

② 클래스

③ 시퀀스

④ 서브루틴

클래스 (Class) : 공통된 속성과 연산(행위)을 갖는 객체의 집합으로, 객체의 일반적인 타입(Type)을 의미
 - 클래스는 각각의 객체들이 갖는 속성과 연산을 정의하고 있는 틀이다.
 - 클래스는 객체지향 프로그램에서 데이터를 추상화하는 단위이다.
 - 클래스에 속한 각각의 개체를 인스턴스(Instance)라 하며, 클래스로부터 새로운 객체를 생성하는 것을 인스턴스화라고 한다.

트랜잭션 (Transaction)
 - 데이터베이스(DB)에서 하나의 논리적 기능을 수행하기 위한 작업의 단위입니다. (성질: ACID - 원자성, 일관성, 고립성, 지속성)

시퀀스 (Sequence)
 - 순서나 나열을 의미합니다. UML에서는 객체 간의 메시지 교환을 시간 흐름에 따라 나타내는 '시퀀스 다이어그램'으로 자주 등장합니다.

서브루틴 (Subroutine)
 - 프로그램 내에서 반복되는 특정 작업을 별도로 분리해 놓은 코드 블록입니다. 객체지향보다는 절차지향 프로그래밍에서 주로 쓰이는 용어입니다.

답: 2번
'객체지향의 기본 개념' 을 번갈아 가며 묻는다.
객체 (Object) : 데이터(속성)와 이를 처리하기 위한 연산(메소드)의 결합체
클래스 (Class) : 공통된 특성을 가진 객체들을 의사소통하기 위해 정의한 것 (객체의 타입)
메시지 (Message) : 객체들 간의 상호작용을 위한 수단 (객체에게 어떤 행위를 하도록 지시하는 명령)
 

14. UI 설계 원칙에서 누구나 쉽게 이해하고 사용할 수 있어야 한다는 것은?

① 유효성

② 직관성

③ 무결성

④ 유연성

사용자 인터페이스의 기본 원칙(UI 설계 원칙)
직관성 : 누구나 쉽게 이해하고 사용할 수 있어야 함
유효성 : 사용자의 목적을 정확하고 완벽하게 달성해야 함
학습성 : 누구나 쉽게 배우고 익힐 수 있어야 함
유연성 : 사용자의 요구사항을 최대한 수용하고 실수를 최소화해야 함

답: 2번
 

15. 대표적으로 DOS 및 UNIX 등의 운영체제에서 조작을 위해 사용하던 것으로, 정해진 명령 문자열을 입력하여 시스템을 조작하는 사용자 인터페이스(User Interface)는?

① GUI(Graphical User Interface)

② CLI(Command Line Interface)

③ CUI(Cell User Interface)

④ MUI(Mobile User Interface)

CLI (Command Line Interface) : 명령과 출력이 텍스트 형태로 이뤄지는 인터페이스 (직접 명령어를 텍스트 형태로 입력)
GUI (Graphicla User Interface) : 아이콘이나 메뉴를 마우스로 선택하여 작업을 수행하는 그래픽 환경의 인터페이스
NUI (Natural User Interface) : 사용자의 말이나 행동으로 기기를 조작하는 인터페이스 (사람의 신체 부위 이용)
VUI (Voice User Interface) : 사람의 음성으로 기기를 조작하는 인터페이스
OUI (Organic User Interface) : 모든 사물과 사용자 간의 상호작용을 위한 인터페이스로, 소프트웨어가 아닌 하드웨어 분야에서 사물 인터넷, 가상현실, 증강현실, 혼합현실 등과 함께 대두되고 있음.

답: 2번
 

16. 다음 중 애자일(Agile) 소프트웨어 개발에 대한 설명으로 틀린 것은?

① 공정과 도구보다 개인과의 상호작용을 더 가치 있게 여긴다.

② 동작하는 소프트웨어보다는 포괄적인 문서를 가치 있게 여긴다.

③ 계약 협상보다는 고객과의 협력을 가치 있게 여긴다.

④ 계획을 따르기보다 변화에 대응하기를 가치 있게 여긴다.

애자일 개발 4가지 핵심 가치
 - 프로세스와 도구보다는 개인과 상호작용에 더 가치를 둔다.
 - 방대한 문서보다는 실행되는 SW에 더 가치를 둔다.
 - 계약 협상보다는 고객과 협업에 더 가치를 둔다.
 - 계획을 따르기 보다는 변화에 반응하는 것에 더 가치를 둔다.

답: 2번
 

17. GoF(Gang of Four) 디자인 패턴을 생성, 구조, 행동 패턴의 세 그룹으로 분류할 때, 구조 패턴이 아닌 것은?

① Adapter 패턴

② Bridge 패턴

③ Builder 패턴

④ Proxy 패턴

생성(Creational) 패턴 (5개): 상 팩토리, 더, 토리 메서드, 로토타입, 글톤 (암기: 추빌팩프싱)
구조(Structural) 패턴 (7개): 댑터, 릿지, 포지트, 코레이터, 사드, 라이웨이트, 록시 (암기: 어브컴데퍼플프)
행위(Behavioral) 패턴 (11개): 책임 연쇄, 커맨드, 인터프리터, 반복자, 중재자, 메멘토, 옵저버, 상태, 전략, 템플릿 메서드, 방문자

답: 3번
빌더(Builder)는 생성 패턴
 

18. 코드 설계에서 일정한 일련번호를 부여하는 방식의 코드는?

① 연상 코드

② 블록 코드

③ 순차 코드

④ 표의 숫자 코드

코드의 종류
순차 코드: 자료의 발생 순서, 크기 순서 등 일정 기준에 따라서 최초의 자료부터 차례로 일련번호를 부여하는 방법
블록 코드: 코드화 대상 항목 중에서 공통성이 있는 것끼리 블록으로 구분하고, 각 블록 내에서 일련번호를 부여하는 방법
10진 코드: 코드화 대상 항목을 0~9까지 10진 분할하고, 다시 그 각각에 대하여 10진 분할하는 방법을 필요한 만큼 반복하는 방법
그룹 분류 코드: 코드화 대상 항목을 일정 기준에 따라 대분류, 중분류, 소분류 등으로 구분하고 각 그룹 안에서 일련번호를 부여하는 방법
연상 코드: 코드화 대상 항목의 명칭이나 약호와 관계있는 숫자나 문자, 기호를 이용하여 코드를 부여하는 방법
표의 숫자 코드: 코드화 대상 항목의 성질, 즉 길이, 넓이, 부피, 지름, 높이 등의 물리적 수치를 그대로 코드에 적용시키는 방법
합성 코드: 필요한 기능을 하나의 코드로 수행하기 어려운 경우 2개 이상의 코드를 조합하여 만드는 방법

코드의 기본 기능 (20년 2회)
 - 식별 기능 : 다른 것과 구별할 수 있게 해주는 가장 기초적인 기능 (예. 학번, 주민번호)
 - 분류 기능 : 공통된 특징을 가진 데이터끼리 그룹화
 - 배열 기능 : 일정한 순서로 나열할 수 있게 해주는 기능
 - (오답) 복잡성

답: 3번
(주요 키워드) 주로 4개가 돌아가면서 나옴
연상 코드 : 약자, 명칭의 일부
블록 코드 : 공통성, 범위 지정
순차 코드 : 순서대로, 일련번호, 1 2 3번호
표의 숫자 코드 : 물리적 수치
 

19. 입력되는 데이터를 컴퓨터의 프로세서가 처리하기 전에 미리 처리하여 프로세서가 처리하는 시간을 줄여주는 프로그램이나 하드웨어를 말하는 것은?

① EAI

② FEP

③ GPL

④ Duplexing

EAI (Enterprise Application Integration, 기업 애플리케이션 통합)
 - 기업 내에 설치된 서로 다른 플랫폼 및 애플리케이션들을 통합하여 유기적으로 데이터를 공유할 수 있게 해주는 기술입니다.
 - 키워드: '상호 운용성', '통합 아키텍처', '어댑터(Adapter)'.

FEP (Front-End Processor, 전처리기)
 - 입력되는 데이터를 중앙 처리 장치(Main CPU)가 처리하기 전에 미리 처리(가공, 변환, 제어)하여 컴퓨터의 부담을 줄여주는 보조 프로세서입니다.
 - 통신 제어, 데이터 형식 변환, 오류 검출 등을 수행하여 본체 컴퓨터가 원래의 업무 처리에만 집중할 수 있게 돕습니다. 주로 은행의 대규모 계정계 시스템 등에서 외부 기관과의 통신을 처리할 때 많이 사용됩니다.

③ GPL (General Public License)
 - 리누스 토발즈가 리눅스 커널을 배포할 때 사용한 대표적인 오픈 소스 소프트웨어 라이선스입니다.
 - 누구나 소스코드를 보고 수정할 수 있지만, 수정본을 배포할 때도 반드시 소스코드를 공개해야 합니다.

④ Duplexing (이중화)
 - 시스템의 신뢰성을 높이기 위해 장비를 두 개(이중)로 구성하는 방식입니다. 하나가 고장 나더라도 다른 하나가 즉시 업무를 이어받아 중단 없는 서비스를 가능하게 합니다.
 - 키워드: '가용성 향상', '고가용성(HA)'

답: 2번
 

20. 소프트웨어 아키텍처와 관련한 설명으로 틀린 것은?

① 파이프 필터 아키텍처에서 데이터는 파이프를 통해 양방향으로 흐르며, 필터 이동 시 오버헤드가 발생하지 않는다.

② 외부에서 인식할 수 있는 특성이 담긴 소프트웨어의 골격이 되는 기본 구조로 볼 수 있다.

③ 데이터 중심 아키텍처는 공유 데이터 저장소를 통해 접근자 간의 통신이 이루어지므로 각 접근자의 수정과 확장이 용이하다.

④ 이해 관계자들의 품질 요구사항을 반영하여 품질 속성을 결정한다.

파이프-필터 패턴(Pipe-Filter Pattern) : 데이터 스트림 절차의 각 단계를 필터(filter) 컨포넌트로 캡슐화하여 파이프(Pipe)를 통해 데이터를 전송하는 패턴 (※단방향으로 흐른다, 오버헤드 발생한다)
 - 필터 컴포넌트는 재사용성이 좋고, 추가가 쉬워 확장이 용이하다.
 - 필터 컴포넌트들을 재배치하여 다양한 파이프라인을 구축하는 것이 가능하다.
 - 파이프-필터 패턴은 데이터 변환, 버퍼링, 동기화 등에 주로 사용된다.
 - 대표적으로 UNIX의 쉘(Shell)이 있다.

② 소프트웨어의 골격이 되는 기본 구조
 - 소프트웨어 아키텍처의 가장 표준적인 정의입니다. 시스템의 구성 요소와 그들 간의 관계를 설계하는 전사적인 설계도를 의미합니다.

③ 데이터 중심 아키텍처
 - Repository(저장소) 패턴이라고도 불립니다. 중앙의 공유 데이터 저장소를 두고 여러 모듈(접근자)이 접근하는 방식입니다. 새로운 모듈을 추가하거나 데이터를 확장하는 것이 매우 쉽다는 장점이 있습니다.

④ 이해 관계자들의 품질 속성 결정
 - 아키텍처 설계의 목적은 단순히 기능을 구현하는 것을 넘어, 사용자와 개발자 등 이해 관계자들이 요구하는 품질(성능, 보안성, 유지보수성 등)을 만족시키는 구조를 만드는 것입니다.

답: 1번

정보처리기사 필기 기출문제
24년 3회 1과목 2과목 3과목 4과목 5과목
24년 2회 1과목 2과목 3과목 4과목 5과목
24년 1회 1과목 2과목 3과목 4과목 5과목
23년 3회 1과목 2과목 3과목 4과목 5과목
23년 2회 1과목 2과목 3과목 4과목 5과목
23년 1회 1과목 2과목 3과목 4과목 5과목