정보처리기사 오답노트
1과목 : 소프트웨어 설계
1. 요구 분석에 대한 설명으로 틀린 것은?(21.08.14)
1) 요구 분석은 소프트웨어 개발의 실제적인 첫 단계로 사용자의 요구에 대해 이해하는 단계
2) 요구 추출은 프로젝트 계획 단계에서 정의한 문제의 범위 안에 있는 사용자의 요구를 찾는 단계
3) 도메인 분석은 요구에 대한 정보를 수집하고 배경을 분석해 이를 토대로 모델링
4) 기능적 요구에서 시스템 구축에 대한 성능, 보안, 품질, 안정 등에 대한 요구사항을 도출
2. 디자인 패턴 중에서 행위적 패턴에 속하지 않는 것은?(20.08.22)
1) Command 패턴
2) Observer 패턴
3) Prototype 패턴 (생성 패턴)
4) State 패턴
- 디자인 패턴 : 프로그래밍을 하면서 반복적으로 발견되는 문제에 대한 반복적 해결책
- 생성 : Class는 객체 인스턴스 새성과 참조 과정 정의
- 구조 : Class와 객체를 조합해 더 큰 구조 형성
- 행위 : 클래스와 객체의 상호작용 방법과 역할 분담 및 책임 분배 방법 정의
ex: 옵저버, 상태, 방문자, 커맨드, 책임연쇄, 인터프리터, 반복자, 중재자
3. UML(Unified Modeling Language)에 대한 설명 중 틀린 것은?(21.03.07)
1) 기능적 모델은 사용자 측면에서 본 시스템 기능, UML에서는 Use case Diagram 사용
2) 정적 모델은 객체, 속성, 연관관계, 오퍼레이션의 시스템의 구조를 나타내며, UML에서 Class Diagram 사용
3) 동적 모델은 시스템의 내부 동작, UML에서는 Sequence/State/Activity Diagram을 사용
4) State Diagram은 객체들 사이의 메시지 교환, Sequence Diagram은 하나의 객체가 가진 상태와 그 상태 변화에 의한 동작 순서를 의미 <- State : 객체가 가진 상태와 상태 변환 / Sequence : 객체 사이에 오가는 메시지를 시간 순
4. SW 개발 방법 중 requirements analysis과 거리가 먼 것은?(20.06.06)
1) 비용과 일정에 대한 제약 설정
2) 타당성 조사
3) 요구사항 정의 문서화
4) 설계 명세서 작성 <- 요구사항 명세 단계에서 수행
5. Rumbaugh의 객체지향 분석 절차(20.06.06) : 객체 모델링 -> 동적 모델링 -> 기능모델링
1) 객체 모델링: 객체 관계(다이어그램)으로 표시
2) 동적 모델링: 상태 다이어그램(상태도)를 이용해 시간 흐름에 따라 동적인 행위 표현
3) 기능 모델링 : 자료흐름도(DFD)를 이용해 다수 프로세스들 간의 자료 흐름을 중심으로 처리
6. SW 모델링과 관련한 설명으로 틀린 것은(22.04.24)
1) 모델링 작업의 결과물은 다른 모델링 작업의 영향을 줄 수 없다 <- 있음
2) 구조적 방법론에서는 DFD, DD를 사용해 요구사항 결과 표현
3) 객체지향 방법론에서는 UML 표기법을 사용
4) SW 모델 사용할 경우 개발될 소프트웨어에 대한 이해도 및 이해 당사자 간의 의사소통 향상에 도움
7. GoF(Gangs of Four) 디자인 패턴 분류에 해당하지 않는 것은?(20.09.26)
1) 생성패턴
2) 구조패턴
3) 행위패턴
4) 추상패턴
2과목 : SW 개발
1. 인터페이스 보안을 위해 네트워크 영역에 적용될 수 있는 솔루션과 거리가 먼 것?(20.08.22)
1) IPSec
2) SSL
3) SMTP : 전자 우편을 교환하는 서비스 제공 프로토콜
4) S-HTTP
2. 버블 정렬을 이용해 오름차순 정렬할 경우 Pass 3의 결과?(21.08.14)
9, 6, 7, 3, 5
버블 정렬 : 인접 데이터를 비교해 데이터 위치 바꾸며 정렬
Pass 1 : 6 7 3 5 9
Pass 2 : 6 3 5 7 9
Pass 3 : 3 5 6 7 9
3. SW 공학에서 Walkthrough에 대한 설명으로 틀린 것은?(22.04.24)
1) 사용사례를 확장해 명세하거나 설계 다이어그램, 원시코드, 테스트 케이스 등에 적용 가능
2) 복잡한 알고리즘 또는 반복, 실시간 동작, 병행 처리와 같은 기능 | 동작 이해할 때 유용
3) 인스팩션과 동일한 의미 : 요구사항 명세서 작성자를 제외한 다른 검토자가 결함 발견
4) 단순한 테스트 케이스를 이용해 프로덕트를 수작업으로 수행해보는 것
4. SW 테스트와 관련한 설명으로 틀린 것은(21.05.15)
1) 화이트 박스 테스트는 모듈의 논리적인 구조를 체계적 점검 가능
2) 블랙박스 테스트는 프로그램의 구조를 고려하지 않음
3) 테스트 케이스에는 일반적으로 시험조건, 테스트 데이터, 예상 결과가 포함되어야 한다.
4) 화이트 박스 테스트에서 기본 경로란 흐름 그래프의 시작 노드에서 종료노드까지의 서로 독립된 경로로
싸이클을 허용하지 않는 경로를 말한다.
- 화이트 박스 테스트 : SW 내부 소스 테스트
- 블랙 박스 테스트 : 내부 구조나 작동원리 모르는 상태에서 입력에 따른 출력 결과 테스트
5. 인터페이스 구현 검증 도구(20.09.26) : xUnit, STAF, FitNesse, NTAF, Selenium, Watir
6. 자료 구조에 대한 설명으로 틀린 것은?(21.03.07)
1) 큐는 비선형 구조 : 선형 구조(ex: 리스트, 스택, 큐, 데크) / 비선형(트리, 그래프)
2) 큐는 FIFO 처리 수행
3) 스택은 LIFO 처리 수행
4) 스택은 서브루틴 호출, 인터럽트 처리, 수식 계산 및 수식 표기법에 응용
7. 인스팩션(Inspection) 과정(22.04.24)
: 계획 -> 사전교육 -> 준비 -> 인스펙션 회의 -> 수정 -> 후속조치
8. SW 형상관리(Configuration management)에 관한 설명으로 틀린 것은?(21.03.07)
1) SW에서 일어나는 수정 | 변경을 알아내고 제어하는것
2) SW 개발의 전체 비용 줄이고, 개발 과정의 여러 방해 요인이 최소화 되도록 보증하는 것 목적
3) 형상 관리를 위해 구성된 팀 'chief programmer team'이라 한다.
4) 형상 관리의 기능 중 하나는 버전 제어 기술
9. JavaScript를 사용한 비동기 통신기술로 클라이언트와 서버간 XML 데이터를 주고 받는 기술(20.08.22)
: AJAX
10. 순회 운행(21.08.14)
- 전위 : 중앙 노드 먼저 방문(위 -> 왼 -> 오)
- 중위 : 왼쪽 노드 방문 후 중앙 노드 (왼쪽 아래 -> 위 -> 오른쪽) 위로 이동 후 더 위로 가기전 오른 쪽 확인
- 후위 : 하위 트리 노드 모드 방문 중앙 노드 방문 (왼쪽 아래 -> 오른쪽 -> 부모) 최상위 노드 무조건 마지막
3과목 : DB 구축
1. 정규형
- 1NF : 도메인이 원자값만으로 구성(반복 그룹 제거)
- 2NF : 기본키가 아닌 모든 속성이 기본키에 대해 완전 함수적종속 만족(부분 함수적 종속 제거)
- 3NF : 기본키가 아닌 모든 속성이 기본키에 대해 이행적 종속을 만족 X(다치종속 제거)
- BCNF : 모든 결정자가 후보키
- 4NF : 다치 종속 A->B가 성립하는 경우 A에 함수적 종속 관계를 만족
- 5NF : 모든 조인 종속이 후보 키를 통해서만 성립
2.DB 인덱스와 관련한 설명으로 틀린 것은?(22.04.24)
1) 문헌의 색인, 사전과 같이 데이터를 쉽고 빠르게 찾을 수 있도록 만든 Data 구조
2) 테이블에 붙여진 색인으로 데이터 검색 시 처리 속도 향상
3) 인덱스 추가, 삭제 명령어는 각각 ADD, DELETE : CREATE(생성)/DROP(삭제)
4) 대부분의 DB에서 테이블을 삭제하면 인덱스도 같이 삭제
3.
- 튜플 : 각각의 행
- 도메인 : 하나의 애트리뷰트가 가질 수 있는 원자값들의 집합
- 엔티티 : DB의 논리적 구성요소, DB에 표현하려는 유형, 무형의 개체로 정보의 단위
- 다형성 : 하나의 객체가 여러가지 타입을 가질 수 있는 것
4. 릴레이션 R의 차수 4, 카디널리티 5 & 릴레이션 S의 차수 6, 카디널리티 7일때 두 개의 릴레이션을 카티션 프로덕트한 결과의 새로운 릴레이션의 차수와 카디널리티(21.05.15)
차수 : + / 카디널리티 : * ==> 10 / 35
5. DB에서 개념적 설계 단계에 대한 설명으로 틀린 것은(22.04.24)
1) 산출물로 E-R Diagram을 만들 수 있다.
2) DBMS에 독립적인 개념 스키마를 설계
3) 트랜잭션 인터페이스를 설계 및 작성
4) 논리적 설계 단계의 앞 단계에서 수행
- 개념설계 : 트랜잭션 모델링
- 논리설계 : 트랜잭션 인터페이스 설계
- 물리설계 : 트랜잭션 세부설계
6. 관계대수의 순수관계 연산자(20.08.22) : select / project / join / division
7. 3NF가 BCNF가 되기 위한 조건 : 결정자가 후보키가 아닌 함수 종속 제거
두부이걸 다줘?(도부이결다조)로 암기하래요
[도메인 분해 -> ] 1NF -> [부분 함수 종속 제거 -> ] 2NF -> [이행 함수 종속 제거 ->] 3NF -> ..
-> BCNF -> [다중치 종속 제거 -> ] 4NF -> [조인 종속 제거 -> ] 5NF
제 4과목 : 프로그래밍 언어 활용
1. 다음 C언어 프로그램 실행 결과(22.03.05)
p[0] = arr[0] -> p[0] + 1 = arr[0][1] = 2
p[1] = arr[1] -> p[1] + 2 = arr[1][2] = 6 ==> 2+6 = 8
p = arr[0]의 주소 -> p+1 = arr[1] -> *(*(p+1)+0) = arr[1][0] = 4
*(*(p+1)+1 = arr[1][1] = 5 ===> 4 + 5 = 9
2. OSI 7계층(20.09.26)
3. 교착상태가 발생할 수 있는 조건 아닌 것?(21.03.07)
1) Mutual exclusion
2) Hold and wait
3) Non-preemption
4) Linear wait : Circular wait
4. 배치 프로그램의 필수요소에 대한 설명으로 틀린 것은?(20.08.22)
1) 자동화 : 심각한 오류 상황 외에는 사용자의 개입 없이 동작해야 함
2) 안정성 : 어떤 문제 발생, 언제 발생 했는 지 등을 추적 가능해야함
3) 대용량 데이터 : 대용량의 데이터를 처리 가능
4) 무결성 : 주어진 시간 내에 처리 완료, 동시에 동작하는 다른 Application 방해 X
-> 성능 얘기
5. C Class에 속하는 IP address는? (21.08.14) : 200.168.30.1
6. A = 65(ASCII Code 10진수로 표현) / a = 97
7. 모듈화(Modularity)와 관련한 설명으로 틀린 것은?(22.04.24)
1) System을 모듈로 분할하면 각각의 모듈을 별개로 만들고 수정 가능해 좋은 구조가 됨
2) 응집도 : 모듈과 모듈 사이의 상호의존 | 연관 정도를 의미
: 하나의 모듈이 하나의 기능을 수행하는 요소들 간의 연관성 척도
3) 모듈 간의 결합도가 약해야 독립적 모듈 가능
4) 모듈 내 구성 요소들 간의 응집도가 강해야 좋은 모듈 설계
5과목 : 정보 시스템 구축 관리
1. SAN : 네트워크상에 광채널 스위치의 이점인 고속 전송과 장거리 연결 및 멀티 프로토콜 기능을 활용,
MBR : 기억장치를 출입하는 데이터가 잠시 기억되는 레지스터
NAC : PC의 MAC 주소를 IP 관리 시스템에 등록, 일관된 보안관리 기능 제공
NIC : 물리 계층과 데이터 계층의 서비스 제공
2. tripwire : 크래커가 침입해 백도어를 만들어 놓거나 설정 파일 변경 시 분석 도구
tcpdump : 컴퓨터에 부착된 네트워크를 통해 송수신되는 기타 패킷을 가로채고 표시 할 수 있게 해주는 sw
netcat : TCP | UDP를 사용해 네트워크 연결을 읽고 쓰는 데 사용되는 컴퓨터 네트워킹 유틸리티
DAS : 데이터 저장장치를 호스트버스어댑터에 직접연결하는 방식
3. CMM(Capability Maturity Model)의 레벨(20.06.06) : 초기 / 반복 / 정의 / 관리 / 최적
4. OSPF(Open Shortest Path First)에 대한 설명으로 옳지 않은 것은(21.05.15)
1) 네트워크 변화에 신속하게 대처 가능
2) 거리 벡터 라우팅 프로토콜
3) 멀티캐스팅을 지원
4) 최단 경로 탐색에 Dijkstra 알고리즘 사용
5. Secure 코딩에서 입력 데이터의 보안 약점과 관련한 설명으로 틀린 것은?(22.03.05)
1) SQL 삽입 : User 입력 값 등 외부 입력 값이 SQL 쿼리에 삽입되어 공격
2) 크로스사이트 스크립트 : 검증안된 외부 입력값에 의해 브라우저에서 악의적 코드 실행
3) OS 명령어 삽입 : 명령어 파라미터 입력 값이 적절한 사전 검증 없이 사용되 공격자가 명령어 조작
6. SSO : 시스템이 몇 대가 되어도 하나의 시스템에서 인증에 성공하면 다른 시스템에 대한 접근권한 얻는 시스템
7. NS(Nassi-Schneiderman) Chart : 직사각형을 포개어가는 것으로 나타냄
- 논리의 기술에 중점을 둔 도형을 이용한 표현
- 그리기 어렵
- 순차, 선택, 반복으로 표현
- 임의 제어 이동이 어렵
- goto 구조가 어렵
- 조건이 복합되어 있는 곳의 처리를 명확히 식별하기에 적합
- if 문이 여러개일 때 가능