제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과목 |
'자격증 요약 > 정보처리기사' 카테고리의 다른 글
| [24년 2회 2과목] 정보처리기사 필기 문제 풀이 (0) | 2026.01.19 |
|---|---|
| [24년 3회 2과목] 정보처리기사 필기 문제 풀이 (0) | 2026.01.16 |
| [23년 2회 1과목] 정보처리기사 필기 문제 풀이 (2) | 2026.01.14 |
| [23년 3회 1과목] 정보처리기사 필기 문제 풀이 (1) | 2026.01.13 |
| [24년 1회 1과목] 정보처리기사 필기 문제 풀이 (1) | 2026.01.13 |
