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

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

문성 2026. 1. 13. 13:15

제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. 요구공학(Requirements Engineering)에 대한 설명으로 옳지 않은 것은?

① 무엇을 개발해야 하는지 요구사항을 정의하고, 분석 및 관리하는 프로세스를 연구하는 학문이다.

② 사용자 요구사항이 더욱 복잡해지고 잦은 변경이 발생하자 이를 적절하게 관리하기 위해 등장하였다.

③ 요구사항 개발의 한 요소이다.

④ 품질 개선과 프로젝트 실패의 최소화를 목적으로 한다.

요구공학 : 요구사항과 관련된 모든 활동을 아우르는 전체 프로세스를 의미
 → '요구사항 개발'이 요구공학에 포함되는 것이지, 요구공학이 요구사항 개발의 한 요소가 아니다.

 - (정의) 무엇을 개발해야 하는지 요구사항을 정의하고, 분석 및 관리하는 프로세스를 연구하는 학문이다.
 - (배경) 사용자 요구사항이 더욱 복잡해지고 잦은 변경이 발생하자 이를 적절하게 관리하기 위해 등장하였다.
 - (목적) 품질 개선과 프로젝트 실패의 최소화를 목적으로 한다.

답: 3번
'공학'이라는 단어가 붙으면 가장 큰 단위의 관리 체계를 의미한다고 기억

 

2. XP(eXtreme Programming)에 대한 설명으로 옳지 않은 것은?

① 릴리즈 기간을 짧게 반복하여 고객의 요구 변화에 빠르게 대응한다.

② 코드들은 하나의 작업이 마무리될 때마다 지속적으로 통합한다.

③ 테스트가 지속적으로 진행될 수 있도록 테스트 자동화 도구를 사용한다.

④ 개발 책임자가 모든 책임을 가지므로 팀원들은 책임 없이 자유로운 개발이 가능하다.

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

답: 4번
XP는 공동 생산과 존중을 강조 → 특정 책임자 한 명에게 권한이 쏠리는 것이 아니라 팀원 전체가 코드에 대한 권한과 책임을 공유

 

3. UML에서 활용되는 다이어그램의 이름과 설명의 연결이 올바르지 않은 것은?

① 클래스 다이어그램 : 시퀀스 다이어그램과 같이 동작에 참여하는 객체들이 주고받는 메시지를 표현하는데, 메시지뿐만 아니라 객체들 간의 연관까지 표현한다.

② 배치 다이어그램 : 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현한다.

③ 유스케이스 다이어그램: 사용자의 요구를 분석하는 것으로, 기능 모델링 작업에 사용한다.

④ 활동 다이어그램: 시스템이 어떤 기능을 수행하는지 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현한다.

UML다이어그램 종류
 - 정적 : 래스, 체, 포넌트, 치, 합구조, 키지 (클객컴배복패)
 - 동적 : 유스케이스, 상태, 활동, 시퀸스, 커뮤니케이션

정적 다이어그램 (구조적 다이어그램) : 시스템의 정지된 상태, 구조를 표현
 - 클래스(Class) : 시스템 내 클래스들의 속성, 메서드 및 클래스 간의 관계를 표현하는 가장 대표적인 다이어그램
 - 객체(Object) : 특정 시점에 클래스에 의해 생성된 인스턴스(객체)들 사이의 관계를 표현
 - 컴포넌트(Component) : 물리적인 컴포넌트(파일, 라이브러리 등) 간의 구조와 의존 관계를 표현
 - 배치(Deployment) : 결과물, 프로세스 등이 실제 물리적인 하드웨어(노드)에 어떻게 배치되는지 표현
 - 복합구조(Composite Structure) : 클래스나 컴포넌트 내부의 복잡한 구조를 상세히 표현
 - 패키지(Package) : 모델 요소들을 그룹화한 패키지 간의 의존 관계를 표현

동적 다이어그램 (행위 다이어그램) : 시스템의 변화, 객체 간의 상호작용이나 동작을 표현
 - 유스케이스(Use Case) : 사용자(Actor)와 시스템 간의 상호작용을 기능 관점에서 표현하며, 요구사항 분석에 사용. (+기능모델링)
 - 순차/시퀀스(Sequence) : 객체 간에 주고받는 메시지를 시간의 흐름에 따라 순차적으로 표현.
 - 커뮤니케이션(Communication) : 메시지뿐만 아니라 객체들 간의 연관 관계를 중심으로 상호작용을 표현
 - 상태(State) : 객체가 가질 수 있는 상태와 상태 간의 전이 과정을 표현
 - 활동(Activity) : 시스템이 수행하는 로직의 흐름, 처리 순서, 조건 분기 등을 흐름도(Flowchart)처럼 표현
 - 상태 머신(State Machine) : 이벤트에 따른 객체의 상태 변화를 모델링

답: 1번
클래스는 관계를 표현
커뮤니케이션은 메시지, 객체들 간의 연관 관계를 표현

 

4. 다음 설명에 해당하는 도표는?

- 시스템의 기능을 여러 개의 고유 모듈들로 분할하여 이들 간의 인터페이스를 계층 구조로 표현한 것으로, 가시적 도표(Visual Table of Contents), 총체적 도표(Overview Diagram), 세부적 도표(Detail Diagram)가 있다.

 

① Flow Chart

② Burn-down Chart

③ Visual Diagram

④ HIPO Chart

Flow Chart (흐름도)
 - 정의 : 프로그램이나 프로세스의 논리적인 절차와 흐름을 표준화된 기호로 표현한 도표
 - "프로그램의 로직을 순차, 선택, 반복 구조를 사용하여 시각적으로 표현한 도표"
 - "제어 흐름을 파악하기 쉽지만, 시스템이 복잡해지면 도표가 너무 방대해지는 단점이 있다."

Burn-down Chart (번다운 차트)
 - 정의 : 애자일(Agile), 스크럼(Scrum) 기법에서 프로젝트 진행 상황을 나타내는 그래프
 - "남아있는 작업 시간(잔여 업무량)을 그래픽으로 표현하여 프로젝트가 예정대로 끝날지 예측하는 도구"
 - "가로축은 시간(날짜), 세로축은 남은 업무량을 나타내며, 시간이 지날수록 그래프가 아래로 내려가는(Buren-down) 형태"
 - ※ 암기 TIP : 불타서 없어진다(Burn-down) = 남은 일이 줄어든다

HIPO Chart 의 종류
 - 가시적 도표 ( Visual Diagram )
 - 총체적 도표 ( Overview Diagram )
 - 세부적 도표 ( Detail Diagram )

Gantt Chart (간트 차트)
 - "프로젝트의 각 공정(작업)이 언제 시작해서 언제 끝나는지를 막대그래프 형태로 나타낸 일정 관리 도구"
 - "이정표, 작업 일정, 기간 등을 확인하기 좋으며 수평 막대로 표시"

답: 4번
(주요 키워드)
HIPO : 입력/처리/출력, 가시적/총체적/세부적, 하향식
Burn-down : 애자일/스크럼, 남은 업무량
Gantt : 일정 관리, 막대그래프

 

5. 불필요한 메모리의 낭비를 최소화하기 위해 여러 프로세스가 동시에 참조할 수는 없지만 어디서든 참조할 수 있는 객체를 생성하는 디자인 패턴은?

① 싱글톤(Singleton) 패턴

② 옵서버(Observer) 패턴

③ 프로토타입(Prototype) 패턴

④ 상태(State) 패턴

싱글톤 (Singleton) 패턴
 - 개념 : 시스템 내에서 특정 클래스의 인스턴스를 단 하나만 생성하여, 어디서든 그 인스턴스에 접근할 수 있도록 하는 패턴
 - 환경설정 관리자, 로그 기록기, 데이터베이스 연결 풀처럼 여러 개가 있을 필요 없이 하나만 공유해서 쓰면 되는 경우에 메모리 낭비를 줄이기 위해 사용
 - 키워드 : 하나의 객체, 유일한 인스턴스, 공유, 메모리 절약

옵서버 (Observer) 패턴
 - "한 객체의 상태가 변화하면 그 객체에 의존성 있는 다른 객체들에게 연락이 가고 자동으로 내용이 갱신되는 방식"
 - 키워드 : 일대다(1:N) 관계, 상태 변화 감지, 구독(Subscribe)

프로토타입 (Prototype) 패턴
 - "원본 객체를 복제하여 새로운 객체를 생성하는 방식"
 - 키워드 : 객체 복제(Clone, 콜론), 생성 비용 절감

상태 (State) 패턴
 - "객체의 내부 상태에 따라 스스로 행동을 변경하게 하는 방식"
 - 키워드 : 상태를 객체화, 조건문(if/switch) 감소

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

답: 1번
디자인 패턴 중 싱글톤이 출제빈도가 가장 높음

 

6. 객체지향 기법에서 객체가 메시지를 받아 실행해야 할 객체의 구체적인 연산을 정의한 것은?

① Entity

② Method

③ Instance

④ Class

Entity (엔티티/개체): 데이터베이스에서 주로 사용하는 용어로, 관리해야 할 대상(사람, 사물, 사건 등)을 의미

Method (메서드): 객체가 수행하는 구체적인 연산(동작)
 - 객체지향에서 객체들끼리 '메시지'를 주고 받으며 소통함. 메시지를 받은 객체가 실제로 실행하는 구체적인 로직(함수)이 메서드

Instance (인스턴스): 클래스라는 설계도를 바탕으로 메모리에 실제로 생성된 객체를 의미합니다.
 - "붕어빵 틀(클래스)로 찍어낸 붕어빵(인스턴스)" 비유를 기억하세요.


Class (클래스): 객체를 만들기 위한 설계도입니다. 공통된 속성과 연산을 갖는 객체들의 집합을 정의한 것

답: 2번
(주요 키워드)
클래스 : 설계도
메서드 : 동작/연산/함수
인스턴스 : 실제 구현체

 

7. 바람직한 소프트웨어 설계 지침이 아닌 것은?

① 결합도를 최소화하고 응집도를 최대화한다.

② 복잡도와 중복성을 줄이고 일관성을 유지시킨다.

③ 하나의 입구와 하나의 출구를 갖도록 해야 한다.

④ 모듈의 크기를 가능한 작게 구성하여 병행성 수준을 높여야 한다.

결합도 최소화, 응집도 최대화(★)
 - 결합도(Coupling): 모듈 간의 관계가 얼마나 끈끈한가. 낮을수록(독립적일수록) 좋음

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

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

복잡도와 중복성 감소: 당연히 설계는 단순하고 일관성이 있어야 유지보수가 쉬움

하나의 입구와 하나의 출구: 프로그램의 로직이 꼬이지 않도록 입구와 출구를 단일화하는 것이 구조적 설계의 기본

모듈의 크기는 적정 수준을 유지: 모듈을 너무 작게 쪼개면 모듈의 개수가 너무 많아짐, 이렇게 되면 모듈 간의 통합 비용(연결하고 관리하는 비용)이 지나치게 커지게 됨. 너무 커도 이해하기 힘들지만, 너무 작아도 관리 효율이 떨어지기 때문 

답: 4번
※ 모듈의 크기는 적정 수준을 유지해야하지, 작게 구성하면 관리 효율이 떨어짐

 

8. 객체지향 설계 원칙에 대한 설명 중 틀린 것은?

① OCP: 기존의 코드를 변경하지 않고 기능을 추가할 수 있도록 설계해야 한다는 원칙

② LSP: 자식 클래스는 최소한 자신의 부모 클래스에서 가능한 행위는 수행할 수 있어야 한다는 설계 원칙

③ DIP: 각 객체들 간의 의존 관계가 성립될 때, 추상성이 낮은 클래스보다 추상성이 높은 클래스와 의존 관계를 맺어야 한다는 원칙

④ ISP: 객체는 단 하나의 책임만 가져야 한다는 원칙

객체지향 설계 원칙 (SOLID)
단일 책임 원칙 (SRP, Single Responsibility) : 객체는 단 하나의 책임만 가져야 한다.
개방-폐쇄 원칙 (OCP, Open-Closed) : 기존의 코드를 변경하지 않고 기능을 추가할 수 있도록 설계해야한다.
리스코프 치환 원칙 (LSP, Liskov Substitution) : 자식 클래스는 최소한 자신의 부모 클래스에서 가능한 행위는 수행할 수 있어야 한다.
인터페이스 분리 원칙 (ISP, Interface Segregation) : 자신이 사용하지 않는 인터페이스와 의존 관계를 맺거나 영향을 받지 않아야 한다.
의존 역전 원칙 (DIP, Dependency Iversion) : 각 객체들 간의 의존 관계가 성립될 때, 추상성이 낮은 클래스보다 추상성이 높은 클래스와 의존 관계를 맺어야 한다.

답: 4번
보기 설명은 SRP이다. ISP가 아니라

 

9. 객체지향 분석 방법론 중 미시적(Micro) 개발 프로세스와 거시적(Macro) 개발 프로세스를 모두 사용하는 분석 방법으로, 클래스와 객체들을 분석 및 식별하고 클래스의 속성과 연산을 정의하는 것은?

① Coad와 Yourdon 방법

② Booch 방법

③ Jacobson 방법

④ Wirfs-Brocks 방법

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

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

 

10. HIPO Chart에 대한 설명으로 틀린 것은?

① HIPO 차트 종류에는 가시적 도표, 총체적 도표, 세부적 도표가 있다.

② 충분한 사전 지식과 학습이 없으면 이해하기 어렵다.

③ 기능과 자료의 의존 관계를 동시에 표현할 수 있다.

④ 하향식 소프트웨어 개발을 위한 문서화 도구이다.

HIPO : 시스템의 분석 및 설계나 문서화할 때 사용되는 기법, 시스템 실행 과정인 입력, 처리, 출력의 기능을 나타냄
 - 기본 시스템 모델은 입력, 처리, 출력으로 구성되며 하향식 소프트웨어 개발을 위한 문서화 도구
 - 체계적인 문서 관리가 가능
 - 기호, 도표 등을 사용하므로 보기 쉽고 이해하기도 쉽다.
 - 기능과 자료의 의존 관계를 동시에 표현할 수 있다.
 - 변경, 유지보수가 용이하다.

HIPO Chart 의 종류
 - 가시적 도표 ( Visual Diagram )
 - 총체적 도표 ( Overview Diagram )
 - 세부적 도표 ( Detail Diagram )

답: 2번

 

11. 코드 설계에서 코드화 대상 항목의 성질, 즉 길이, 넓이, 부피, 지름, 높이 등의 물리적 수치를 그대로 코드에 적용시키는 방식의 코드는?

① 연상 코드

② 블록 코드

③ 순차 코드

④ 표의 숫자 코드

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

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

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

 

12. 애자일 소프트웨어 개발 기법의 가치가 아닌 것은?

① 계획을 따르기보다는 변화에 대응하는 것에 더 가치를 둔다.

② 실제 작동하는 소프트웨어보다는 이해하기 좋은 문서에 더 가치를 둔다.

③ 계약 협상보다는 고객과의 협업에 더 가치를 둔다.

④ 프로세스의 도구보다는 개인과 상호작용에 더 가치를 둔다.

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

답: 2번

 

13. Rayleigh-Norden 곡선의 노력 분포도를 이용한 프로젝트 비용 산정 기법은?

① Putnam 모형

② 델파이 모형

③ COCOMO 모형

④ 기능점수 모형

Putnam 모형: Rayleigh-Norden 곡선 기반. 시간에 따른 인력 투입량을 계산 (키워드 : Rayleigh-Norden, SLIM(생산성 측정 도구)
COCOMO 모형: 보헴(Boehm)이 제안. LOC(코드 라인 수)에 따라 비용을 산정 (Organic, Semi-detached, Embedded 모드로 구분)
델파이 모형 (Delphi): 한 명의 전문가가 아닌 여러 전문가의 의견을 종합하여 산정하는 하향식 기법
기능점수 모형 (Function Point): 소프트웨어의 기능(가중치)을 기준으로 산정. 사용자가 체감하는 기능을 수치화


답: 1번
※ 푸딩(Putnam)은 레일리(Rayleigh) 곡선처럼 생겼다.

 

14. 객체지향의 주요 개념에 대한 설명으로 틀린 것은?

① 상속은 상위 클래스에서 속성이나 연산을 전달받아 새로운 형태의 클래스로 확장하여 사용하는 것을 의미한다.

② 객체는 실세계에 존재하거나 생각할 수 있는 것을 말한다.

③ 캡슐화는 두 개 이상의 객체(클래스)들이 상호 참조하는 관계이다.

④ 다형성은 상속받은 여러 개의 하위 객체들이 다른 형태의 특성을 갖는 객체로 이용될 수 있는 성질이다.

객체지향의 주요 개념
객체 : 객체는 데이터와 데이터를 처리하는 함수를 묶어 놓은(캡슐화한) 하나의 소프트웨어 모듈
 - 클래스라는 설계도로 만든 실체. 속성(데이터)과 연산(메서드)으로 구성

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

캡슐화 (Encapsulation) : 데이터(속성)와 데이터를 처리하는 함수를 하나로 묶는 것
 - 캡슐화된 객체는 인터페이스를 제외한 세부 내용이 은폐(정보 은닉)되어 외부에서의 접근이 제한적이기 때문에 외부 모듈의 변경으로 인한 파급 효과가 적다.
 - 캡슐화된 객체들은 재사용이 용이하다.
 - 객체들 간의 메시지를 주고받을 때 상태 객체의 세부 내용은 알 피룡가 없으므로 인터페이스가 단순해지고, 객체 간의 결합도가 낮아진다.

상속 (Inheritance) : 이미 정의된 상위 클래스(부모 클래스)의 모든 속성과 연산을 하위 클래스(자식 클래스)물려받는 것
 - 상속을 이용하면 하위 클래스는 상위 클래스의 모든 속성과 연산을 자신의 클래스 내에서 다시 정의하지 않고서도 즉시 자신의 속성으로 사용할 수 있다.
 - 하위 클래스는 상위 클래스로부터 상속받은 속성과 연산 외에 새로운 속성과 연산을 첨가하여 사용할 수 있다.

다형성 (Polymorphism) : 메시지에 의해 객체(클래스)가 연산을 수행하게 될 때 하나의 메시지에 대해 각각의 객체(클래스)가 가지고 있는 고유한 방법(특성)으로 응답할 수 있는 능력을 의미
 - 갹채(클래스)들은 동일한 메소드명을 사용하며 같은 의미의 응답을 한다.
 - 응용 프로그램 상에서 하나의 함수나 연산자가 두 개 이상의 서로 다른 클래스의 인스턴스들을 같은 클래스에 속한 인스턴스처럼 수행할 수 있도록 하는 것이다.
 - ex. '짖다'라는 명령에 개는 '멍멍', 고양이는 '야옹' 하는 것

※ 연관성 (Relationship) : 두 개 이상의 객체(클래스)들이 상호 참조하는 관계이다.

답: 3번
캡슐화 : 하나로 묶기, 정보 은닉
상속 : 물려받기, 재사용
다형성 : 같은 이름, 다른 행동, 오버로딩/오버라이딩
추상화 : 공통 특징만 추출

 

15. 웹 애플리케이션 서버(WAS; Web Application Server)에 대한 설명으로 틀린 것은?

① 정적인 콘텐츠를 처리하기 위해 사용되는 미들웨어이다.

② 클라이언트/서버 환경보다는 웹 환경을 구현하기 위한 미들웨어이다.

③ 미션-크리티컬한 기업 업무도 JAVA, EJB 컴포넌트 기반으로 구현이 가능하다.

④ 대표적인 WAS의 종류에는 오라클의 WebLogic, IBM의 WebSphere 등이 있다.

미들웨어 : '운영체체-응용프로그램', '서버-클라이언트' 사이에서 다양한 서비스를 제공
DB: 클라이언트와 원격 DB 연결 (예: ODBC, JDBC).
RPC (원격 프로시저 호출, Remote Procedure call): 다른 컴퓨터의 프로시저를 내 것처럼 호출
MOM (메시지 지향 미들웨어, Message Oriented Middleware): 메시지 기반의 비동기 서비스 제공.
TP Monitor (Transaction Processing Monitor): 항공권 예약 등 트랜잭션 처리 감시/제어.
ORB (객체 요청 브로커, Object Request Broker): 객체지향 시스템에서 객체 간 통신 지원 (예: CORBA).
WAS (웹 애플리케이션 서버, Web Application Server): 동적 콘텐츠 처리를 위한 미들웨어 (예: WebLogic, WebSphere)

답: 1번
웹 서버(Web Server) : HTML, CSS, 이미지파일처럼 내용이 변하지 않는 '정적 콘텐츠' 처리
웹 애플리케이션 서버 : DB 조회나 복잡한 로직 처리가 필요한 '동적 콘텐츠' 처리

 

16. 다음 중 유스케이스 다이어그램(Use Case Diagram)의 구성 요소가 아닌 것은?

① System

② Actor

③ Operation

④ UseCase

유스케이스 다이어그램 구성 요소
System (시스템/시스템 범위): 만들고자 하는 프로그램의 범위입니다. (보통 사각형 박스로 표현)
Actor (액터): 시스템과 상호작용하는 사람이나 외부 시스템입니다. (졸라맨 모양 아이콘)
Use Case (유스케이스): 시스템이 제공하는 개별적인 기능입니다. (타원형 모양)
Relationship (관계): 액터와 유스케이스, 또는 유스케이스들 사이의 연결선입니다.
 - 연관(Association)관계, 포함(Include) 관계, 확장(Extend) 관계, 일반화(Generalization) 관계

답: 3번
유스케이스 다이어그램은 사용자시스템 안에서 기능을 사용한다.
※ 클래스 다이어그램의 구성 요소 : 클래스, 제약조건, 관계
※ 순차 다이어그램의 구성요소 : 액터, 객체, 생명선, 실행상자, 메시지

 

17. 폭포수 모형의 특징으로 거리가 먼 것은?

① 순차적인 접근방법을 이용한다.

② 나선형 모형의 단점을 보완하기 위한 모형이다.

③ 단계적 정의와 산출물이 명확하다.

④ 모형의 적용 경험과 성공사례가 많다.

폭포수 모형의 특징
 - 순차적 접근 : 폭포물이 위에서 아래로 떨어지듯, 이전 단계가 완전히 끝나야만 다음 단계로 넘어갈 수 있다 =  
 - 선형적 모델 : 계획 → 분석 → 설계 → 구현 → 테스트 → 유지보수의 흐름이 명확
 - 매뉴얼 중심 : 각 단계가 끝날 때마다 명확한 산출물(문서)이 나와야 함 =  
 - 신뢰성 : 가장 오래된 모델이라 적용 경험과 성공사례가 많음 =  

폭포수 모형의 단점  보완하기 위해 나온 것 = 나선형 모형, 프로토타입 모형
 - 피드백의 어려움 : 개발 도중에 요구사하잉 바뀌면 반영하기 매우 어려움
 - 결과 확인 지연 : 프로그램이 거의 끝부분(구현 단계)에 가서야 만들어지기 때문에 사용자가 결과를 늦게 확인하게 됨.


답: 2번

 

18. 송수신 데이터의 처리 방식 중 대량의 데이터를 처리할 때 사용하는 방식은?

① 실시간 방식

② 분산 처리 방식

③ 배치 방식

④ 지연 처리 방식

실시간 방식 (Real-Time)
 - 데이터가 발생하는 즉시 처리 결과를 반환해야 할 때 사용합니다. (예: 은행 송금, 항공권 예약)
 - 대량 데이터 처리보다는 응답 시간의 신속성이 중요할 때 선택합니다.
 - 키워드 : 즉시, 응답시간 중요

분산 처리 방식 (Distributed Processing)
 - 여러 대의 컴퓨터에 작업을 나누어 동시에 처리하는 방식입니다.
 - 대량 데이터를 빠르게 처리하기 위한 '구조'적인 방법이지만, 송수신 데이터 처리의 방식을 묻는 이 문제의 의도(언제 처리하느냐)와는 거리가 있습니다.

배치 방식 (Batch Processing)
 - 데이터를 일정 기간 또는 일정 양이 쌓일 때까지 모아두었다가 한꺼번에 처리하는 방식입니다.
 - 대량의 데이터를 한 번에 처리하므로 시스템 자원을 효율적으로 사용할 수 있고, 개별 처리보다 비용이 저렴합니다.
 - 키워드: 대량 데이터, 일괄 처리, 효율성, 정해진 시간

지연 처리 방식
 - 보통 시스템 과부하 등을 이유로 처리를 미루는 현상을 말하며, 표준적인 데이터 송수신 처리 방식의 공식 명칭으로 쓰이지는 않습니다.

답: 3번

 

19. 결합도(Coupling)에 대한 설명으로 틀린 것은?

① 데이터 결합도는 두 모듈이 매개 변수로 자료를 전달할 때 자료 구조 형태로 전달되어 이용될 때 데이터가 결합되어 있다고 한다.

② 내용 결합도는 하나의 모듈이 직접적으로 다른 모듈의 내용을 참조할 때 두 모듈은 내용적으로 결합되어 있다고 한다.

③ 공통 결합도는 두 모듈이 동일한 전역 데이터를 접근한다면 공통 결합되어 있다고 한다.

④ 결합도는 두 모듈 간의 상호작용, 또는 의존도 정도를 나타내는 것이다.

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

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

답: 1번
데이터 결합도 : 자료 요소로 구성될 때
스탬프 결합도 : 자료 구조 형태로 전달될 때

 

20. CASE(Computer Aided Software Engineering)의 주요 기능으로 옳지 않은 것은?

① S/W 라이프 사이클 전 단계의 연결

② 그래픽 지원

③ 다양한 소프트웨어 개발 모형 지원

④ 언어 번역

CASE의 주요 기능
S/W 라이프 사이클 전 단계의 연결 : 요구 분석부터 유지보수까지 단계별로 발생하는 정보들을 통합 관리하고 연결
그래픽 지원 : 모델링 도구로서 다양한 다이어그램(UML, DFD 등)을 시각적으로 그릴 수 있도록 지원
다양한 소프트웨어 개발 모형 지원 : 폭포수 모형, 나선형 모형, 프로토타입 등 다양한 개발 방법론을 지원하는 도구들이 포함
표준화 : 개발 방법론을 표준화하고 문서화의 품질을 높여줌
재사용성 : 모듈의 재사용성을 높여 개발 비용과 기간을 단축
오류 발견 : 개발 초기 단계에서 결함을 발견하여 품질을 향상
분류 : 상위(Upper) CASE는 계획·분석·설계를, 하위(Lower) CASE는 구현·테스트를 지원

답: 4번
CASE는 설계도와 문서를 잘 만들고 관리하게 도와주는 매니저
CASE는 소프트웨어의 계획, 분석, 설계, 구현, 테스트, 유지보수 등 개발 공전 전체 또는 일부를 컴퓨터를 이용해 자동화하는 보조 도구
프로그래밍 언어를 기계어로 바꾸는 언어 번역은 컴파일러나 인터프리터의 역할

정보처리기사 필기 기출문제
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과목