본문 바로가기
  • 문과생의 백엔드 개발자 성장기
|Developer_Study/정보처리기사

[정보처리기사] 예상 문제2

by 케리's 2023. 3. 10.

41. 다음은 애자일(Agile) 기법 중 스크럼(Scrum)과 관련된 용어 설명이다. 괄호( ) 안에 들어갈 용어를 쓰시오.

- ( ① )은/는 스크럼 프로세스를 따르고, 프로젝트 리더로 팀이 스크럼을 효과적으로 활용할 수 있도록 보장하는 역할 등을 맡는다.
- ( ② )은/는 2~4주의 짧은 개발 기간으로 반복적 수행을 통해 개발품질을 향상시킬 수 있다.
- ( ③ )은/는 남아있는 백로그 대비 시간을 그래픽적으로 표현한 차트이다.
더보기

1. 스크럼 마스터 (Scrum Master)
2. 스프린트 (Sprint)
3. 번다운차트 (Burn Down Chart)


스크럼

(Scrum)

' 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 방법론
백로그 (Backlog) 제품과 프로젝트에 대한 요구사항
스프린트 (Sprint) 2~4주의 짧은 개발기간으로 반복적 수행으로 개발 품질 향상
스크럼 미팅 (Scrum Meeting) 매일 15분 정도 미팅으로 To-Do-List 계획수립
스프린트회고 (Sprint Retrospective) 스프린트 주기를 되돌아보며 정해놓은 규칙 준수여부, 개선점 등을 확인 및 기록
해당 스프린트가 끝난 시점이나 일정 주기로 시행
번다운차트 (Burn Down Chart) 남아있는 백로그 대비시간을 그래픽적으로 표현한 차트
백로그는 보통 수직축에 위치하며 시간은 수평축에 위치 

 [출처[2022년 제1회 기사 실기 출제예상 문제] (1과목) 요구사항 확인 - 39 (수제비- IT 커뮤니티 (정보처리기사,빅데이터분석기사 등)) | 작성자 수제비쌤

 

 

 

 

42. 다음은 소프트웨어 공학의 소프트웨어 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 디자인 패턴에 대한 설명이다. 괄호( ) 안에 들어갈 패턴의 이름을 쓰시오.

- ( ① )은/는 복잡한 시스템에 대하여 단순한 인터페이스를 제공함으로써 사용자와 시스템 간 또는 여타 시스템과의 결합도를 낮추어 시스템 구조에 대한 파악을 쉽게 하는 패턴으로 오류에 대해서 단위별로 확인할 수 있게 하며, 사용자의 측면에서 단순한 인터페이스 제공을 통해 접근성을 높일 수 있는 디자인 패턴이다.
- ( ② )은/는 스스로 캡슐화한 다음, 필요할 때 서로 교환해서 사용할 수 있게 하는 패턴으로, 행위를 클래스로 캡슐화해 동적으로 행위를 자유롭게 바꿀 수 있게 해주는 디자인 패턴이다.
더보기

1. Facade

(tv 시청시 복잡한 명령들을 단순하게 수행해 주는 리모컨)

퍼사이드(Facade) '복잡한 시스템에 대하여 단순한 인터페이스를 제공함으로써 사용자와 시스템간 또는 다른 시스템과의 결합도를 낮추어 시스템 구조에 대한 파악을 쉽게 하는 패턴
' 오류에 대해 단위별로 확인할 수 있게 하며 사용자의 측면에서 단순한 인터페이스 제공을 통해 접근성을 높일 수 있는 디자인 패턴
' 통합된 인터페이스 제공 (ATM기 - ATM 기계에는 카드 판독기, 디스펜서 및 키패드와 같은 여러 구성 요소가 있습니다. 사용자는 하위 시스템의 기본 복잡성을 숨기고 통합 인터페이스를 제공하는 간단한 인터페이스인 파사드를 통해 ATM 기계와 상호 작용합니다.)

2. Strategy

(a,b,c 전략을짜서 상황에 맞춰 필요한 전략들을 번갈아 교환하면서 사용)

스트레티지(Strategy) '알고리즘군을 정의하고(추상) 같은 알고리즘을 각각 하나의 클래스로 캡슐화한다음 필요할때 서로 교환해서 사용할 수 있게하는 패턴
'행위를 클래스로 캡슐화해 동적으로 행위를 자유롭게 바꿀 수 있게 해줌
'행위 객체를 클래스로 캡슐화해 동적으로 행위를 자유롭게 변환
'사용하는 알고리즘을 변경하여 런타임 시 개체의 동작을 변경할 수 있습니다.
Duck mallard = new Duck(new FlyWithWings()); mallard.performFly(); // outputs: "I'm flying with my wings!" mallard.setFlyBehavior(new FlyNoWay()); mallard.performFly(); // outputs: "I can't fly."

[출처[2022년 제1회 기사 실기 출제예상 문제] (1과목) 요구사항 확인 - 40 (수제비- IT 커뮤니티 (정보처리기사,빅데이터분석기사 등)) | 작성자 수제비쌤

 

 

 

 

43. UI 유형 중 현실에 존재하는 모든 사물이 입출력장치로 변화할 수 있는 사용자 인터페이스를 무엇이라고 하는가?

더보기

OUI(Organic User Interface)


  • CLI (Command Line Interface)
    명령어를 텍스트로 입력하여 조작하는 사용자 인터페이스
  • GUI (Graphical User Interface)
    그래픽 환경을 기반으로 한 마우스나 전자 펜을 이용하는 사용자 인터페이스
  • NUI (Natural User Interface)
    키보드나 마우스 없이 터치, 음성을 포함한 신체 부위를 이용하는 사용자 인터페이스
  • OUI (Organic User Interface)
    현실에 존재하는 모든 사물이 입출력장치로 변화할 수 있는 사용자 인터페이스

 

 

 

44. 다음은 신기술 용어이다. 괄호(      ) 안에 들어갈 용어를 쓰시오.

- (       ①       )/ 블록체인 기술을 이용해서 디지털 자산의 소유주를 증명하는 가상의 토큰(token)이다.
- (       ②       )/ 초월을 의미하는 단어와 세계우주를 의미하는 단어를 합성한 신조어로 현실을 디지털 기반의 가상 세계로 확장해 가상 공간에서 모든 활동을   있게 만드는 시스템이다.
더보기

① 대체 불가능 토큰(Non-fungible token; NFT)

② 메타버스(metaverse)


NFT는 'non-fungible token’의 약자로 ‘대체불가토큰’ 또는 '대체불가능토큰’으로 번역됩니다. 대체가능한 토큰들은 각기 동일한 가치와 기능을 가지며 서로 교환이 가능합니다. 반면 NFT는 토큰 하나하나가 고유한 가치를 지니며 서로 교환이 불가능합니다. NFT는 블록체인 기술로 만들어진 대체 불가능한 토큰입니다.

[출처[2022 1 기사 실기 출제예상 문제] (11과목응용 SW 기초 기술 활용 - 42 (수제비- IT 커뮤니티 (정보처리기사,빅데이터분석기사 )) | 작성자 수제비쌤

 

 

 

 

 

45. 다음은 소프트웨어 개발 방법론에 대한 설명이다. 괄호(       ) 안에 들어갈 소프트웨어 개발 방법론 유형을 쓰시오.

- (                    ) 방법론, 개발과 함께 즉시 피드백을 받아서 유동적으로 개발하고 절차보다는 사람이 중심이 되어 변화에 유연한  방법론이다.
- (                    ) 모델은 소프트웨어 개발 단계를 확실히 마무리 지은 후에 다음 단계로 넘어가는 소프트웨어 생명주기 모델이다.
- (                    ) 모델은 시스템 개발 위험을 최소화하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델이다.
더보기

1. 애자일 방법론

2. 폭포수 모델

3. 나선형 모델

[출처] [2022 2 기사 실기 출제예상 문제] (1과목) 요구사항 확인 - 1 (수제비- IT 커뮤니티 (정보처리기사,빅데이터분석기사 )) | 작성자 수제비쌤

 

 

 

 

 

46. 다음은 보안 시스템에 대한 설명이다. 괄호(     ) 안에 들어갈 용어를 쓰시오.

- (                    )/ 결제자의 다양한 정보를 수집해 패턴을 만든 패턴과 다른 이상 결제를 잡아내고 결제 경로를 차단하는 보안 시스템으로, 보안 솔루션에 의존하던 기존 보안과 달리 빅데이터를 바탕으로 적극적인 보안 개입을 하는 것이 특징이다.
더보기


답) 이상 행위 탐지 시스템(FDS; Fraud Detection System)


이상행위탐지시스템(FDS)은 이상 감지 시스템으로, 즉, 사기 금융거래 방지 시스템입니다.

이 시스템은 기존과 다른 패턴의 수상한 금융거래를 탐지하는 시스템으로, 2001년 온라인 전자 결제 시스템을 제공하는 미국 기업 페이팔이 해커의 공격으로 피해를 본 뒤 개발해 적용한 것이 시작되었습니다1

이상행위탐지시스템은 금융권에서 많이 사용되며, 이를 위해 머신러닝 기반 이상탐지 기술을 사용하기도 합니다.

이상행위탐지시스템은 은행에서는 대출 사기나 대출금 불입 등을 탐지하고, 카드사에서는 카드 도용 등을 탐지합니다.
이상행위탐지시스템은 다양한 분야에서 사용되고 있으며, 최근에는 인공지능 기술을 활용하여 더욱 정교한 이상 감지 시스템을 개발하고 있습니다.

[출처] [2022 2 기사 실기 출제예상 문제] (확장) 보안기사 응용 문제 - 2 (수제비- IT 커뮤니티 (정보처리기사,빅데이터분석기사 )) | 작성자 수제비쌤

 

 

 

 

 

47. 다음은 데이터 비식별화 처리기법에 대한 설명이다. 괄호( ) 안에 들어갈 처리 기법을 보기에서 골라 쓰시오.

• (                 ) : 개인 식별이 가능한 데이터에 대하여 직접 식별할 없는 다른 값으로 대체하는 기법으로 자체로 완전 비식별화가 가능하며 데이터의 변형, 변질 수준이 낮음
• (                 ) : 개인정보에 대하여 통곗값을 적용하여 특정 개인을 판단할 없도록 하는 기법

| 보기 |

가명처리(Pseudonymisation), 총계처리(Aggregation), 데이터 삭제(Data Reduction), 범주화(Data Suppression), 데이터 마스킹(Data Masking), K-익명성(k-anonymity), l-다양성(l-diversity), t-근접성(t-closeness)
더보기

① 가명처리(Pseudonymisation)

​② 총계처리(Aggregation)


가명처리(Pseudonymisation) - 개인 식별이 가능한 데이터에 대하여 직접 식별할  없는 다른 값으로 대체하는 기법
총계처리(Aggregation) - 개인정보에 대하여 통곗값을 적용하여 특정 개인을 판단할  없도록 하는 기법
데이터  삭제(Data Reduction) - 개인정보 식별이 가능한 특정 데이터 값을 삭제 처리하는 기법
범주화(Data Suppression) - 단일 식별 정보를 해당 그룹의 대표값으로 변환(범주화)하거나 구간 값으로 변환(범위화)하여 고유 정보의 추적  식별을 방지하는 기법
데이터 마스킹(Data Masking) - 개인 식별 정보에 대하여 전체 또는 부분적으로 대체값(공백, ‘*’, 노이즈 )으로 변환하는 기법

[출처] [2022 2 기사 실기 출제예상 문제] (확장) 보안기사 응용 문제 - 3 (수제비- IT 커뮤니티 (정보처리기사,빅데이터분석기사 )) | 작성자 수제비쌤

 

 

 

 

 

48. 다음은 UML 다이어그램에 대한 설명이다. 괄호(       ) 안에 들어갈 UML 다이어그램의 유형을 쓰시오.

- (                    ) 다이어그램은  컴포넌트 사이의 종속성을 표현하고, 결과물, 프로세스, 컴포넌트 물리적 요소들의 위치를 표현하는 다이어그램이다.
- (                    ) 다이어그램은 객체 상태 변화와 시간 제약을 명시적으로 표현하는 다이어그램이다.
더보기

① 배치(Deployment)

​② 타이밍(Timing)


UML 다이어그램 : 클객컴배복패, 유시커상활타

구분 : 구조적 (정적)다이어그램, 행위적 (동적) 다이어그램 

구분 다이어그램 설명
구조적 다이어그램
(Structural)/ 정적 (Static)
클래스
(Class)
객체지향 모델링 시 클래스의 속성 및 연산과 클래스간 정적인 관계를 표현한 다이어그램
객체
(Object)
클래스에 속한 사물(객체)들, 즉 인스턴스를 특정 시점의 객체와 객체 사이의 관계로 표현
연관된 모든 인스턴스를 표현함
컴포넌트
(Component)
시스템을 구성하는 물리적인 컴포넌트와 그들 사이의 의존관계를 나타냄
배치
(Deployment)
컴포넌트의 사이의 종속성을 표현하고 결과물, 프로세스, 컴포넌트등 물리적 요소들의 위치 표현
복합체구조
(Composite structure)
클래스나 컴포넌트가 복합구조를 갖는 경우 그 내부 구조를 표현하는 다이어그램 
패키지
(Package)
유스케이스나 클래스 등의 모델 요소들을 그룹화 한 패키지들의 관계를 표현 
행위적 다이어그램
(Begavioral)/ 동적 (Dynamic)
유스케이스
(Usecase)
시스템이 제공하고 있는 기능 및 그와 관련된 외부요소를 사용자의 관점에서 표현
시퀀스
(Sequence)
객체 간 동적 상호작용을 시간적 개념을 중심으로 메시지 흐름으로 표현
커뮤니케이션
(Communication)
동작에 참여하는 객체들이 주고 받는 메시지를 표현하고, 메시지 뿐만 아니라 객체 간의 연관까지 표현
상태 (State) 하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호 작용에 따라 상태가 어떻게 변화하는지 표현
활동 (Activity) 시스템이 어떤 기능을 수행하는지 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서대로 표현
타이밍
(Timing)
객체의 상태 변화와 시간 제약을 명시적으로 표현

[출처] [2022 2 기사 실기 출제예상 문제] (2과목) 화면 설계 - 4 (수제비- IT 커뮤니티 (정보처리기사,빅데이터분석기사 )) | 작성자 수제비쌤

 

 

 

 

49. 다음은 관계 데이터 모델의 구성요소에 대한 설명이다. 괄호(       ) 안에 들어갈 구성요소를 쓰시오.

- (                    ) : 튜플(Row)
​- (                    ) : 애트리뷰트(Column)
- (          ③          ) : 정의된 스키마에 따라 생성된 테이블에 실제 저장된 데이터의 집합
더보기

1. 카디널리티

2. 디그리

3. 인스턴스


구성요소 설명
릴레이션 행(Row)와 열(Column)구성된 테이블 = 고객정보
튜플(Tuple) 릴레이션의 행에 해당
속성 (Attribute) 릴레이션의 열에 해당
카디널리티
(Cardinality)
튜플의 수
차수(Degree) 애트리뷰트의 수
스키마(Schema) 데이터베이스 스키마 - 데이터베이스의 구조, 제약조건 등의 정보를 담고있는 기본적 구조
릴레이션 스키마 - 릴레이션의 논리적 구조 DDL로 실행, 정적 특징, 고객(고객아이디, 고객이름, 나이, 등급, 직업, 적립금)
인스턴스
(Instance)
데이터베이스 스키마 - 정의된 스키마에 따라 생성된 테이블에 실제 저장된 데이터 집합
릴레이션 스키마 - 릴레이션에 존재하는 튜플들 집합, DML로 실행, 동적특징
도메인(Domain) 하나의 속성이 가질 수 있는 모든 (원자) 값의 집합
속성 값을 입력/수정 시 적합성 판단의 기준이 됨 (입력제약) - int, char 등 (데이터타입)
널(null) 속성 값을 아직 모르거나 해당 되는 값이 없음 (공백, 0)과는 다른의미

[출처] [2022 2 기사 실기 출제예상 문제] (3과목) 데이터 입출력 구현 - 6 (수제비- IT 커뮤니티 (정보처리기사,빅데이터분석기사 )) | 작성자 수제비쌤

 

 

 

 

50. 다음은 악성 프로그램에 대한 설명이다. 괄호(       ) 안에 들어갈 용어를 영문 Full-name으로 쓰시오.

- (                    )/ 시스템에서 다른 시스템으로 전파하기 위해서 사람이나 도구의 도움이 필요한 악성 프로그램이다.
​​- (                    )/ 스스로를 복제하여 네트워크 등의 연결을 통하여 전파하는 악성 소프트웨어 컴퓨터 프로그램이다.
- (                    )/ 합법적 프로그램 안에 내장된 코드로서 특정한 조건이 만족하였을 작동하는 악성 코드이다.
더보기

1. Virus

2. Worm

3. Logic Bomb


바이러스와 웜의 차이는 바이러스는 스스로 전달할 수 없지만 웜은 가능하다는 점입니다. 

웜은 네트워크를 사용하여 자신의 복사본을 전송할 수 있으며, 어떠한 중재 작업 없이 그렇게 할 수 있습니다. 

일반적으로 웜은 네트워크를 손상시키고 대역폭을 잠식하지만, 바이러스는 컴퓨터의 파일을 감염시키거나 손상시킵니다. 바이러스는 보통 네트워크에 영향을 주지 않으며 대상 컴퓨터에 대해서만 활동합니다.

 

로직 밤은 악성 기능이 특정 조건이 충족될 때 작동하는 소프트웨어 시스템에 의도적으로 삽입된 코드입니다. 예를 들어, 프로그래머는 회사에서 해고될 경우 급여 데이터베이스 트리거와 같은 파일 삭제를 시작하는 코드를 숨길 수 있습니다.

[출처] [2022 2 기사 실기 출제예상 문제] (9과목) 소프트웨어 개발 보안 구축 - 7 (수제비- IT 커뮤니티 (정보처리기사,빅데이터분석기사 )) | 작성자 수제비쌤

 


51. 다음은 운영체제에서 프로세스 간 서로 데이터를 주고받기 위한 통신 기술인 IPC 주요 기법들에 대한 설명이다. 괄호( ) 안에 들어갈 용어를 쓰시오.

- ( ① )은/는 메시지가 발생하면 메모리 공간을 이용하여 메세지를 전달하는 통신 방식으로 FIFO 정책으로 데이터가 전송된다. ( ① )은/는 메시지 또는 패킷 단위로 동작하는 프로세스 간 통신 방법이다.
​​- 프로세스간 메시지 전송을 하거나, 메모리 공유를 통해서 특정 데이터를 공유하게 될 때 공유된 자원에 여러 개의 프로세스가 동시에 접근하면 안되며, 한번에 하나의 프로세스만 접근 가능하도록 해야 하기 때문에 ( ② )을/를 사용하여 상호배제를 구현해야 한다.

​​답)

더보기

1. 메세지큐
2. 세마포어


메시지 큐 
(Message Queue)
비동기 메시지를 사용하는 다른 응용 프로그램 사이에서 데이터를 송수신 하는 기술
세마포어(Semaphore) 에츠허르 데이크스트라가 고안한, 두 개의 원자적 함수로 조작되는 정수 변수로서, 멀티프로그래밍환경에서 공유 자원에 대한 접근을 제한하는 방법으로 사용된다.
이 변수는 공유 자원에 대한 접근을 제어하기 위해 사용되며, 이를 통해 프로세스 간 동기화를 달성할 수 있다. 세마포어는 뮤텍스와 유사하지만, 뮤텍스는 단일 프로세스 내에서만 사용되는 반면 세마포어는 여러 프로세스 간에 공유될 수 있다.

 

 

[출처] [2022년 제2회 기사 실기 출제예상 문제] (4과목) 통합 구현 - 8 (수제비- IT 커뮤니티 (정보처리기사,빅데이터분석기사 등)) | 작성자 수제비쌤

 


52. 다음 중 [직원] 테이블에서 부서별로 그룹을 묶었을 때 부서의 급여합계가 500 이상인 부서, 해당 부서의 급여합계를 출력하는 구하는 쿼리를 작성하시오.

[직원]

이름
부서
급여
장길산
영업
300
임꺽정
마케팅
400
조맹달
기획
200
홍길동
기획
500
고길동
마케팅
100

[결과]

부서
급여합계
마케팅
500
기획
700

답) 

더보기

SELECT 부서, SUM(급여) AS 급여합계 FROM 직원
  GROUP BY 부서 HAVING SUM(급여)  >= 500;

[출처] [2022년 제2회 기사 실기 출제예상 문제] (7과목) SQL 응용 - 9 (수제비- IT 커뮤니티 (정보처리기사,빅데이터분석기사 등)) | 작성자 수제비쌤

 

 

 

53. 다음은 인터페이스 시스템에 대한 내용이다. 괄호( ) 안에 들어갈 용어를 쓰시오.

- A은행과 B은행은 마이데이터 법에 따라서 사용자 거래 내역을 공유하는 인터페이스 시스템을 구축하였다.
- 외부, 내부 모듈 연계는 ( ) 방식을 통해 은행에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간을 하나의 시스템으로 관리 운영할 수 있도록 서비스 중심의 통합을 지향하도록 했고,
- 속성-값(Attribute-Value Pair) 쌍 또는 “키-값 쌍”으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷인 ( ​​​​​​​​​ ② )을/를 사용하여 구축하였다.
- 또한 상호간 거래 내역 데이터를 전송할 때에는 반드시 IP 계층(3계층)에서 무결성과 인증을 보장하는 인증 헤더(AH)와 기밀성을 보장하는 암호화(ESP)를 이용하여 양 종단 간(End Point) 구간에 대한 보안 서비스를 제공하는 터널링 프로토콜인 ( )을/를 사용하도록 시스템을 구축하였다.
더보기

​1. ESB
2. JSON
3. IPSec


ESB 방식

기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션 간 하나의 시스템으로 관리 운영할 수있도록 서비스 중심 통합 지향하는 아키텍처

미들웨어 (Bus)를 중심으로 각각 프로토콜이 호환할 수 있도록 느슨한 결합방식 지원

* 서비스들을 컴포넌트화 된 논리적 집합으로 묶는 핵심 미들웨어

 

보안 프로토콜

종류 설명
IPSec
(Internet Protocol Security)
IP계층에서 무결성과 인증을 보장하는 인증 헤더(AH)와 기밀성을 보장하는 암호화(ESP)를 이용한 IP 보안 프로토콜
SSL/TLS
(Secure Socket Layer / Transport Layer Security))
전송계층과 응용계층 사이 클라이언트와 서버간의 웹데이터 암호화(기밀성), 상호인증 및 전송시 데이터 무결성 보장하는 보안 프로토콜
S-HTTP
(Secure Hypertext Transfer Protocol)
웹 상에서 네트워크 트래픽을 암호화 하는방법

 

 

54.  다음 Java 프로그램의 실행 결과를 쓰시오.

abstract class Animal{
   abstract void value();
   void key(){
     System.out.print("animal");
   }
}
class Dog extends Animal{
   void value(){
     System.out.print("dog");
   }
}
class Soojebi {
   public static void main(Strings[] args) {
     Animal d = new Dog();
     d.key();
     d.value();
   }
}​
더보기

답) animaldog

[출처] [2022년 제2회 기사 실기 출제예상 문제] (6과목) 프로그래밍 활용 - 11 (수제비- IT 커뮤니티 (정보처리기사,빅데이터분석기사 등)) | 작성자 수제비쌤

 

 

 

55. 다음에서 설명하는 프로토콜은 무엇인가?

- 비트(Bit) 위주의 프로토콜로, 각 프레임에 데이터 흐름을 제어하고 오류를 보정할 수 있는 비트 열을 삽입하여 전송하는 역할하는 프로토콜
- 상단방향, 반이중, 전이중 통신을 모두 지원하고 오류 제어를 위해 Go-Back-N ARQ 방식을 사용
- 점대점 방식이나 다중방식의 통신에 사용되는 동기식 비트 중심의 데이터 링크 프로토콜
더보기

HDLC(High-Data Link Control) 프로토콜


HDLC와 PPP의 주요 차이점은 HDLC는 비트 지향 프로토콜이며 PPP는 문자 지향 프로토콜입니다. 

HDLC 및 PPP는 WAN (광역 네트워크)에서 사용되는 중요한 데이터 링크 계층 프로토콜로, HDLC를 효율적인 결과를 위해 PPP로 구현할 수도 있습니다.

HDLC는 다중접속이 가능하며 제어필드를 다양한 용도로 사용할 수 있지만, PPP에서는 제어필드에 어떤 값이 들어가더라도 사용되지 않습니다

 

 

 

 

56. 다음은 소프트웨어 아키텍처의 시스템 품질 속성에 대한 설명이다. 괄호( ) 안에 들어갈 품질 속성을 쓰시오.

- ( ① )은/는 사용자가 원하는 작업을 수행할 때 시스템을 쉽게 사용하고, 고민 없이 사용할 수 있는 편의성이다.
- ( ② )은/는 주로 응답 시간과 관련이 있는 속성으로 사용자의 요청이 있을 때 시스템이 적절하고 신속하게 처리할 수 있는 능력이다.
더보기

​1. 사용성 (Usability)
2. 성능 (Performance)


시스템 측면

품질 속성 내용
성능 사용자 요청 같은 이벤트가 발생했을 때, 이를 적절하고 빠르게 처리하는 것
보안 허용되지 않은 접근을 막고, 허용된 접근에는 적절한 서비스를 제공하는 것
가용성 장애 없이 정상적으로 서비스를 제공하는 것
기능성 사용자가 요구한 기능을 만족스럽게 구현하는 것 
사용성 사용자가 소프트웨어를 사용하는데 헤매지 않도록 명확하고 편리하게 구현하는 것
변경 용이성 소프트웨어가 처음 설계 목표와 다른 하드웨어나 플랫폼에서도 동작할 수 있도록 구현하는 것
확장성 시스템의 용량, 처리능력 등을 확장시켰을 때 이를 효과적으로 활용할 수 있도록 구현하는 것
기타 속성 테스트 용이성, 배치성, 안전성 등

 

 

57. 다음은 테스트 관련 용어이다. 괄호( ) 안에 들어갈 용어을 보기에서 골라 쓰시오.

- ( ① )은/는 결정 조건 내 모든 개별 조건식의 모든 가능한 조합을 100% 보장하는 테스트 커버리지로 기본 조건식의 가능한 논리적인 조합이 적어도 한 번은 테스트되도록 테스트 케이스를 도출한다.
- ( ② )은/는 수행 가능한 모든 경로를 테스트하는 기법으로 맥케이브의 순환복잡도를 기반으로 커버리지를 계산한다.

| 보기 |

Branch Coverage, Multiple Condition Coverage, Condition Coverage, Modified Condition/Decision Coverag, Control Flow Testing, Base Path Coverage, Statement Coverage, Data Flolw Testing, Equivalence Partitioning Testing, Decision Table Testing, State Transition Testing
더보기

1. 다중 조건 커버리지 (Multiple Condition Coverage)
2. 기본 경로 커버리지 (Base Path Coverage)


  • 화이트박스테스트 (구조 기반 테스트) - 구결조 조변다 기제데

원시 코드의 논리적인 모든 경로를 테스트하여 테스트 케이스를 설계하는 방법

구문 (문장) 커버리지
(Statement Coverage)
프로그램 내의 모든 명령문을 적어도 한 번 수행
ex) a=1; b=2; c=a+b; d=c*2; 이렇게 구문 4개 모두 실행
결정 (분기) 커버리지
(Decision/Branch Coverage)
결정 포인트 내의 전체 조건식이 적어도 한 번은 참과 거짓의 결과를 수행
ex) 모든 결정문 (if-else) 가 참과 거짓을 각각 한번씩 수행 
조건 커버리지
(Condition Coverage)
결정 포인트 내의 각 개별조건식이 적어도 한번은 참과 거짓의 결과가 되도록 수행
ex) 각 개별조건식 (a>b)와 (c<d) 가 각각 참일때와 거짓일때 한번씩 실행
조건/결정 커버리지
(Condition/Decision Coverage)
전체 조건식 + 개별 조건식 모두 참 한번, 거짓 한번 결과가 되도록 수행
ex) 각 개별조건식 (a>b)와 (c<d)가 각각 참, 거짓일때 수행하고 if(a>b && c<d)도 한번씩 실행
변경 조건/결정 커버리지 
(Modified Condition/Decision Coverage)
개별 조건식이 다른 개별 조건식에 영향을 받지 않고 전체 조건식에 독립적으로 영향을 주도록 함
ex) a>b와 c<d가 각각 전체 조건식의 결과에 영향을 줄 수 있는 값들로 테스트
다중 조건 커버리지
(Multiple Coverage)
결정 조건 내 모든 개별 조건식의 모든 가능한 조합을 100%보장
ex) a>b, c<d 각각 참또는 거짓인경우 수가 4가지 있으므로 4가지 경우 모두 테스트
기본 경로 커버리지
(Base Path Coverage)
수행 가능한 모든 경로를 테스트
* 맥케이브 복잡도 : 간선수 - 노드수 +2
제어 흐름 테스트
(Control flow)
프로그램 제어 구조를 그래프 형태로 나타내어 내부 로직 테스트
데이터 흐름 테스트
(Data flow)
제어 흐름 테스트에 데이터 사용 현황 추가

 

 

 
 

58. 다음은 네트워크 보안 공격이다. 괄호( ) 안에 들어갈 용어를 쓰시오.

- ( ① )은/는 TCP 연결 설정을 위한 3-way handshaking과정에서 half-open 연결 시도가 가능하다는 취약성을 이용하는 공격 방식이다.
- ( ② )은/는 서버와 클라이언트가 TCP 통신을 하고 있을 때, RST 패킷을 보내고 시퀀스 넘버 등을 조작하여 연결을 가로채는 공격 방식이다.
- ( )은/는 IP 패킷의 재조합 과정에서 잘못된 Fragment Offset 정보로 인해 수신시스템이 문제를 발생하도록 만드는 DoS 공격이다.

더보기

1. SYN 플러딩 (SYN Flooding)

2. 세션 하이재킹 (Session Hijacking)

3. 티어드롭 (Tear Drop)


세션 하이재킹  세션 하이재킹은 공격자가 사용자 모르게 또는 동의 없이 사용자의 웹 세션을 제어하는 ​​일종의 사이버 공격이다. 이는 일반적으로 서버에서 사용자 세션을 인증하고 식별하는 데 사용되는 사용자의 세션 ID 또는 토큰을 훔치거나 스니핑하여 수행됩니다.
세션 하이재킹 공격은 패킷 스니핑, XSS(Cross-Site Scripting) 및 MITM(Man-in-the-Middle) 공격을 비롯한 다양한 기술을 통해 수행될 수 있습니다. 세션 하이재킹을 방지하려면 HTTPS와 같은 보안 통신 프로토콜을 사용하고, 강력한 인증 메커니즘을 구현하고, 소프트웨어를 정기적으로 업데이트 및 패치하여 알려진 취약점을 해결하는 것이 중요합니다.
SYN 플러딩 TCP 프로토콜의 구조적인 문제를 이용한 공격
서버의 동시 가용 사용자수를 SYN패킷만 보내 점유하여 다른 사용자가 서버를 사용 불가게 하능 공격 
공격자는 ACK 를 발송하지 않고 계속 새로운 연결 요청을 하게되어 서버는 자원할당을 해지않고 자원만 소비하여 고갈됨
UDP플러딩 대량의 UDP 패킷을 만들어 임의의 포트번호로 전송하여 응답메시지를 생성하게하여 지속해서 자원을 고갈시키는 공격
ICMP 패킷은 변조되어 공격자에게 전달되지 않아 대기함
스머프 / 스머핑
(Smurf)
출발지 주소를 공격의 대상의 IP로 설정하여 네트워크 전체에게 ICMP Echo 패킷을 직접 브로드캐스팅하여 마비시키는 공격
바운스 사이트라고 불리는 제3의 사이트를 이용해 공격
죽음의 핑
(PoD : Ping of Death)
ICMP패킷 (Ping)을 정상적인 크기보다 아주 크게 만들어 전송하면 다수의 IP 단편화가 발생하고 수신 측에서는 단편화된 패킷을 처리(재조합)하는 과정에서 많은 부하가 발생하거나 재조합 버퍼의 오버플로우가 발생하여 정상적인 서비스를 하지 못하도록 하는 공격기법
랜드어택
(Land Attack)
출발지 IP와 목적지 IP를 같은 패킷주소로 만들어 보냄으로써 수신자가 자기자신에게 응답을 보내게 하여 시스템의 가용성 침해하는 공격기법
티어드롭
(Tear Drop)
IP 패킷의 재조합 과정에서 잘못된 Fragment Offset 정보로 인해 수신 시스템이 문제를 발생하도록 만드는 DoS 공격
공격자는 UP Fragment Offset 값을 서로 중첩되도록 조작하여 전송하고 이를 수신한 시스템이 재조합 하는 과정에서 오류가 발생, 시스템의 기능을 마비시키는 공격방식
해커는 대상 컴퓨터 시스템에 일련의 조각난 패킷을 보낸후 컴퓨터 시스템이 이러한 패킷을 수신하면 올바른 순서로 다시 조립하려고 시도한다.
그러나 패킷의 형식이 잘못되었기 때문에 이 프로세스로 인해 시스템이 과부하되고 컴퓨터가 충돌하거나 중지될 수 있다.
봉크/보잉크
(Bonk/Boink)
프로토콜의 오류제어를 이용한 공격기법, 시스템의 패킷 재 전송과 재조립이 과부하를 유발
ex) 봉크 : 같은 시퀀스 번호를 계속 보냄
보잉크 : 일정한 간격으로 시퀀스 번호에 빈 공간 생성

 

 

59. 다음은 IT 기술에 대한 설명이다. 괄호( ) 안에 들어갈 용어를 쓰시오.

​- ( ① )은/는 네트워크를 제어부(Control Plane), 데이터 전달부(Data Plane)로 분리하여 네트워크 관리자가 보다 효율적으로 네트워크를 제어, 관리할 수 있는 기술이다. 기존의 라우터, 스위치 등과 같이 하드웨어에 의존하는 네트워크 체계에서 안정성, 속도, 보안 등을 소프트웨어로 제어, 관리하기 위해 개발되었다.
- ( ② )은/는 범용 하드웨어(서버/스토리지/스위치)에 가상화 기술을 적용하여 네트워크 기능을 가상 기능으로 모듈 화하여 필요한 곳에 제공(스위치, 라우터 등)하는 기술이다.
더보기

1. SDN ( Software Defined Networking) 

2. NFV  (Network Function Virtualization)


SDN이랑 클라우드는 같은 의미일까? NO!

SDN은 네트워크 구축 방식이고 클라우드 인프라는 클라우드 컴퓨팅 환경을 생성하는 방식입니다. 

예를 들어, SDN은 네트워크를 소프트웨어로 구성하여 유연성을 높이는 반면, 클라우드 인프라는 하드웨어, 가상 리소스, 네트워크 등 모든 구성 요소를 통합하여 클라우드 컴퓨팅 환경을 생성합니다. 이러한 차이점이 있습니다.

 

 

SDN (Software Defined Networking)과 NFV (Network Functions Virtualization)는 모두 네트워크 가상화 기술입니다. 

그러나 이 둘은 서로 다른 기술입니다.

SDN은 네트워크의 제어 플레인을 네트워크 트래픽을 전달하는 데이터 플레인과 분리하는 개념입니다. 이런 분리의 목적은 중앙에서 관리하고 프로그래밍이 가능한 네트워크를 만드는 것입니다.

반면 NFV는 전통적인 하드웨어 기반의 네트워크 장비를 가상화하여 소프트웨어로 구현하는 것으로, 이를 통해 네트워크 장비의 유지보수 비용을 줄이고 유연성을 높일 수 있습니다.

SDN은 네트워크의 제어와 데이터 전송을 분리하여 제어를 중앙에서 수행하고 데이터 전송은 분산된 스위치에서 수행합니다.

반면 NFV는 네트워크 기능을 추상화하여 표준화된 컴퓨팅 노드에서 실행되는 소프트웨어를 통해 네트워크 기능을 설치, 제어 및 조작하도록 지원합니다.

즉, SDN은 네트워크의 제어와 데이터 전송을 분리하는 기술이며, NFV는 하드웨어 기반의 네트워크 장비를 가상화하여 소프트웨어로 구현하는 기술입니다1.


[출처] [2022년 제2회 기사 실기 출제예상 문제] (11과목) 응용 SW 기초 기술 활용 - 16 (수제비- IT 커뮤니티 (정보처리기사,빅데이터분석기사 등)) | 작성자 수제비쌤

 

 

 

 

 

 

60. 다음은 정보보안 위험의 처리 방식에 대한 설명이다. 괄호( ) 안에 들어갈 위험 처리 방안을 쓰시오.

- ( ① )은/는 사업 목적상 위험을 처리하는 데 들어가는 과도한 비용 또는 시간으로 인해 일정 수준의 위험을 받아 들이는 방법으로 그 위험이 조직에 발생시키는 결과에 대한 책임을 관리층이 지는 방식이다.
- ( ② )은/는 위험에 대한 책임을 제 3자와 공유하는 것으로, 보험을 들거나 다른 기관과의 계약을 통하여 잠재적 손실을 제 3자에게 이전하거나 할당하는 방식이다.

 


61. 다음은 ​디지털 저작권 관리(DRM) 구성요소에 대한 설명이다. 괄호( ) 안에 들어갈 구성 요소를 쓰시오.

- ( ① )은/는 콘텐츠를 메타데이터와 함께 배포 가능한 단위로 묶는 도구이다.
​- ( ​② )은/는 저작권에 대한 사용 권한, 라이센스 발급, 사용량에 따른 관리 등을 수행하는 도구이다.
- ( ​③ )은/는 배포된 디지털 콘텐츠의 이용 권한을 통제하는 장치이다.
더보기

1. 패키저
2. 클리어링 하우스
3. DRM 컨트롤러 (DRM Controller)


디지털 저작권 관리 (DRM; Digital Right Management)

저작권자가 배포한 디지털 콘텐츠가 저작권자가 의도한 용도로만 사용되도록 디지털 콘텐츠 관리 및 보호 기술

 

1) 디지털 저작권 관리 구성요소

구성요소 설명
콘텐츠 제공자
(Content Provider)
콘텐츠 제공하는 저작권자
콘텐츠 소비자
(Content Customer)
콘텐츠를 구매하여 사용하는 주체
콘텐츠 분배자
(Content Distributor)
암호화된 콘텐츠를 유통하는 곳이나 사람
클리어링 하우스
(Clearing House)
저작권에 대한 사용권한, 라이센스 발급, 암호화 된 키 관리, 사용량에 따른 결제 관리 등을 수행하는 곳
DRM 콘텐츠
(DRM Content)
서비스하고자 하는 암호화된 콘텐츠, 콘텐츠와 관련된 메타데이터 콘텐츠 사용 정보를 패키징하여 구성된 콘텐츠
DRM Controller 배포된 디지털 콘텐츠의 이용 권한을 통제
패키저
(Packager)
콘텐츠를 메타데이터와 함께 배포 가능한 단위로 묶은 도구
보안 컨테이너
(Security Container)
원본 콘텐츠를 안전하게 유통하기 위한 전자적 보안장치

 

 

 

 

 

62. 다음은 ​보안 관련 용어 설명이다. 괄호( ) 안에 들어갈 용어를 쓰시오.

- ( ① )은/는 소프트웨어 개발 과정에서 개발자의 실수, 논리적 오류 등으로 인해 소스 코드 등에 내포될 수 있는 잠재적인 보안 취약점을 최소화하고, 안전한 소프트웨어를 개발하기 위한 일련의 보안 활동이다.
​- ( ​② )은/는 미국 비 영리회사인 MITRE 사에서 공개적으로 알려진 소프트웨어의 보안취약점을 표준화한 식별자 목록이다.
- ( ​③ )은/는 오픈소스 웹 애플리케이션 보안 프로젝트로서 주로 웹을 통한 정보 유출, 악성 파일 및 스크립트, 보안 취약점 등을 연구하는 기관이다.
더보기

1. 시큐어코딩
2. CVE (Common Vulnerabilities and Exposures)
3. OWASP (The Open Web Application Security Project)


시큐어 코딩 가이드

설계 및 구현 단계에서 해킹 등의  공격을 유발할 가능성이 있는 잠재적인 보안 취약점을 사전에 제거하고 외부 공격으로부터 안전한 소프트웨어를 개발하는 기법

  • 보안 취약점 : 운영 단계의 보안 리스크
  • 보안 약점 : 개발 단계의 보안 리스크
입력데이터 검증 및 표현 취약점 XSS, CSRF, SQL Injection
보안기능 소프트웨어 개발단계에서 인증, 접근제어, 기밀성, 암호화, 권한 관리등을 적절하게 구현하기 위한 보안 점검항목
에러처리 프로그램 실행시 발생하는 에러를 예외처리 하지 못하거나 에러에 중요한 정보가 포함될 때 발생할 수 있는 취약점 예방하기 위한 보안 점검항목
세션 통제 세션과 관련되어 발생할 수 있는 취약점을 예방하기 위한 보안 점검항목
코드 오류 개발자의 실수로 발생하는 프로그램 오류를 예방하기 위한 보안 점검항목
캡슐화 외부에 은닉이 필요한 중요한 데이터와 인가되지 않은 사용자에게 노출되지 않게 보안 취약점을 예방하기 위한 보안 검증항목
API 오용 보안에 취약한 API를 오용하여 발생할 수 있는 보안 취약점 예방을 위한 보안 검증 항목

 

CVE는 컴퓨터 보안 결함 목록입니다.

이 목록은 보안 결함에 대한 정보를 제공합니다. 이 정보는 벤더와 연구자가 발행한 보안 권고 사항에 최소 1개의 CVE ID가 언급되는 것이 일반적입니다. 이러한 CVE ID는 보안 결함을 식별하는 데 사용됩니다. 이렇게 식별된 보안 결함은 CVE ID 번호가 할당됩니다. 이러한 CVE ID 번호는 CVE 항목이라고도 합니다.

 

OWASP는 오픈소스 웹 애플리케이션 보안 프로젝트입니다. 

주로 웹에 관한 정보노출, 악성 파일 및 스크립트, 보안 취약점 등을 연구하며, 10대 웹 애플리케이션의 취약점 (OWASP TOP 10)을 발표했습니다. OWASP는 전 세계적으로 보안 전문가들이 보안 취약점 진단 기준과 표준을 수립하고, 웹 애플리케이션 보안 관련 문서를 배포하고 보안 취약점 관련 툴을 개발하는 오픈소스 커뮤니티입니다.

 

 

 

63. 관계형 데이터베이스 역정규화(denormalization)에 대한 설명으로 옳지 않은 것을 모두 고르시오. (기호로 쓰시오.)

ㄱ. 릴레이션들은 역정규화한 후 정규형 수준이 높아진다.
ㄴ. 역정규화 기법에는 테이블 병합, 테이블 분할, 중복 테이블 추가, 컬럼 중복화, 중복관계 추가 등이 있다.
ㄷ. 데이터베이스의 데이터 무결성을 강화할 목적으로 개발되었다.
ㄹ. 릴레이션들의 데이터 중복을 줄임으로써 데이터베이스의 크기를 감소시킨다.
 
ㅁ. 둘 이상의 릴레이션들에 대하여 조인한 결과를 빈번하게 이용하는 경우, 역정규화 함으로써 질의응답 시간이 단축될 수 있다.
더보기

정​​답) ㄱ, ㄷ, ㄹ

 

 

64. 다음은 ​테스트 관련 설명이다. 괄호( ) 안에 들어갈 용어를 쓰시오.

- 하나의 모듈을 테스트할 때 상위나 하위 모듈이 개발이 안 된 경우가 있다. 이때 상위나 하위 모듈이 개발될 때까지 기다릴 수 없어 가상의 상위나 하위 모듈을 만들어 사용한다. 상위 모듈 역할을 하는 가상의 모듈을 ( ① )(이)라고 하고 그 역할은 테스트할 모듈을 호출하고, 모듈 테스트 수행 후의 결과를 도출하는 역할을 한다. 반대로 하위 역할을 하는 모듈을 ( ② )(이)라고 하고 인자를 통해 받은 값을 가지고 테스트를 수행한 후 그 반환 값만 테스트할 모듈에 넘겨주는 역할을 한다.
더보기

​① 드라이버(Driver) 또는 테스트 드라이버(Test Driver)
② 스텁(Stub) 또는 테스트 스텁(Test Stub)​


스텁과 드라이버는 소프트웨어 개발, 특히 소프트웨어 테스팅에 사용되는 두 가지 유형의 코드입니다. 스텁은 하향식 통합에서 기능으로 사용되고 드라이버는 상향식 통합에서 기능으로 사용됩니다.
스텁은 하위 모듈의 대리자로서 상위 모듈과의 상호작용을 시뮬레이션하며, 드라이버는 상위 모듈의 대리자로서 하위 모듈과의 상호작용을 시뮬레이션합니다.

 

 

 

 

65. 다음은 비용산정 모형에 대한 설명이다. 괄호( ) 안에 들어갈 모형을 쓰시오.

- ( ① )은/는 보헴(Boehm)이 제안한 모형으로 프로그램 규모에 따라 비용을 산정하는 방식으로 비용산정 결과는 프로젝트를 완성하는 데 필요한 노력(Man-Month)으로 산정한다.
- ( ② )은/는 소프트웨어 개발주기의 단계별로 요구할 인력의 분포를 가정하는 방식으로 시간에 따른 함수로 표현되는 Rayleigh-Norden 곡선의 노력 분포도를 기초로 한다.
더보기

① COCOMO(COnstructive COst MOdel) 모형
② 푸트남(Putnam) 모형


1) 코드라인수 (LoC; Lines of Code)

Loc 모형은 소프트웨어 각 기능의 원시코드라인수의 낙관치(가장 적은 라인 수), 중간치 (기대치, 평균 라인수) 비관치 (가장 많은 라인 수) 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 방식이다.

* 추정 LoC = (낙관치 + (4*중간치) + 비관치) / 6

 

2) Man Month 모형

한 사람이 1개월 동안 할 수 있는 일의 양을 기준으로 프로젝트 비용 산정

* MM(Man Month) = (Loc)/(프로그래머의 월간 생산성)

* 프로젝트 기간 = MM / 프로젝트 인원

 

3) COCOMO (COnstructive COst MOdel) 모형 - 보헴 코코모 조반내

보헴이 제안한 모형, 프로그램 규모에 따라 비용 산정 

유형 설명
조직형(Organic Mode) 기관 내부에서 개발된 중 소규모의 소프트웨어
일괄 자료처리나 과학기술 계산용, 비즈니스 자료 처리개발
5만(50KDSI)라인 이하의 소프트웨어 개발
반 분리형 (Semi-Detached Mode) 단순형과 임베디드 중간형
트랜잭션 처리 시스템, 데이터베이스 관리 시스템, 컴파일러, 인터프리터 = 유틸 개발 
30만(300KDSI)라인 이하의 소프트웨어 개발
내장형 = 임베디드 (Embedded Mode) 초대형 규모의 트랜잭션 처리 시스템이나 운영체제, 실시간 처리시스템 등의 시스템 프로그램 개발
30만(300KDSI)라인 이상 소프트웨어 개발

 

4) 푸트남 (Putnam) 모형

소프트웨어 개발 주기의 단계별로 요구할 인력의 분포를 가정하는 방식

생명주기 예측 모형

시간에 따른 함수로 표현되는 Rayleigh-Norden 곡선의 분호도를 기초로 함

 

 

5) 기능점수 (FP; Function Point) 모형

기능 점수 모형은 요구기능을 증가시키는 인자별로 가중치를 부여하고

요인별 가중치를 합산하여 총 기능의 점수를 계산하여 비용 산정하는 방식

* 기능점수 (FP) = 총 기능점수 * [0.65 + (0.1 * 총 영향도)]

 

 

 

 

66. 다음은 클래스 다이어그램의 구성요소에 대한 설명이다. 괄호( ) 안에 들어갈 구성요소를 쓰시오.

- ( ① )은/는 클래스의 구조적 특성에 이름을 붙인 것으로 특성에 해당하는 인스턴스가 보유할 수 있는 값의 범위를 기술한다.
- 클래스에 접근할 수 있는 정도를 표현한 ( ② )의 유형에는 -, +, #, ~ 가 있다.

 

 

 

 

67. 다음은 시스템 보안 공격기법에 대한 설명이다. 괄호( ) 안에 들어갈 용어를 쓰시오.

- ( ① )은/는 컴퓨터 사용자의 키보드 움직임을 탐지해서 저장하고, ID나 패스워드, 계좌 번호, 카드 번호 등과 같은 개인의 중요한 정보를 몰래 빼가는 해킹 공격이다.
​- ( ② )은/는 시스템 침입 후 침입 사실을 숨긴 채 차후의 침입을 위한 백도어, 트로이 목마 설치, 원격 접근, 내부 사용 흔적 삭제, 관리자 권한 획득 등 주로 불법적인 해킹에 사용되는 기능을 제공하는 프로그램의 모음이다.
더보기

1. 키로거 공격 (Key Logger Attack)
2. 루트킷 (Rootkit)


2) 백도어 (Backdoor)

어떤 제품이나 컴퓨터 시스템, 암호 시스템 혹은 알고리즘에서 정상적인 인증 절차를 우회하는 기법

 

(3) 주요 시스템 보안 공격 기법

공격기법 설명
포맷 스트링 공격
(Format String Attack)
포맷스트링을 인자로 하는 함수의 취약점을 이용한 공격으로 외부로부터 입력된값을 검증하지 않고 입출력 함수의 포맷스트링을 그대로 사용하는 경우 발생
레이스 컨디션 공격
(Race Condition Attack)
레이스 컨디션은 둘 이상의 프로세스나 스레드가 공유자원을 동시에 접근할 떄 접근 순서에 따라 비정상적인 결과가 발생하는 조건/상황
키로거 공격
(Key Logger Attack)
컴퓨터의 사용자 키보드 움직임을 탐지해서 ID, PW 계좌번호 , 카드번호 등 개인중요정보를 몰래 빼가는 해킹공격
루트킷
(Rootkit)
시스템 침입 후 침입 사실을 숨긴채 차후 침입을 위한 백도어, 트로이목마 설치, 원격접근 내부사용흔적삭제 관리자 권한 획득 등 주로 불법적 해킹에 사용되는 기능제공

 

 

 

 

 

68. 다음은 클래스 간의 관계(Relationships)에 대한 설명이다. 괄호( ) 안에 들어갈 용어를 쓰시오.

- ( ① )은/는 집합 관계의 특수한 형태로, 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계를 표현한다.
​- ( ② )은/는 ​하나의 클래스에 있는 멤버 함수의 인자가 변함에 따라 다른 클래스에 영향을 미칠 때의 관계로 사물 사이에 서로 연관은 있으나 필요에 따라 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계를 표현한다.

 

 

 

 

69. 다음은 소프트웨어 아키텍처 패턴에 대한 설명이다. 괄호( ) 안에 들어갈 아키텍처 패턴의 유형을 쓰시오.

- 분산 시스템을 위한 ( ) 아키텍처 패턴은 연산, 통신, 조정을 책임지는 부분과 제어되고 동기화되는 대상으로 구성되는 패턴으로 컴포넌트들에서 처리된 결과물을 돌려받아 최종 결과값을 산출하는 방식으로 작업을 수행하는 패턴이다.
더보기

마스터-슬레이브 (Master-Slave) 패턴 


소프트웨어 아키텍처 패턴

소프트웨어 아키텍처 패턴은 소프트웨어를 설계할 때 참조할 수 있는 전형적 해결방식

 

유형 설명
계층화패턴 (Layered Pattern) 계층화 패턴은 시스템을 계층으로 구분하여 구성하는 패턴
서로 마주보는 두개의 계층 사이에서만 상호작용 이루어짐
클라이언트 - 서버 패턴 
(Client-Server Pattern)
클라이언트-서버 패턴은 하나의 서버와 다수의 클라이언트로 구성된 패턴
사용자가 클라이언트를통해 서버에 서비스를 요청하면 서버는 클라이언트에게 서비스를 제공
(ex, 웹브라우저와 웹서버)
파이프-필터 패턴
(Pipe - Filter Pattern)
파이프-필터패턴은 데이터 스트림을 생성하고 처리하는 시스템에서 사용가능
서브시스템이 입력 데이터를 받아 처리하고 결과를 다음 서브시스템으로 넘겨주는 과정을 반복
필터 컴포넌트는 재사용성이 좋고 추가가 쉽기 때문에 확장이 용이 ( ex, 이미지 처리 파이프라인)
브로커패턴 (Broker Pattern) 분리된 컴포넌트들로 이루어진 분산 시스템에서 사용되고 이 컴포넌트들은 원격 서비스 실행을 통해 상호작용이 가능한 패턴
컴포넌트간의 통신을 조정하는 역할 수행
브로커라고하는 구성요소가 클라이언트라고 하는 다른 구성요소 사이에서 중개자 역할을 하여 공유 (ex, 주식거래플랫폼)
모델-뷰-컨트롤러
(MVC; Model View Controller Pattern)
MVC패턴, 대화형 애플리케이션을 모델, 뷰, 컨트롤러 3개의 서브시스템으로 구조화하는 패턴

 

 

 

70. 다음은 관계형 데이터베이스의 세 가지 기능적 요소에 대한 설명이다. ①~③에 들어갈 용어를 쓰시오.

- ( ① )는(은) SQL에서 삽입, 삭제, 갱신과 같은 데이터 변경문을 실행할 때 미리 명시된 조건을 만족하는 경우 특정한 동작을 자동으로 수행할 수 있도록 한다.
- ( ② )는(은) 일련의 쿼리들을 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합이다.
- ( ③ )는(은) 데이터베이스에서 데이터를 신속하게 탐색할 수 있도록 만든 데이터 구조이다.
더보기

1. 트리거 (Trigger)
2. 프로시저 (Procedure)
3. 인덱스 (Index)


03. 절차형 SQL 작성

일반적인 개발 언어처럼 SQL 언어에서도 절차 지향적인 프로그램이 가능하도록 하는 트랜잭션 언어

종류 설명
프로시저 (Procedure) 일련의 쿼리들을 마치 하나의 함수처럼 실행하기 위한 쿼리 집합
사용자 정의함수
(User Defined Function)
일련의 SQL처리를 수행하고 수행결과를 단일값으로 반환할 수 있는 절차형 SQL
트리거 (Trigger) 데이터베이스 시스템에서 삽입, 갱신, 삭제등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL

 

DDL 대상 - 도스테뷰인

DDL 설명
도메인
(Domain)
하나의 속성이 가질 수 있는 원자값들의 집합
속성의 데이터 타입과 크기, 제약조건 등의 정보
스키마
(Schema)
데이터베이스 구조, 제약조건 등 정보를 담고있는 기본적인 구조
외부 : 사용자, 개발자의 관점에서 필요로하는 데이터베이스의 논리적 구조, 사용자 뷰, 서브 스키마
개념 : 데이터 베이스의 전체적인 논리구조, 전체적인 뷰, 개체 간의 관계/제약조건/접근권한/무결성/ 보안에 대해 정의
내부 : 물리적 저장장치의 관점에서 보는 데이터베이스구조, 실제로 데이터베이스에 저장될 레코드 형식 정의/ 저장데이터 항목의 표현방법/ 내부 레코드의 물리적 순서등 표현
테이블
(Table)
데이터 저장공간

(View)
하나이상의 물리 데이틀에서 유도되는 가상의 테이블
인덱스
(Index)
검색을 빠르게 하기 위한 데이터구조

71. 다음은 암호화 알고리즘에 대한 설명이다. ①~②에 들어갈 용어를 쓰시오.

- ( ① )는(은) 3명의 MIT 수학 교수가 고안한 소수를 활용한 비대칭키 암호화 알고리즘이다.
- ( ② )는(은 )2001년 미국 표준 기술 연구소(NIST)에서 개발한 암호 알고리즘으로 128bit의 블록 크기, 키 길이에 따라 128bit, 192bit, 256bit로 분류되는 대칭 키 암호화 알고리즘이다.
더보기

1.  RSA (Rivest-Shamir-Adleman)
2. AES (Advance Encryption Strandard)


종류 설명
DES 
(Data Encryption Standard)
블록크기 64bit, 키 길이 56bit 인 페이스텔구조, 미국 연방 표준국(NIST) 암호화 알고리즘
AES DES  대체, 3DES의 성능 문제를 극복하기 위해 개발, 미국 표준 기술 연구소 
128bit의 블록 크기, 키 길이에 따라 128bit, 192bit, 256bit로 분류되는 대칭 키 암호화 알고리즘이다.
SEED 한국 인터넷 진흥원(KISA) 개발
ARIA 경량 환경 및 하드웨어에서 효율성 향상을 위해 개발, 국가정보원 + 산학연구협회가 개발
IDEA 스위스 연방기술 기관에서 개발
LFSR 선형 되먹임 시프트 레지스터
디피-헬만 최초의 공개키 알고리즘, 이산대수
RSA MIT 수학교수가 고안, 소인수분해 수학적 알고리즘
ECC RSA암호방식 대안, 타원곡선암호
ELGamal 이산대수 계산이 어려운 문제를 기본 원리로 함
MD5 MD4개선, 프로그램이나 파일의 무결성 검사에 사용
SHA-1 NSA에서 미 정부 표준으로 지정, DSA사용
SHA-256/384/512 256비트의 해시값을 생성하는 해시함수
HAS-160 국내 표준 서명 알고리즘을 위해 개발된 해시함수,  MD5 장점 + SHA-1장점

 

 

 

72. 다음에서 설명하는 프로세스 관련 용어를 쓰시오.

- 운영체제가 프로세스 관리를 위해 필요한 자료를 담고 있는 자료구조
- 프로세스 식별자, 프로세스 상태, 프로그램 카운트, 레지스터 저장 영역, 프로세서 스케줄링 정보, 계정 정보, 입출력 상태 정보 등으로 구성
더보기

프로세스 제어 블록 (PCB; Process Control Block)


관련 용어 설명
PCB
(Process Control Block)
특정한 프로세스를 관리할 필요있는 정보를 포함하는 운영체제 커널의 자료구조
운영체제가 프로세스 스케줄링을 위해 프로세스에 관한 모든 정보를 가지고 있는 데이터베이스
문맥교환
(Context Switching)
CPU가 현재 실행하고 있는 프로세스의 문맥 상태를 프로세스 제어블록 (PCB)에 저장하고 다음 프로세스의 PCB로부터 문맥을 복원하는 작업을 문맥교환이라고 한다.
디스패치
(Dispatch)
준비 상태에 있는 여러 프로세스 중 실행될 프로세스를 선정하여 CPU 할당함
할당 시간 초과
(Timer Runout)
CPU를 할당받은 프로세스는 지정된 시간이 초과되면 스케줄러에 의해 PCB 저장, CPU 반납 후 다시 준비상태로 전이됨, 타임슬라이스만료/ 선점시 타임아웃 발생
입출력발생
(Block)
실행 상태에 있는 프로세스가 지정된 할당 시간을 초과하기 전에 입출력이나 기타 사건이 발생하면 CPU를 스스로 반납하고 입출력이 완료될 때까지 대기 상태로 전이됨
깨움
(Wake Up)
어느 순간에 입출력이 종료되면 대기상태의 프로세스에게 입출력 종료사실을 wait/signal 등에 알려주고 준비상태로 전이됨

 [출처] [2022년 제3회 기사 실기 출제예상 문제] (11과목) 응용 SW 기초 기술 활용 - 1 (수제비- IT 커뮤니티 (정보처리기사,빅데이터분석기사 등)) | 작성자 수제비쌤

 

 

73. 다음은 소프트웨어 개발 방법론에 대한 설명이다. 괄호( ) 안에 들어갈 방법론을 보기에서 골라 기호로 쓰시오.

- ( ① ) : 정보시스템 개발에 필요한 관리 절차와 작업 기법을 체계화한 방법론으로 대형 프로젝트를 수행하는 체계적인 방법론이다.
- ( ② ) : 특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론으로 임베디드 소프트웨어를 작성하는 데 유용한 방법론이다.

| 보기 |

ⓐ Structured Development, ⓑ Information Engineering Development,
ⓒ Object-Oriented Development, ⓓ Agile Development, ⓔ Product Line Development,
ⓕ Spiral Development, ⓖ Prototyping Development
더보기

1. b
2. e


⭕️ 소프트웨어 개발 방법론 종류

구조적 방법론
(Structured D-)
' 전체 시스템을 기능에 따라 나누어 개발하고 이를 통합하는 방법론
' 프로세스 중심의 하향식 방법론
' 구조적 프로그래밍 표현을 위해 나씨-슈나이더만 차트 사용
정보공학 방법론
(Information Engineering D-)
' 정보 시스템 개발에 필요한 관리 절차와 작업 기법을 체계화 한 방법론 
' 개발 주기를 이용해 대형 프로젝트를 수행하는 체계적인 방법론
객체지향 방법론
(Object Oriented D-)
' 객체라는 기본단위로 시스템을 분석 및 설계하는 방법론
' 복잡한 현실 세계를 사람이 이해하는 방식으로 시스템에 적용하는 방법론
' 객체, 클래스, 메세지를 사용
컴포넌트 기반 방법론 
(Component Based D-)
' 소프트웨어를 구성하는 컴포넌트를 조립해서 하나의 새로운 응용 프로그램을 작성하는 방법론
' 개
발 기간 단축으로 인한 생산성 향상
' 새로운 기능 추가 쉬움(확장성)
' 소프트웨어 재사용이 가능
애자일 방법론
(Agile D-)
' 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발 방법론
' 애자일은 개발 과정의 어려움을 극복하기 위해 적극적으로 모색한 방법론
제품 계열 방법론 (Product Line D-) ' 특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론
' 임베디드 소프트웨어를 작성하는 데 유용한 방법론
' 영역 공학과 응용 공학으로 구분
  - 영역 공학: 영역 분석, 영역 설계, 핵심 자산을 구현하는 영역
  - 응용 공학: 제품 요구분석, 제품 설계, 제품을 구현하는 영역

 [출처] [2022년 제3회 기사 실기 출제예상 문제] (1과목) 요구사항 확인 - 2 (수제비- IT 커뮤니티 (정보처리기사,빅데이터분석기사 등)) | 작성자 수제비쌤

 

 

 

74. 다음은 Class Diagram에 대한 설명이다. 괄호( ) 안에 들어갈 용어를 보기에서 골라 쓰시오.

- 클래스 다이어그램의 구성요소 중 ( ① )은/는 클래스의 구조적 특성에 이름을 붙인 것으로 특성에 해당하는 인스턴스가 보유할 수 있는 값의 범위를 기술한 구성요소이다.
- 클래스 간의 관계 중 ( ② ) 관계는 ​하나의 객체에 여러 개의 독립적인 객체들이 구성되는 관계로 하나의 사물이 다른 사물에 포함되어 있는 관계를 표현하고 포함되는 쪽에서 포함하는 쪽으로 속이 빈 마름모를 연결하여 표현한다.

| 보기 |

Class, Attribute, Operation, Access Modifier, Association, Dependency, Generalization, Realization, Composition, Aggregation, Stereotype, extend, include
더보기

1. Attribute (속성)
2. Aggregation (집합)


구분 설명
연관
(Association)
클래스가 서로 개념적으로 연결된 선
두개 이상의 사물이 서로 관련되어 있는 상태
사물 사이를 실선으로 연결 (방향성은 화살표)
양방향 관계의 경우 화살표 생략
집합
(Aggregation)
하나의 객체에 여러개의 독립적인 객체들 구성
하나의 사물이 다른 사물에 포함 되어있는 관계
차와 엔진, 바퀴, 운전대 
복합(합성, 포함)
(Composition)
영구적이고 집합관계보다 더 강한 관계
집합관계의 특수한 형태로 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계
일반화 (상속)
(Generalization)
하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지 표현
일반적 개념을 부모(상위)라고하고 구체적인 개념을 자식(하위)
의존
(Dependency)
하나의 클래스가 다른 클래스를 사용하는 관계
다른 클래스의 멤버함수 사용
사물 사이에 서로 연관은 있으나 필요에 따라 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계
실체화
(Realization)
추상클래스나 인터페이스를 상속받아 자식클래스가 추상메서드를 구현할때 사용
사물이 할 수 있거나 해야하는 기능으로 서로 그룹화 할수 있는 관계를 표현

 

 

 

 

75. 다음은 데이터 모델 표시요소에 대한 설명이다. 괄호( ) 안에 들어갈 용어를 영어 Full-name​으로 쓰시오.

- ( ① )은/는 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세로서 릴레이션을 조작하는 기본 도구
​​- ( ② )은/는 데이터베이스에 논리적으로 표현될 대상으로서의 개체 타입과 개체 타입 간의 관계로 데이터 구조 및 정적 성질을 표현하는 요소

 

 

 

76. 다음 C 프로그램 결과를 쓰시오

#include <stdio.h>

int main()
{
    char c = 65;
    int a = (int)1.0;
    
    printf("%c%d", ++c, a);

    return 0;
}
더보기
답) B1

 

 

 

77. 다음은 Web Service 유형에 대한 설명이다. 괄호( ) 안에 들어갈 용어를 쓰시오.

- ( ① )은/는 HTTP, HTTPS, SMTP 등을 사용하여 XML 기반의 메시지를 네트워크 상태에서 교환하는 프로토콜이다.
​​- ( ② )은/는 웹 서비스에 대한 정보를 등록하고 검색하기 위한 저장소로 공개적으로 접근, 검색이 가능한 레지스트리이자 표준이다.

 

더보기

​​1. SOAP (Simple Object Access Protocol)
2. UDDI (Universal Description, Discovery and Integration)


WebService 방식

네트워크에 분산된 정보를 서비스 형태로 개방하여 표준화된 방식으로 공유하는 기술

SOAP(Simple Objet Access Protocol): HTTP, HTTPS, SMTP등을 사용하여 XML 기반의 메시지를 네트워크 상태에서 교환하는 프로토콜
WSDL(Web Service Description Language): 웹 서비스명, 제공 위치, 메시지 포맷, 프로토콜 정보 등 웹서비스에 대한 상세 정보가 기술된 XML 형식으로 구현되어 있는 언어
UDDI(Universal Description, Discovery and Intergration): 웹 서비스에 대한 정보인 WSDL을 등록하고 검색하기 위한 저장소로 공개적으로 접근, 검색이 가능한 레지스트리 

 

 

 

78. 다음은 인터페이스 구현 검증 및 감시 도구에 대한 설명이다. 괄호( ) 안에 들어갈 도구 이름을 쓰시오.

- ( ① )은/는 루비(Ruby) 기반 웹 애플리케이션 테스트 프레임워크로 모든 언어 기반의 웹 애플리케이션 테스트와 브라우저 호환성 테스팅이 가능하다.
​​​- ( ② )은/는 인터페이스 감시 도구로 애플리케이션에 대한 모니터링 및 DB Agent를 통해 오픈 소스 DB 모니터링 기능, 인터페이스 감시 기능을 제공한다.
더보기

1. watir
2. 스카우터 (SCOUTER)


1. 인터페이스 구현 검증 도구 - 엑스피 엔셀웨

도구 설명
xUnit * 자바(Junit), C++(Cppunit), .Net(Nunit)등 다양한 언어를 지원하는 단위테스트 프레임워크
* 소프트웨어의 함수나 클래스같은 서로 다른 구성 원소(단위)를 테스트 할 수 있게 해주는 도구
STAF * 서비스 호출, 컴포넌트 재사용등 다양한 환경을 지원하는 테스트 프레임워크
* 각 테스트 대상 분산환경에 데몬을 사용하여 테스트 대상 프로그램을 통해 테스트를 수행하고 통합하며 자동화하는 검증도구
* 다양한 플랫폼 및 운영 체제에서 테스트 작업을 자동화하는 데 사용할 수 있는 프로세스 호출, 리소스 관리, 데이터 관리 및 로깅을 비롯한 다양한 서비스를 제공
FitNesse * 웹 기반 테스트 케이스 설계/실행/결과 확인 등을 지원하는 테스트 프레임워크
* 사용자가 테스트 케이스 테이블을 작성하면 빠르고 편하게 자동으로 원하는 값에 대해 테스트를 할 수 있는 장점
* 승인테스트를 만들고 관리하기 위한도구
NTAF * Fitnesse의 장점인 협업기능과 STAF의 장점인 재사용및 확장성을 통합한 NHN의 자동화 테스트 프레임워크
Selenium * 다양한 브라우저 지원 및 개발언어를 지원하는 웹 애플리케이션 테스트 프레임워크
* 테스트 스크립트 언어를 학습할 필요 없이 기능 테스트를 만들기 위한 도구를 제공
watir * 루비 기반 웹 애플리케이션 테스트 프레임워크
* 모든 언어 기반의 웹 애플리케이션 테스트와 브라우저 호환성 테스팅 가능

 

2. 인터페이스 감시 도구 

인터페이스 동작이 잘 진행되는지 지속적으로 확인하기 위해서 애플리케이션 모니터링 툴 (APM; Application Performance Management)를 사용하여 동작 상태를 감시 할 수 있다.

도구 설명
스카우터
(SCOUTER)
애플리케이션에대한 모니터링 및 DB Agent를 통해 오픈소스 DB모니터링기능, 인터페이스 감시기능을 제공
제니퍼
(Jennifer)
애플리케이션의 개발부터 테스트, 오픈, 운영 안정화 까지 전 생애주기 단계동안 성능을 모니터링하고 분석해주는 APM소프트웨어

[출처] [2022년 제3회 기사 실기 출제예상 문제] (5과목) 인터페이스 구현 - 7 (수제비- IT 커뮤니티 (정보처리기사,빅데이터분석기사 등)) | 작성자 수제비쌤

 

 

 

79. 다음은 IPSec(IP Security)에 대한 설명이다. 괄호( ) 안에 들어갈 용어를 쓰시오.

- IPSec은 IP 계층(3계층)에서 메시지 Checksum을 활용한 데이터 인증과 비연결형 무결성을 보장해주는 프로토콜인 ( ① )와/과
암호화 알고리즘을 활용한 캡슐화 기반 페이로드 기밀성을 제공하는 프로토콜인 ( ② )을/를 이용하여 양 종단 간(End Point) 구간에 보안 서비스를 제공한다.
더보기

1. AH (Authentication Header) - 인증헤더
2. ESP (Encapsulation Security Payload)


보안 프로토콜

종류 설명
IPSec
(Internet Protocol Security)
IP계층에서 무결성과 인증을 보장하는 인증 헤더와 기밀성을 보장하는 암호화를 이용한 IP 보안 프로토콜
SSL/TLS
(Secure Socket Layer / Transport Layer Security))
전송계층과 응용계층 사이 클라이언트와 서버간의 웹데이터 암호화(기밀성), 상호인증 및 전송시 데이터 무결성 보장하는 보안 프로토콜
S-HTTP
(Secure Hypertext Transfer Protocol)
웹 상에서 네트워크 트래픽을 암호화 하는방법

 

 

80. 다음은 C 코드이다. 출력 결과를 쓰시오.

 

#include <stdio.h>

void f1(){
  printf("f1");
}

int f2(int a){
  return a++;
}

int main(){
 
  int a = 1;
  void (*pf1)();
  int (*pf2)(int);
  
  pf1 = f1;
  pf2 = f2;
  
  pf1();
  a += pf2(5);
  printf("%d", a);
  
  return 0;
}

답) f16

댓글