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

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

문성 2026. 1. 14. 09:47

제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. UML 확장 모델에서 스테레오 타입 객체를 표현할 때 사용하는 기호로 맞는 것은? 

① << >> 

② (( )) 

③ {{ }} 

④ [[ ]]

스테레오 타입 : UML에서 표현하는 기본 기능 외에 추가적인 기능을 표현하기 위해 사용
 - 겹화살괄호 ' << >> '사이에 표현할 형태를 기술
 - ex. <<include>>, <<extend>>, <<interface>>, <<exception>>, <<constructor>>

답: 1번
확장모델, 새로운 요소 정의 → << >>

 


2. 메시지 지향 미들웨어(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 : 직접 호출, 동기, 실시간/즉각적 응답 중시

 

 

3. 럼바우(Rumbaugh)의 객체지향 분석 절차를 가장 바르게 나열한 것은?

① 객체 모형 → 동적 모형 → 기능 모형

② 객체 모형 → 기능 모형 → 동적 모형

③ 기능 모형 → 동적 모형 → 객체 모형

④ 기능 모형 → 객체 모형 → 동적 모형

럼바우(Rumbaugh) 분석 기법 : 객체 모델링 → 동적 모델링 → 기능 모델링 순으로 이루어진다. (객동기)
객체 (Object) 모델링 : 정보 모델링이라고도 하며, 시스템에서 요구되는 객체를 찾아내어 속성과 연산 식별 및 객체들 간의 관계를 규정하여 객체 다이어그램으로 표시하는 것

동적 (Dynamic) 
모델링 : 상태 다이어그램(상태도)을 이용하여 시간의 흐름에 따른 객체들 간의 제어 흐름, 상호 작용, 동작 순서 등의 동적인 행위를 표현하는 모델링

기능 (Functional)
 모델링 : 자료 흐름도(DFD)를 이용하여 다수의 프로세스들 간의 자료 흐름을 중심으로 처리 과정을 표현한 모델링

답: 1번
(주요 키워드)
객체 모델링 : 객체, 속성, 연산, 구조, 정보 모델링
동적 모델링 : 상태변화, 이벤트, 시간의 흐름, STD
기능 모델링 : 자료 흐름, 프로세스, DFD, 결과물

 

4. Gof(Gangs of Four) 디자인 패턴 분류에 해당하지 않는 것은?

① 생성 패턴

② 객체 패턴

③ 행위 패턴

④ 구조 패턴

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

답: 2번
※'생구행' 으로 암기

 

 

5. 다음 중 가장 결합도가 강한 것은?

① Date Coupling

② Stamp Coupling

③ Common Coupling

④ Control Coupling

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

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

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

답: 3번

 

6. 아키텍처 설계 과정이 올바른 순서로 나열된 것은?

(가) 설계 목표 설정
(나) 시스템 타입 결정
(다) 스타일 적용 및 커스터마이즈
(라) 서브시스템의 기능, 인터페이스 동작 작성
(마) 아키텍처 설계 검토

 

① 가→나→다→라→마

② 나→가→다→라→마

③ 가→다→나→라→마

④ 가→나→라→다→마

소프트웨어 아키텍쳐의 설계 과정
1. 설계 표 설정
2. 시스템 입 결정
3. 아키텍쳐 패턴 적용(타일 적용 및 커스터마이즈)
4. 서브시스템 구체화(버시스템의 기능, 인터페이스 동작 작성)
5. 

답: 1번
※ 아키텍쳐 설계 : 큰 그림에서 작은 그림으로 내려가는 하향식 흐름
※ 목타스서검 으로 암기


7. 소프트웨어 설계 시 구축된 플랫폼의 성능 특성 분석에 사용되는 측정 항목이 아닌 것은? 

① 응답 시간(Response Time) 

② 서버 튜닝(Server Tuning) 

③ 가용성(Availability) 

④ 사용률(Utilization)

플랫폼 성능 특성 분석의 4대 측정 항목 (응가사경)
 - 처리량(Throughput)(=가용성): 단위 시간당 처리하는 일의 양 (많을수록 좋음)
 - 응답 시간(Response Time)(=응답 시간): 요청 후 응답이 올 때까지 걸리는 시간 (짧을수록 좋음) 
 - 반환 시간(Turnaround Time)(=경과 시간): 업무 처리를 시작해서 결과를 얻을 때까지의 시간 (짧을수록 좋음)
 - 자원 사용률(Resource Utilization)(=사용률): CPU, 메모리 등 자원을 얼마나 효율적으로 썼는가 (적절해야 함)

※ DBMS 분석 시 고려사항
 - 가용성 (Availability)
 - 성능 (Performance)
 - 상호 호환성 (Interoperability)
 - 기술 지원 (Technical Support)
 - 구축 비용 (Cost)
 - (오답) 네트워크 구성도 → 네트워크 분석 시 필요

답: 2번
서버 튜닝은 성능 분석 결과에 따라 시스템을 최적화하는 '행위' → 성능을 측정하는 '항목'이 아님 (※ 성능이 안 좋네? 튜닝하자!)

 


8. 다음 내용이 설명하는 객체지향 설계 원칙은?

- 클라이언트는 자신이 사용하지 않는 메소드와 의존관계를 맺으면 안 된다.
- 클라이언트가 사용하지 않는 인터페이스 때문에 영향을 받아서는 안 된다.

 

① 단일 책임 원칙(SRP)

② 인터페이스 분리 원칙(ISP)

③ 개방-폐쇄 원칙(OCP)

④ 의존 역전 원칙(DIP)

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

답: 2번

 

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

① 용기

② 의사소통

③ 정형 분석

④ 피드백

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

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

답: 3번

 

10. 객체지향 개념에서 연관된 데이터와 함수를 함께 묶어 외부와 경계를 만들고 필요한 인터페이스만을 밖으로 드러내는 과정은?

① 메시지(Message)

② 캡슐화(Encapsulation) 

③ 다형성(Polymorphsim)

④ 상속(Inheritance)

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

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

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

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

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

※ 메시지(Message) : 객체들끼리 서로 통신하기 위해 주고받는 명령이나 요구사항을 의미

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

 

11. HIPO(Hierarchy Input Process Output)에 대한 설명으로 거리가 먼 것은?

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

② 구조도, 개요 도표 집합, 상세 도표 집합으로 구성된다.

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

④ 보기 쉽고 이해하기 쉽다.

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

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

답: 1번
※ HIPO 는 하향식 으로 기억 (주로 상향식으로 오답 만들어서 출제함)

 

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

① Date Flow

② Data Dictionary 

③ Process

④ Data Stroe

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

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

답: 2번

 

13. 객체에게 어떤 행위를 하도록 지시하는 명령은?

① Class

② Instance

③ Object

④ Message

Class (클래스): 객체를 만들기 위한 설계도 또는 틀입니다. 공통된 속성과 연산을 갖는 객체들의 집합을 정의합니다.
Instance (인스턴스): 클래스라는 설계도를 바탕으로 실제로 메모리에 생성된 구체적인 객체를 의미합니다.
Object (객체): 데이터(속성)와 이를 처리하는 함수(연산)가 결합된 실체입니다. 클래스의 인스턴스라고도 합니다.
Message (메시지): 객체에게 특정 작업을 수행하도록 요청하는 통신 수단이다.
 - 메시지를 받는 수신자(Object), 수행할 이름(Method), 작업에 필요한 인자(Parameters)로 구성됨
 - 예. 리모컨으로 TV 객체에게 "채널 변경:이라는 메시지를 전달하는 것

답: 4번
메시지 : "지시", "명령", "상호작용", "통신"
클래스 : "틀", "설계도", "추상화"


14. Gof(Gangs of Four) 디자인 패턴 중 생성 패턴으로 옳은 것은?

① Singleton Pattern

② Adapter Pattern

③ Decorator Pattern

④ State Pattern

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

답: 1번
싱글톤(Singleton)은 생성 패턴

 

15. 럼바우(Rumbaugh) 분석 기법에서 정보 모델링이라고 하며, 시스템에서 요구되는 객체를 찾아내어 속성과 연산 식별 및 객체들 간의 관계를 규졍하여 다이어그램을 표시하는 모델링은?

① Object

② Dynamic

③ Function

④ Static

럼바우(Rumbaugh) 분석 기법 : 객체 모델링 → 동적 모델링 → 기능 모델링 순으로 이루어진다. (객동기)
객체 (Object) 모델링 : 정보 모델링이라고도 하며, 시스템에서 요구되는 객체를 찾아내어 속성과 연산 식별 및 객체들 간의 관계를 규정하여 객체 다이어그램으로 표시하는 것

동적 (Dynamic) 
모델링 : 상태 다이어그램(상태도)을 이용하여 시간의 흐름에 따른 객체들 간의 제어 흐름, 상호 작용, 동작 순서 등의 동적인 행위를 표현하는 모델링

기능 (Functional)
 모델링 : 자료 흐름도(DFD)를 이용하여 다수의 프로세스들 간의 자료 흐름을 중심으로 처리 과정을 표현한 모델링

답: 1번
(주요 키워드)
객체 모델링 : 객체, 속성, 연산, 구조, 정보 모델링
동적 모델링 : 상태변화, 이벤트, 시간의 흐름, STD
기능 모델링 : 자료 흐름, 프로세스, DFD, 결과물


16. 다음 결합도의 종류에 대한 설명 중 틀린 것은?

① 자료 결합도 : 모듈 간의 인터페이스가 자료 요소로만 구성될 때의 결합도

② 내용 결합도 : 한 모듈이 다른 모듈과 제어 신호를 이용하여 통신하고, 공유되는 공통 데이터 영역을 사용할 때의 결합도

③ 스탬프 결합도 : 모듈 간의 인터페이스로, 배열의 자료 구조가 전달될 때의 결합도

④ 외부 결합도 : 어떤 모듈에서 선언한 데이터를 다른 모듈에서 참조할 때의 결합도

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

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

답: 2번
2번 보기 설명은 공통(공유) 결합도


17. CASE(Computer Aided Software Engineering)에 대한 설명으로 틀린 것은?

① 소프트웨어 모듈의 재사용성이 향상된다.

② 자동화된 기법을 통해 소프트웨어 품질이 향상된다.

③ 소프트웨어 사용자들에게 사용 방법을 신속히 숙지시키기 위해 사용된다.

④ 소프트웨어 유지보수를 간편하게 수행할 수 있다.

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

답: 3번
자동화 도구이기 때문에 사용방법 숙지랑 상관없다.


18. 파이프 필터 형태의 소프트웨어 아키텍처에 대한 설명으로 옳은 것은?

① 노드와 간선으로 구성된다.

② 서브시스템이 입력 데이터를 받아 처리하고 결과를 다음 서브 시스템으로 넘겨주는 과정을 반복한다.

③ 계층 모델이라고도 한다.

④ 3개의 서브시스템(모델, 뷰, 제어)으로 구성되어 있다.

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

※① 노드와 간선으로 구성된다 → 이는 일반적인 그래프(Graph) 구조나 네트워크 토폴로지에 대한 설명에 가까움
※③ 계층 모델이라고도 한다 → 이는 계층형 패턴(Layered Pattern)에 대한 설명. 시스템을 상위/하위 계층(Layer)으로 나누어 수직적으로 구성하는 방식
※④ 3개의 서브시스템(모델, 뷰, 제어)으로 구성되어 있다 → 이는 아주 유명한 MVC(Model-View-Controller) 패턴에 대한 설명

답: 2번


19. 공통 모듈에 대한 명세 기법 중 해당 기능에 대해 일관되게 이해되고 한 가지로 해석될 수 있도록 작성하는 원칙은?

① 상호작용성

② 명확성

③ 독립성

④ 내용성

공통 모듈 : 여러 프로그램에서 공통적으로 사용할 수 잇는 모듈
정확성 (Correctness) : 시스템 구현 시 해당 기능이 필요하다는 것을 알 수 있도록 정확히 작성함
명확성 (Clarity) : 해당 기능을 이해할 때 중의적으로 해석되지 않도록 명확하게 작성함 ("일관되게 이해", "한가지로 해석")
완전성 (Completeness) : 시스템 구현을 위해 필요한 모든 것을 기술함
일관성 (Consistency) : 공통 기능들 간 상호 충돌이 발생하지 않도록 작성함
추적성 (Traceability) : 기능에 대한 요구사항의 출처, 관련 시스템 등의 관계를 파악할 수 있도록 작성함

답: 2번

 

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

① 적당한 모듈의 크기를 유지한다.

② 모듈 간의 접속 관계를 분석하여 복잡도와 중복을 줄인다.

③ 모듈 간의 결합도는 강할수록 바람직하다.

④ 모듈 간의 효과적인 제어를 위해 설계에서 계층적 자료 조직이 제시되어야 한다.

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

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

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

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

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

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

답: 3번
※ 모듈의 크기는 적정 수준을 유지해야하지, 작게 구성하면 관리 효율이 떨어짐
정보처리기사 필기 기출문제
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과목