본문 바로가기
Today I Learned

[정보처리기사] 실기 기출 랜덤 문제 풀이

by Davidev 2023. 5. 16.
반응형

 

1. DCL 중 GRANT에 관해 설명하시오.

 

 

정답 : Data Control Language 중 GRANT 는 특정 사용자에게 특정 작업 권한을 부여하는 명령어이다.

 

[DCL]
	REVOKE는 GRANT로 부여한 특정한 작업 권한을 회수하는 명령어이다.
	COMMIT은 트랜잭션 작업을 성공적으로 종료시킨다.
	ROLLBACK은 트랜잭션 작업을 원래대로 복구시킨다.

DDL, DML에 관해서도 정리해야 할 것 같다.

 

 


 

2. 다음에서 설명하는 파이썬 함수를 작성하시오.

 

1. 요소를 확장해준다는 의미를 가지고 있으며, 모든 항목을 하나의 요소로 추가
2. 리스트 내부 요소를 꺼내주는 함수로써, 그 요소는 리스트 안에서 삭제하고 그 값을 반환
3. 리스트 내부의 요소의 순서는 뒤집는 역할

 

 

정답 : 1. extend / 2. pop / 3. reverse

 

나는 expend() / pop() / random() 이라고 적었다.

파이썬에서 함수를 적을 때 괄호부분은 생략할 것. ()
파이썬에는 expend 함수는 없다.
뒤섞는 것이 아닌 "뒤집는" 함수이니 문제를 잘 읽자.

 

 


 

3. 네트워크 계층(network layer, 3계층)인 인터넷 프로토콜(IP)에서 '암호화', '인증', '키 관리'를 통해 보안성을 제공해 주는 표준화된 기술

 

 

정답 : IPSec

 

필기시험 볼 때 눈에 익숙하게 보았던 단어인데 정작 생각이 안났다.

IP + Security = "IPSec"

 

 


 

4. 리눅스 운영체제에서 현재 디렉터리에 위치한 "a.txt"에 아래의 조건대로 권한을 부여하고자 한다. 실행해야 하는 명령어를 적으시오.

 

 

정답 :  chmod 751 a.txt

 

나는 어설프게 알고 있어서 chmod -753 a.txt 라고 입력했다.

"-"는 옵션과 함께 나오는 것.
3자리 숫자는 8진수인데 앞에서부터 각각 R(읽기), W(쓰기), X(실행) 권한이다.


각 자리의 의미는 아래와 같다.

첫째 자리에는 소유자
둘째 자리에는 그룹
셋째 자리에는 기타 사용자

각 숫자의 의미는 아래와 같다.

읽기 권한은 4
쓰기 권한은 2
실행 권한은 1


사용자(지문에 소유자를 의미하는 듯함)에게 R(읽기), W(쓰기), X(실행) 권한을 준다고 했으니
4, 2, 1을 모두 더해준다. => 7

그룹에게 R(읽기), X(실행) 권한을 준다고 했으니
4, 1 을 더해준다. => 5

그 외 (기타 사용자)에 X(실행) 권한을 준다고 했으니
1 => 1


권한을 부여하는 한 줄의 명령어 ex) chmod 707 log.txt 사용

=> chmod 751 a.txt


*참조링크
https://itwiki.kr/w/%EB%A6%AC%EB%88%85%EC%8A%A4_%EA%B6%8C%ED%95%9C

 

 


5. 다음에서 설명하는 기술을 영문 약어로 쓰시오.

 

'비동기식 자바스크립트 XML'을 의미하는 용어로, 
클라이언트와 웹서버 간에 XML 데이터를 내부적으로 통신하는 
대화식 웹 애플리케이션의 제작을 위해 사용된다.
클라이언트의 요청에 의해 웹서버에서 로딩된 데이터를 
웹 브라우저의 페이지에 보여주기 위해 
웹 페이지 전체를 '새로고침'할 필요 없이 
즉, 현재 페이지에서 필요한 일부만 로딩되도록 하는 웹 개발 기법을 의미한다.

 

 

정답 : AJAX

 

 


 

6. 다음은 관계 데이터 모델에 대한 설명이다. 괄호안에 들어가는 용어를 작성하시오.

 

( 괄호 )은/는 관계 데이터의 연산을 표현하는 방법으로, 원하는 정보를 정의할 때는 계산 수식을 사용한다.
수학의 predicate calculus에 기반을 두고 있으며, 관계 데이터 모델의 제안자인 codd가 수학에 가까운 기반을 두고 특별히 관계 데이터베이스를 위해 제안하여 탄생하였다.
( 괄호 )은/는 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 지니며, 튜블( 괄호 )와/과 도메인 ( 괄호 )이/가 있다.

 

 

정답 : 관계 해석

 

 


7. 다음 보기에서 설명하는 객체지향 디자인 패턴은 무엇인가?

 

부모(상위) 클래스에 알려지지 않은 구체 클래스를 생성하는 패턴이며, 
자식(하위) 클래스가 어떤 객체를 생성할지를 결정하도록 하는 패턴이기도 하다.  
부모(상위) 클래스 코드에 구체 클래스 이름을 감추기 위한 방법으로도 사용한다.

 

 

정답 : 팩토리 메소드

 

다른 GoF 디자인패턴도 정리해보자..
추빌팩프싱만 생각나서 IT위키에 찾아봤는데..봐도 모르겠어서 Chat GPT에게 물어보았다..

 

 


 

8. 다음 소스코드에서 입력값이 5가 들어왔을때 출력되는 값을 작성하시오.

 

#include <stdio.h>
int func(int a) {
  if (a <= 1) return 1;
  return a * func(a - 1);
}
 
int main() {
  int a;
  scanf("%d", &a);
  printf("%d", func(a));
}

 

 

정답 : 120

 

C언어를 잘 모르기 때문에 차근차근 보자

#include <stdio.h> 			=> 라이브러리를 사용하겠다는 import의 의미.

int func(int a) {			  => 정의된 함수. 사용자 입력값 (정수)을 이용해 값을 반환한다.
  if (a <= 1) return 1;		 => 지문에 주어진 입력값 (현재는 5)이 1보다 작거나 같으면 1을 반환한다.
  return a * func(a - 1);	  	=> 5 * func(4)를 실행한 것을 반환한다.
}
 
 
int main() {				  => Java의 Main 함수와 같은 것. 프로그램 실행시 바로 실행되는 부분.
  int a;
  scanf("%d", &a);			  => scanf()는 사용자 입력값을 받는 함수. 위 호출된 라이브러리를 통해 사용.
  					=> &a : a라는 변수의 주소 값 (변수 a가 저장되는 주소에 사용자 입력 값을 저장하겠다는 의미)
  printf("%d", func(a));      		=> func(a) : 입력받은 값(a)로 func() 함수를 실행한 뒤 값을 받아옴. 
}


[계산]

	func(5) = 5 * func(4)  => 120
	func(4) = 4 * func(3)  => 24
	func(3) = 3 * func(2)  => 6
	func(2) = 2 * func(1)  => 2
	func(1) = 1 (1보다 작거나 같으면 1을 반환하게 되어있으므로)

	func(1) = 1 이므로 위로 하나씩 대입하면 된다.

 

 


9. 다음 보안 관련 설명으로 가장 알맞는 용어를  작성하시오.

 

(          )은/는 머신러닝 기술을 이용하여 
IT 시스템에서 발생하는 대량의 로그를 
통합관리 및 분석하여 사전에 위협에 대응하는 보안 솔루션이다. 
서로 다른 기종의 보안솔루션 로그 및 이벤트를 
중앙에서 통합 수집하여 분석할 수 있으며,
네트워크 상태의 monitoring 및 이상징후를 미리 감지할 수 있다.

 

 

정답 : SIEM

 

Security Information & Event Management

ESM의 진화된 형태로 볼 수 있으며 
네트워크 하드웨어 및 응용 프로그램에 의해 생성된 보안 경고의 실시간 분석을 제공한다.

 

 


 

10. 시스템 통합에 사용되는 솔루션으로 구축 유형에는 Point to Point, Hub & Spoke, Message Bus가 있다. 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션 간의 정보를 전달, 연계 , 통합이 가능하도록 해주는 솔루션을 무엇이라고 하는지 쓰시오.

 

 

정답 : EAI (Enterprise Application Integration)

 

 


 

11. 다음 중 헝가리안 표기법(Hungarian Notation)에 대해서 서술하시오.

 

 

정답 : 변수명 표기법 중 하나로, 변수명 앞에 타입을 붙여 표기한다.

           자료형 지원이 되지 않았을 때 사용되었으며, 개발 도중 자료형이 바뀐다면 수정해주어야 하는 단점이 있다.

 

변수명 표기법

	카멜 표기법(Camel Case) / 단봉낙타 표기법
    	
        여러 단어가 연결될 시 최초 단어는 소문자로, 뒤에오는 단어의 첫 글자를 대문자로 표기하는 방식
        
        
    	파스칼 표기법(Pascal Case) / 쌍봉낙타 표기법
    
    	여러 단어가 연결될 시 최초 단어를 포함해 단어의 첫 글자는 모두 대문자로 표기하는 방식
    
    
    	스네이크 표기법(Snake Case)
    
    	여러 단어 사이에 "_"(언더바) 를 넣어 표기하는 방식.

 

 


 

12. 테스트의 종류 중, 동치 분할 테스트, 경계값 분석 테스트 등의 종류가 있는 테스트 기법을 쓰시오.

 

 

정답 : 블랙박스 테스트

 

 


 

13. 다음은 C언어 소스 코드이다. 출력 값을 쓰시오.

 

#include 
void main(){
  char *p = "KOREA"
  printf("%sn" , p);
  printf("%sn" , p+3);
  printf("%cn" , *p);
  printf("%cn" , *(p+3));
  printf("%cn" , *p+2);
}

 

 

정답 :

KOREA

EA

K

E

M

 

내가 기입한 답

K
E
KOREA
EA
R



미운 삵 *p + 2 이기 때문에 K + 2가 되고(주소 입력이 아니라 단순 숫자 더하기), 
%c로 출력하기 때문에 아스키코드로 출력됨. 
아스키코드상 K → L → M순이니까  M이 출력됨

 

 


 

14. 다음은 자바(Java) 코드이다. 출력 결과를 쓰시오.

 

public class Test{
    public static void main(String []args){
        int i=0;
        int sum=0;
        while (i<10){
            i++;
            if(i%2==1)
              continue;
        sum += i;
        }
    System.out.print(sum);
    }
}

 

 

정답 : 30

 

 

위 자바 코드는 1부터 10까지의 짝수의 합을 구하는 프로그램입니다.

반복문의 조건식에서 변수 i의 초기값은 0이며, 
i가 10보다 작은 동안 반복합니다. 
그리고 i를 1씩 증가시키면서, 
i가 홀수일 경우에는 continue를 사용하여 해당 반복을 건너뜁니다. 

따라서, i가 짝수일 경우에만 sum에 i를 더합니다.

따라서, 출력 결과는 2+4+6+8+10인 30이 됩니다. 
System.out.print(sum) 문장에 의해 콘솔에 30이 출력됩니다.

 

 


 

15. 릴레이션 A, B가 있을 때 릴레이션 B 조건에 맞는 것들만 릴레이션 A에서 튜플을 꺼내 프로젝션하는 관계대수의 기호는 무엇인가?

 

 

정답 :   ÷

 

왜 ÷ 가 답인지 모르겠지만 그렇다고 한다..

 

 


16. STUDENT 테이블에서 컴퓨터과 학생 50명, 전기과 학생 100명, 인터넷과 학생 50명의 정보가 저장되어 있을 때, 다음 SQL문의 실행 결과에 따른 튜플의 수는? (단, DEPT 칼럼은 학과명이다.)

 

1) SELECT DEPT FROM STUDENT;
2) SELECT DISTINCT DEPT FROM STUDENT;
3) SELECT COUNT(DISTINCT DEPT) FROM STUDENT WHERE DEPT = '인터넷과';

 

 

정답 : 

1. 200

2. 3

3. 1

 

 


 

반응형

댓글