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