본문 바로가기

개발/정보처리기사

정보처리기사 필기 수제비 요약 (8) - Daily 문제 91-100번

91. 시스템이 인수조건을 만족시키는지, 사용자나 고객이 시스템을 인수할지 결정하기 위해서 실제 업무 현장에 있는 사용자가 실제 사용 환경에서 진행하는 테스트는?

① 동치 테스트
② 알파 테스트
③ 형상 테스트
④ 베타 테스트

정답) ④

해설)

* 인수 테스트

1. 개념
 - 인수 테스트는 시스템이 인수조건을 만족시키는지, 사용자나 고객이 시스템을 인수할지 결정할 수 있도록 사용자의 필요, 요구, 그리고 비즈니스 프로세스를 고려해서
수행하는 공식적인 테스팅입니다.
 - 따라서 사용자가 요구했던 사항을 기초로 테스트 케이스를 구성하고, 고객은 이런 테스트케이스 실행 결과를 기초로 테스트 대상의 인수 여부를 결정합니다.

 

2. 목적
 - 인수 테스트의 목적은 시스템이나 시스템의 일부 또는 특정한 부분에 대해 기능적 또는 비기능적인 특성에 대해 '확신(Confidence)'을 얻는 것입니다.
 - 결함을 찾는 것은 주된 목적이 아니다.
 - 인수 테스트는 사업적 리스크에 집중해서 테스트를 수행하고, 시스템을 사용하는 고객이나 사용자가 전담해서 수행하는 것이 원칙이고, 반드시 최종 단계의 테스트는 아니다. (인수 테스트 이후 대규모 시스템 통합 테스트를 하기도 함)

3. 유형
 - 알파테스트, 베타테스트

* 알파테스트
 
- 개발하는 조직 내에서 잠재적인 고객에 의해 수행되는 테스트
 - 개발자 환경에서 사용자가 수행하는 테스트
 - 공장 인수 테스트(Factory acceptance test)라고도 함

* 베타테스트
 
 - 실제 업무 현장에 있는 인원(사용자, 잠재적인 고객)에 의해서 수행되는 테스트
 - 실제 사용 환경에서 진행하는 테스트
 - 일정 수의 사용자가 테스트 후 피드백을 함
 - 필드 테스트라고 하고, 사이트 인수 테스트(Site acceptance testing)이라고도 함

[연계된 기출문제] - 한번 풀어보세요

23. 검증 검사 기법 중 개발자의 장소에서 사용자가 개발자 앞에서 행하는 기법이며, 일반적으로 통제된 환경에서 사용자와 개발자가 함께 확인하면서 수행되는 검사는?

① 동치 분할 검사
② 알파 검사
③ 형상 검사
④ 베타 검사



 

-----------

92. 커널(Kernel)에 관한 설명으로 올바르지 않은 것은?

① 커널(kernel)은 운영체제의 핵심 부분으로 응용 프로그램이 동작하기 위한 기본 환경을 제공하고, 응용 프로그램 수행에 필요한 여러 가지 서비스를 제공하는 소프트웨어이다.
② 커널은 사용자의 명령어를 해석하는 역할을 한다.
③ 커널의 역할에는 프로세스 관리, 메모리 관리, 프로세스 간 통신 등이 있다.
④ 커널의 종류에는 마이크로 커널(Micro Kernel)과 모놀리딕 커널(Monolithic Kernel)이 있다.

정답)  ② 

해설) 
- ①, ③, ④는 커널에 대한 설명이고, ②는 쉘에 대한 설명이다.

* 마이크로 커널의 개념
- 장치 드라이버, 프로토콜 스택, 파일 시스템과 같은 전통적인 OS 의 기능들을 사용자 영역에 놓고 하드웨어 추상화를 최소화한 커널이다.
- 목적이 분명한 임베디드 시스템이나 성능 최적화가 필요한 영역에서 활용

* 모놀리딕 커널의 개념
- 하드웨어 위에 높은 수준의 가상 계층을 제공하는 커널이다.
- 프로세스 관리, 동시성 관리, 메모리 관리 등을 관리자 모드에서 작동하여 사용자에게 고수준의 플랫폼을 제공하는 커널이다.
- 다수의 복잡한 애플리케이션을 동적으로 수행할 경우에 활용하기 좋음

 

[기사 필기 1회 A형 61번 문제 및 해설]

61. UNIX의 쉘(Shell)에 관한 설명으로 옳지 않은 것은?
① 명령어 해석기이다.
② 시스템과 사용자 간의 인터페이스를 담당한다.
③ 여러 종류의 쉘이 있다.
④ 프로세스, 기억장치, 입출력 관리를 수행한다.


* Shell(쉘)의 개념
- 사용자가 내린 명령을 운영체제가 수행할 수 있도록 명령을 해석하는명령어 해석기이다.
- 사용자와 운영체제 사이의 위치하는 프로그램으로, 사용자가 입력한 명령어를 신속하게 찾고 운영체제와 사용자 그리고 사용자가 실행한 다른 프로그램과 소통할 수 있게 해준다.

* 쉘의 역할 및 특징
- 대화식(Interactice) 사용:  사용자의 요청을 기다려서 요청 즉시 결과 값을 출력해주는 대화형 구조
- 프로그래밍: 복합적인 작업을 수행할 수 있도록 일련의 명령어들을 묶어서 사용 (스크립트)
- 리눅스 세션(session)의 설정(Customization): 리눅스의 세션에 대한 변수들을 정의하여 사용자가 리눅스 환경을 자신이 원하는 상태로 설정

* 쉘의 종류

- LINUX, UNIX : bash / sh / ksh / csh

- Windows : Explorer.exe / cmd.exe

* 운영체제(OS)의 개념: 
- 컴퓨터에서 하드웨어 장치와 소프트웨어 장치의 중간에 위치하여 H/W를 직접 제어하고 관리하는 시스템 소프트웨어이다.

* 운영체제(OS)의 역할
- 프로세스 관리
- 주기억장치 관리
- 입출력 장치 등 디바이스(Device) 관리
- 파일 관리
- 네트워크 관리

 

---------------------------------------


93. 링크 스테이트(Link State) 라우팅 기반 메트릭(metric)정보를 한 지역(Area)내 모든 라우터에 변경이 발생했을 때만 보내(Flooding)고, 라우팅 테이블을 구성/계산하는데 다익스트라(Dijkstra) 알고리즘 사용하는 내부 라우팅 프로토콜은?

① RIP ② OSPF ③ Static ④ EIGRP



정답) ②

해설)

* 라우팅 프로토콜(Routing Protocol)이란?
- 최종 목적지까지 패킷을 최소 비용 또는 최소 홉수를 알고리즘을 통해 적절한 경로를 설정해주는 프로토콜이다.



* RIP(Routing Information Protocol) 

1. RIP 개념
 - AS(Autonomous System, 자치 시스템, 자율 시스템) 내에서 사용하는 거리벡터 알고리즘에 기초하여 개발된 내부 라우팅 프로토콜

2. RIP 라우팅 방식
 - 거리 벡터 라우팅 기반 메트릭(metric) 정보를 인접 라우터와 주기적으로 교환하여 라우팅 테이블을 갱신하고 라우팅 테이블을 구성/계산하는데 Bellman-Ford 알고리즘 사용하는 내부 라우팅 프로토콜

3. RIP 특징
 - 최대 홉 수(Hop Count)를 15개로 제한
 - 사용 포트로는 UDP를 사용 (UDP 포트번호 520 사용)
 - 매 30초 마다 전체 라우팅 정보를 브로드캐스팅


* OSPF(Open Shortest Path First)

1. OSPF 개념
 - 규모가 크고 복잡한 TCP/IP 네트워크에서 RIP의 단점을 개선하기 위해 자신을 기준으로 하여 링크상태 알고리즘 기반으로 최단 경로를 찾는 라우팅 프로토콜

2. OSPF 라우팅 방식
 - Link State 라우팅 기반 메트릭(metric)정보를 한 지역(Area)내 모든 라우터에 변경이 발생했을 때만 보내(Flooding)고 라우팅 테이블을 구성/계산하는데 Dijkstra 알고리즘 사용하는 내부 라우팅 프로토콜

3. OSPF 특징
 - 최소 지연, 최대 처리량 등 관리자가 라우팅 메트릭 지정
 - AS를 지역(Area)으로 나누어 라우팅을 효과적으로 관리 가능
 - 홉 카운트에 제한이 없음

* RIP과 OSPF 비교



[연계된 1회 기사 필기 기출문제] - A형 82번

82. 최대 홉수를 15로 제한한 라우팅 프로토콜은?

① RIP    ② OSPF    ③ Static    ④ EIGRP








----------------------------------

94. 스파게티(Spaghetti Code)에 대한 설명으로 옳은 것은?

① 프로그램의 로직이 복잡하여 이해하기 어려운 프로그램을 의미한다.
② 아주 오래되거나 참고문서 또는 개발자가 없어 유지보수 작업이 어려운 프로그램을 의미한다.
③ 오류가 없어 디버깅 과정이 필요 없는 프로그램을 의미한다.
④ 사용자가 직접 작성한 프로그램을 의미한다.


정답) ①

해설)
* 외계인 코드(Alien Code)
- 아주 오래되거나 참고문서 또는 개발자가 없어 유지보수 작업이 아주 어려운 프로그램이다.
  

* 스파게티(Spaghetti Code)
- 스파게티 코드는 컴퓨터 프로그램의 소스 코드가 복잡하게 얽힌 모습을 스파게티의 면발에 비유한 표현이다. 스파게티 코드는 작동은 정상적으로 하지만, 사람이 코드를 읽으면서 그 코드의 작동을 파악하기는 어려운 코드이다.


* 클린코드(Clean Code)
- 잘 작성되어 가독성이 높고, 단순하며, 의존성을 줄이고, 중복을 최소화하여 깔끔하게 잘 정리된 코드이다.

* 원시 프로그램(Source Program)
-  사용자가 직접 작성한 프로그램이다. 

[연계된 2020년 기사 필기 1회 A형 33번 문제]

33. 외계인코드(Alien Code)에 대한 설명으로 옳은 것은?

① 프로그램의 로직이 복잡하여 이해하기 어려운 프로그램을 의미한다.
② 아주 오래되거나 참고문서 또는 개발자가 없어 유지보수 작업이 어려운 프로그램을 의미한다.
③ 오류가 없어 디버깅 과정이 필요 없는 프로그램을 의미한다.
④ 사용자가 직접 작성한 프로그램을 의미한다.




-----------------------------------


95. 하나의 레코드를 나타내는 행(row)을 의미하는 것은?

① 도메인
② 엔티티
③ 애트리뷰트
④ 튜플


정답) ④

해설)

* 도메인(domain) : 하나의 애트리뷰트가 취할 수 있는 같은 타입의 모든 원자 값 들의 집합

* 애트리뷰트(attribute) : 테이블의 열(column), 즉 테이블에서의 필드를 의미

* 튜플(tuple) : 하나의 레코드를 나타내는 행(row)을 의미

* 엔티티(Entity) : 데이터의 집합을 의미, 물리적 설계 단계에서의 테이블



[연계된 제 1회 필기시험 기출문제 A형 53번 문제]

53. 하나의 애트리뷰트가 가질 수 있는 원자값들의 집합을 의미하는 것은?

① 도메인
③ 엔티티
② 튜플
④ 다형성




-----------------------------------------



96. 다음 아래에서 설명하는 도구는 무엇인가?

- 네트워크 인터페이스를 거치는 패킷의 내용을 출력해주는 스니핑 도구이다.

- 자신의 컴퓨터로 들어오는 모든 패킷의 내용을 도청할 수 있으며, 공격자에 대한 추적 및 공격 유형 분석을 위한 패킷 분석 시 활용할 수 있는 도구이다.


① tracert
② tripwire
③ tcpdump
④ ping

정답) ③


해설)

* Tripwire
- 크래커가 침입하여 시스템에 백도어를 만들어 놓거나 설정 파일을 변경해 놓았을 때 이러한 사실을 알 수 있게 분색해 주는 강력한 도구다. 
- Tripwire은 시스템 내의 지정한 중요한 디렉토리와 파일에 대한 데이터베이스를 생성한 후에 Tripwire를 실행할 때 새로 생성된 데이터 베이스와 비교하여 그 차이점을 보고해 줌으로써 시스템 관리자가 시스템 내에서 어떠한 변화가 있는지 감지할 수 있게 해주는 도구다.

* Ping
- Ping 명령은 인터넷으로 접속하려는 원격 호스트가 정상적으로 운영되고 있는지를 확인하는 진단 목적으로 사용하는 명령어이다.

* tcpdump
- 네트워크 인터페이스를 거치는 패키의 내용을 출력해주는 프로그램이다.
- 스니핑 도구의 일종으로 자신의 컴퓨터로 들어오는 모든 패킷의 내용을 도청할 수 있으며, 공격자에 대한 추적 및 공격 유형 분석을 위한 패킷 분석 시 활용할 수 있는 도구이다.

* tracert
- 목적지까지의 데이터 도달여부를 확인하는 도구이다.

* Cron
- 특정한 시간에 또는 특정 시간 마다 어떤 작업을 자동으로 수행하게 해주고 싶을 때 사용하는 명령어이다.
- Cron은 특정한 시간에 특정한 작업을 수행하게 해주는 스케줄링 역할을 한다.



[연계된 제1회 정보처리기사 필기 문제 A형 98번]

98. 크래커가 침입하여 백도어를 만들어 놓거나, 설정 파일을 변경했을 때 분석하는 도구는?
① trace
② tripwire
③ udpdump
④ cron



------------------------------------------



97. 다음 중 아래에서 설명하는 키(Key)는 무엇인가?

- 튜플을 유일하게 식별할 수 있는 하나 또는 그 이상의 Attribute 집합

- 튜플에 대한 유일성은 만족하나 최소성을 만족하지 못하는 키


① 슈퍼키
② 대체키
③ 기본키
④ 외래키

정답) ①

해설) 
- 키: 릴레이션 내에서 튜플을 유일하게 식별할 수 있는 애트리뷰트의 집합
- 기본키: 유일성과 최소성을 만족하는 후보키 중에서 대표성을 지닌 키
- 외래키: 연관관계가 있는 다른 테이블의 기본키를 참조하는 키
- 슈퍼키: 튜플에 대한 유일성은 만족하나 최소성을 만족하지 못하는 키
- 대체키: 후보키 중에서 기본키를 제외한 나머지 후보키

[연관된 2020년 제1회 필기 기출문제 A형 43번]

43. 다음 두 릴레이션에서 외래키로 사용된 것은?
(단, 밑줄 친 속성은 기본키이다.)

- 과목(과목번호, 과목명)

- 수강(수강번호, 학번, 과목번호, 학기)


① 수강번호
② 과목번호
③ 학번
④ 과목명

해설) (카페 그림 참조)


     과목(과목번호, 과목명)                              수강(수강번호, 학번, 과목번호, 학기)
           기본키                                                기본키              외래키





------------------------------------

98. 일반 프로그램에 악의적인 루틴을 추가하여 그 프로그램을 사용할 때 본래의 기능 이외에 원격 조정, 패스워드 가로채기 등의 악의적인 기능까지 은밀히 수행하는 공격 방식은?

① Key Logger Attack
② Trojan Attack
③ Malicious Bot Attack
④ Ransomware Attack

정답) ②

해설)

* 웜(Worm) 
- 네트워크 등의 연결을 통하여 자신의 복제품을 전파하는 바이러스이다. (특징: 자가복제, 네트워크 통한 전파)

* 악성 봇(Malicious Bot) 
- 스스로 실행되지 못하고, 해커의 명령에 의해 원격에서 제어 또는 실행이 가능한 프로그램 혹은 코드이다. 
- 주로 취약점이나 백도어 등을 이용하여 전파되며, 스팸 메일 전송이나 분산 서비스 거부 공격(DDoS) 등에 악용된다. 
- 사용자들에게 잘 알려진 '좀비PC'는 악성 봇에 의해 감염된 것입니다.

* 트로이목마(Trojan)  
- 트로이목마는 정상 파일을 가장하거나, 정상 파일 안에 삽입되어 사용자의 설치를 유도한 후, 사용자 pc에 있는 정보를 해커에게 유출하는 악성 행위를 하는 프로그램이다.
- 일반적인 기능: 원격 조정, 패스워드 가로채기, 키보드 입력 가로채기, 시스템 파일 파괴

* 랜섬웨어(Ransomware) 
- 컴퓨터 시스템을 감염시켜 접근을 제한(암호화)하고 일종의 몸값을 요구하는 악성 소프트웨어이다.

* 키로그 공격(Key Logger Attack)
- 컴퓨터 사용자의 키보드 움직임을 탐지해 ID나 패스워드, 계좌 번호, 카드 번호 등과 같은 개인의 중요한 정보를 몰래 빼 가는 해킹 공격이다.

* 키로그 프로그램
- 설치된 컴퓨터에서 키보드로 입력한 정보를 로그로 남기는 프로그램이다.
- 기능이 업데이트된 키로그 프로그램은 키보드 입력뿐만 아니라 윈도우를 이용한 프로그램 사용, 인터넷 익스플로러를 이용한 인터넷접속 정보 등도 로그로 남는다.
- 로그파일을 실시간으로 공격자에게 전송하거나, 설정된 메일 및 메신저로 지정된 시간에 로그파일을 자동 전송하는 기능도 있다.





[연계된 2020년 제1회 필기 시험 기출문제]


87. 컴퓨터 사용자의 키보드 움직임을 탐지해 ID, 패스워드 등 개인의 중요한 정보를 몰래 빼가는 해킹 공격은?

① Key Logger Attack
② Worm
③ Rollback
④ Zombie Worm





----------------------------------------

99. 스마트그리드(smart grid)와 연계하여 전기, 수도, 가스 등의 공급자와 사용자가 무선 네트워크를 이용하여 효율적으로 관리할 수 있도록 활용하는 IEEE 802.15.4 표준 기반의 무선 통신 기술은?

① PICONET
② Small Cell
③ WI-SUN
④ NFC

정답) ③

해설)

* Wi-SUN (Wireless Smart Utility Network)
 - 스마트그리드(smart grid)와 연계하여 전기, 수도, 가스 등의 공급자와 사용자가 무선 네트워크를 이용하여 효율적으로 관리할 수 있도록 활용하는 IEEE 802.15.4 표준 기반의 무선 통신 기술
 - Wi-SUN은 저가격 및 저전력(8mA), 통신사 제공 서비스 아닌 자체 자가망 구축 형태의 비면허대역(900 MHz)을 사용한다.


* NFC (Near Field Communication)
 - RFID기반의 10cm 이내의 거리에서 저전력으로 단말기간 데이터를 전송하는 비접촉 방식의 근거리 무선통신 기술이다.


*스몰 셀(Small Cell)
- 기존의 높은 전송파워와 넓은 커버리지를 갖는 매크로 셀(Macro Cell)과 달리 낮은 전송파워와 좁은 커버리지를 가지는 소형 기지국이다.
- 안테나당 10W 급 이하의 소 출력 기지국 장비나 피코 셀, 펨토 셀 등을 통칭한다.
- 기존의 매크로 셀과 다양한 스몰 셀 (피코 셀, 펨토 셀 등) 및 Wi-Fi 등으로 구성된 네트워크로 사용자 수와 트래픽 수요에 따라 스몰 셀을 배치하여 셀 용량과 커버리지 증대에 활용한다.

* 블루투스(Bluetooth)
- 2.4Ghz ISM 주파수 대역을 이용하여 10m 이내의 근거리 디바이스간 통신을 지원하기 위한 무선 접속 규격 (IEEE802.15.1)
- 블루투스 네트워크 구성에는 Piconet, Scatternet이 있다.

* 피코넷(Piconet): 블루투스는 일단 마스터(Master)-슬레이브(Slave) 방식으로 링크를 설정한다. 그리고 한 대의 마스터는 7대까지의 슬레이브를 연결하여 네트워크를 구성할 수 있다. 이를 피코넷이라 한다.

* 스캐터넷(Scatternet): 이러한 피코넷이 여러개 모이게 되면 계층적이고 규모가 큰 네트워크를 구성할 수 있는데 이를 스캐터넷(Scatternet)이라고 한다.




[연계된 2020년 제 1회 필기시험 문제 A형 87번 문제]

85. 여러 개의 독립된 통신장치가 UWB(ultra Wideband)기술 또는 블루투스 기술을 사용하여 통신망을 형성하는 무선 네트워크 기술은?
① PICONET
② SCRUM
③ NFC
④ WI-SUN


* SCRUM은 프로젝트관리를 위한 상호, 점진적 개발방법론이며, 애자일 소프트웨어 공학 중의 하나이다.



--------------------------------------



100. 다음 중 버퍼 오버플루우 공격에 대한 대응 방안으로 올바르지 않은 것은?

① 시스로그 활용
② 스택가드 활용
③ 스택쉴드 활용
④ ASLR 활용



정답)  ①


해설)

* 시스로그(Syslog): 장비에서 일어나는 모든 상황 혹은 변화를 서버에 기록하는 프로토콜

* 버퍼 오버플로우 공격: 정해진 메모리의 범위를 넘치게 해서 원래 리턴 주소를 변경시켜 임의의 프로그램이나 함수를 실행시키는 시스템 해킹 기법

- 버퍼 오버플로우 공격은 스택 영역에 할당된 버퍼 크기를 초과하는 양의 데이터(실행 가능 코드)를 입력하여 복귀 주소를 변경하고 공격자가 원하는 임의의 코드를 실행하게 된다.
- 버퍼 오버플로우 공격은 프로그램 실생 시 힙 영역에 할당된 버퍼 크기를 초과하는 양의 데이터(실행 가능 코드)를 입력하여 메모리의 데이터와 함수 주소 등을 변경하여 공격자가 원하는 임의의 코드를 실행하게 된다.

[버퍼 오버플로우 공격 대응방안]

* 스택가드(Stackguard)
 - 카나리(canary)라고 불리는 무결성 체크용 값을 복귀주소와 변수 사이에 삽입해 둔다.
 - 버퍼 오버플로 시 카나리값이 변하게 되는데, 이 경우 복귀주소를 호출하지 않는다.

* 스택쉴드(Stack Shield)
 - 함수 시작 시 복귀주소를 Global RET라는 특수 스택에 저장해 둔다.
 - 함수 종료 시 저장된 값과 스택의 RET값을 비교해 다를 경우 오버플로우로 간주하고 프로그램 실행을 중단한다.

* ASLR(Address Space Layout Randomization)
- 메모리 공격을 방어하기 위해 주소 공간 배치를 난수화 한다.
- 실행 시 마다 메모리 주소를 변경시켜 버퍼 오버플로우를 통한 특정주소 호출을 차단한다.
- 리눅스에서 다음과 같이 설정할 수 있다.

* 안전한 함수 사용
- 버퍼 오버플로우에 취약한 함수들 : strcat(), strcpy(), gets(), scanf(), sscanf(), vscanf(), vsscanf(), sprintf(), vsprintf(), gethostbyname()
- 대신 사용이 권장되는 함수들 : strncat(), strncpy(), fgets(), fscanf(), vfscanf(),snprintf(), vsnprintf()

* 실행 제한
 - 스택에서의 쓰기 권한 제한
 - 스택에서의 프로그램 실행금지
 - 가능성이 있는 SUID 프로그램 제한

[연계된 제 1회 정보처리기사 시험 A형 94번 문제]

94. 메모리상에서 프로그램의 복귀 주소와 변수사이에 특정 값을 저장해 두었다가 그 값이 변경되었을 경우 오버플로우 상태로 가정하여 프로그램 실행을 중단하는 기술은?

① 모드체크
② 리커버리 통제
③ 시스로그
④ 스택가드

* 모드체크(Mode Check): 데이터 입력시에 문자의 종류를 체크하여 이상 유무를 검색하는 방법