122. 다음 파이썬 프로그램 실행 결과를 쓰시오
답)
① 40
② 50
③ [10, 30, 50, 70]
④ [10, 40, 70]
⑤ [40, 50, 60, 70, 80, 90]
⑥ [10, 20, 30, 40, 50]
121. 다음은 정해진 메모리의 범위를 넘치게 해서 원래 리턴 주소를 변경시켜 임의의 프로그램이나 함수를 실행시키는 시스템 해킹 기법인 버퍼 오버플로우 공격에 대한 대응방안이다. 괄호 ( ) 안에 들어갈 용어를 쓰시오.
[버퍼 오버플로우 대응방안] 1. 운영체제의 주기적 최신 패치 적용 2. 입력값 검증이 가능한 안전한 함수 사용 (Strncpy( )) 3. ( ① ) : 카나리(canary)라고 불리는 무결성 체크용 값을 복귀주소와 변수 사이에 삽입해 두고 버퍼 오버플로우 시 카나리값이 변하게 되면 복귀주소를 호출하지 않는 방법 4. ( ② ) : 함수 시작 시 복귀주소를 Global RET라는 특수 스택에 저장해 두고 함수 종료 시 저장된 값과 스택의 RET값을 비교해서 다를 경우 오버플로우로 간주하고 프로그램 실행을 중단하는 방법 5. ( ③ ) : 메모리 공격을 방어하기 위해 주소 공간 배치를 난수화하고, 실행 시 마다 메모리 주소를 변경시켜 버퍼 오버플로우를 통한 특정주소 호출을 차단하는 방법 |
정답)
① 스택가드(Stackguard)
② 스택쉴드(Stack Shield)
③ ASLR(Address Space Layout Randomization)
120. 다음은 고객 테이블이다. 나이가 50살 이상이면서 59살 이하이고, 성별이 남자인 사람의 이름을 출력하는 쿼리를 작성하시오.(단, BETWEEN 구문을 사용해야 한다.)
<고객> 테이블
이름 | 나이 | 성별 | 주소 |
홍길동 임꺽정 유관순 나혜석 이순신 |
20 59 35 41 33 |
남 남 여 여 남 |
경기도 전라도 경상도 충청도 강원도 |
정답)
SELECT 이름
FROM 고객
WHERE 나이 BETWEEN 50 AND 59
AND 성별 = '남';
119. 다음은 데이터베이스 설계에 관한 설명이다. 괄호( ) 안에 들어갈 데이터베이스 설계 단계를 쓰시오.
( ① ) : 저장 레코드 양식 설계, 레코드 집중의 분석 및 설계, Access Path 설계 ( ② ) : 목표 DBMS에 맞는 스키마 설계, 트랜잭션 I/F 설계, 스키마 평가 및 정제 |
정답)
① 물리적 설계
② 논리적 설계
해설) 데이터베이스 설계는 필기, 실기 빈출 토픽입니다. 이번 기회에 정리하고 가세요.
* 데이터베이스 설계 순서 (요개논물구)
1. 요구조건 분석: 데이터 및 처리 요구조건 분석, 정보내용 및 요구수집, 경영목표 및 제약조건 식별, 요구명세 작성 및 검토
2. 개념적 설계: DBMS 독립적 개념 스키마 설계, 트랜잭션 모델링, View 통합방법 고려, Attribute 합성
3. 논리적 설계: 목표 DBMS에 맞는 스키마 설계, 트랜잭션 I/F 설계, 스키마 평가 및 정제
4. 물리적 설계: 목표 DBMS에 맞는 물리적 구조 설계, 트랜잭션 세부 설계, 저장 레코드 양식 설계, 레코드 집중의 분석 및 설계, Access Path 설계
5. 구현: 데이터베이스 생성, 트랜젝션 작성
118. 다음은 IPSEC의 세부 프로토콜에 대한 설명이다. 괄호( ) 안에 들어갈 용어를 쓰시오.
( ① ) : 보안 관련 설정들을 생성, 협상 및 관리하는 프로토콜로 udp 500번 포트를 사용하는 프로토콜 ( ② ) : 메시지 인증 코드(MAC)와 암호화를 이용하여 인증(무결성), 송신처 인증, 기밀성을 제공하는 프로토콜 ( ③ ) : 기밀성(암호화)을 제외한 메시지 인증 코드(MAC)를 이용한 인증(무결성), 송신처 인증을 제공해주는 프로토콜 |
정답)
① IKE(Internet Key Exchange)
② ESP(Encapsulating Security Protocol)
③ AH(Authentication Header)
해설)
- IPSEC이 실기 기출로 나와서 좀 더 확장된 개념까지 알고 계셔야 해서 출제했습니다.
- IPSEC의 정확한 개념과 세부 프로토콜은 꼭 알아두세요.
117. 다음은 프로세스 스케줄링 알고리즘에 대한 설명이다. 괄호( ) 안에 들어갈 용어를 쓰시오.
( ① ) : 가장 짧은 시간이 소요되는 프로세스를 먼저 수행하고, 남은 처리 시간이 더 짧다고 판단되는 프로세스가 준비 큐에 생기면 언제라도 프로세스가 점유되는 스케줄링 알고리즘 ( ② ) : 프로세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시까지 자원을 점유하는 스케줄링 알고리즘 |
정답)
① SRT(Shortest Remaining Time First)
② SJF(Shortest Job First)
해설) 수제비 실기책 11-11페이지
116. 다음은 모듈화를 측정하는 척도를 나타내는 fan-in, fan-out 다이어그램이다. fan-in 수가 2 이상인 모듈의 명칭을 모두 쓰시오.
정답) I, K
해설) 수제비 실기책 4-14페이지
* fan-in은 들어오는 화살표 수로 측정, fan-out은 나가는 화살표 수로 측정
115. 다음은 DRM 구성요소에 대한 설명이다. 괄호 안에 들어갈 가장 올바른 용어를 쓰시오.
- 콘텐츠 제공자(Contents Provider) : 콘텐츠를 제공하는 저작권자 - ( ① ) : 콘텐츠를 메타 데이터와 함께 배포 가능한 단위로 묶는 기능 - ( ② ) : 배포된 콘텐츠의 이용 권한을 통제 |
정답)
① 패키저(Packager)
② DRM 컨트롤러(DRM Controller) or 컨트롤러
해설) 수제비 실기책 12-9
114. 다음 파이썬 프로그램 실행 결과를 쓰시오
113. 다음 파이썬 프로그램 실행 결과를 쓰시오
정답) 합격입니다
해설) 파이썬 if문은 ':' 이 중요하며 반드시 들여쓰기를 해줘야 합니다
파이썬은 if, elif, else로 구성 됩니다
112. 인증 시스템의 하나로 한 번의 인증을 통해서 여러 개의 서비스를 이용할 수 있는 시스템은 무엇인가?
정답) SSO(Single Sign On)
111. 분산 컴퓨팅 기술 기반의 데이터 위변조 방지 기술로 P2P 방식을 기반으로 하여 소규모 데이터들이 연결되어 형성된 '블록'이라는 분산 데이터 저장 환경에 관리 대상 데이터를 저장함으로써 누구도 임의로 수정할 수 없고 누구나 변경의 결과를 열람할 수 있게끔 만드는 기술은 무엇인가?
정답) 블록체인(Blockchain)
110. 다음은 C언어 소스코드이다. 출력 결과를 쓰시오.
정답) 3.50
참고) 수제비 정보처리기사 실기 10-64
해설) #define과 소수점 출력 관련해서 문제를 출제하였습니다.
#define ROW 3의 의미는 소스 코드 내에서 ROW라고 정의되어 있는 부분을 3으로 바꾸겠다는 의미입니다. 그럼 #define COL 2는 COL이라고 정의되어 있는 부분을 2로 바꾸겠다는 의미겠죠.
그럼 아래와 같은 소스코드와 완전히 동일합니다.
그 다음 이차원 배열과 이중 for문에 대해서 봐야 하는데 10-64페이지를 이해하시면 코드가 이해될 것 같습니다.
이중 for문을 돌게 되면 sum은 3*2 사이즈 이차원 행렬안의 모든 요소 값의 합이 되고 1+2+3+4+5+6=21이 됩니다.
마지막 printf에서 %.2f의 의미가 중요한데, %f는 실수를 출력하는 것입니다. 여기에 .2라고 붙이면 소숫점 뒤에 2자리를 출력하라는 의미가 됩니다. 그렇기 때문에 (float)21/6=3.50000가 되는데 소수점 2자리를 출력해야 하므로 3.50이 됩니다.
109. 다음 파이썬 프로그램 실행 결과를 쓰시오
정답)
① 8
② 9
109. 다음 파이썬 프로그램 실행 결과를 쓰시오
정답)
① 8
② 9
해설) ** 은 제곱승을 구하는 연산자이다.
python의 기본적인 연산자는 다음과 같다.
108. 다음은 C언어 소스코드이다. 다음 조건에 맞도록 밑줄친 부분의 코드를 작성하시오.
짝수이면서 10보다 큰 수가 입력되면 Here가 출력되도록 작성하시오.
정답) a % 2 == 0 && a > 10
참고) if문: 10-11페이지, 연산자 10-6, 10-7페이지
해설) 먼저 짝수가 되려면 a를 2로 나눴을 때 0이 되는 수이므로 a%2==0이 됩니다.(사실 a%2==0의 경우 자주 나오니 짝수 구현하는 코드는 기억하고 계세요.) 그리고 10보다 큰 경우는 a > 10이라는 조건으로 충족시킬 수 있습니다.
문제는 두 가지 경우가 동시에 발생해야 조건을 만족하는데 둘 다 동시에 만족하려면 and 조건이어야 하고 C언어에서는 && 연산자를 사용합니다.
107. 다음은 성적 테이블이다. 과목만 출력하는 쿼리를 작성하시오.(단, 과목이 중복되지 않도록 한다.)
<성적> 테이블
학번 | 과목 | 학점 |
2001 2001 2002 2003 2003 |
컴퓨터 구조 운영체제 알고리즘 컴퓨터 구조 알고리즘 |
4.5 4.0 4.5 3.5 2.5 |
정답)
SELECT DISTINCT 과목
FROM 성적;
참고) 수제비 정보처리기사 11-35페이지
106. 다음은 C언어 코드이다. 출력 결과를 쓰시오.
정답)
홀수: 1
짝수: 4
홀수: 7
참고) for문 -> 10-15페이지, switch문 -> 10-12페이지
해설)
for문은 for(초기값; 조건; 증감) 이렇게 구성되어야 하는데, 초기값과 증감값은 생략할 수 있습니다. 대신에 초기값은 int i=1; 부분이 그 역할을 하고, i+=3;이라는 문장이 증감의 역할을 합니다.
코드 자체가 어려운 것은 아닌데, for문에 세미콜론(;)으로만 구분되어 있고, 빈칸으로 되어 있는게 어색할 수 있을 것 같아 이런 코드도 있다는 의미로 출제해보았습니다.
추가로 아래 코드와 기능이 동일합니다.
105. 다음이 설명하는 용어를 쓰시오.
(1) 물리적인 사물과 컴퓨터에 동일하게 표현되는 가상 모델로 실제 물리적인 자산 대신 소프트웨어로 가상화함으로써 실제 자산의 특성에 대한 정확한 정보를 얻을 수 있고, 자산 최적화, 돌발사고 최소화, 생산성 증가 등 설계부터 제조, 서비스에 이르는 모든 과정의 효율성을 향상시킬 수 있는 모델
(2) 가상 물리시스템으로 인간의 개입 없이 대규모 센서/엑추에이터를 갖는 물리적인 요소들과 통신기술, 응용/시스템 소프트웨어 기술을 활용하여 실시간으로 물리적 요소들을 제어하는 컴퓨팅 요소가 결합된 복합 시스템
정답) (1) 디지털 트윈(digital twin)
(2) CPS(Cyber-Physical System)
104. 다음은 C언어 소스 코드이다. 출력 결과를 쓰시오.
정답) BCDE
오늘은 삼항 연산자를 소개하려고 문제를 냈습니다.
삼항 연산자 문법은 다음과 같습니다.
조건 ? 참일때값 : 거짓일때값;
소스코드에서 ret = a>b ? a : b;이므로 "a가 b보다 크다면? a값을, 아니면? b값을" ret이라는 변수에 저장합니다.
a>b는 거짓이므로 b값인 4가 ret에 저장됩니다.
ret은 4이므로 switch~case문에서 case 4로 들어가게되고, switch~case문에 break;문이 없으므로 B, C, D, E 모두 출력하게 됩니다.
102. 다음 프로그램의 실행 결과를 쓰시오.
답) Helrld
해설) 정보처리기사 필기 3회시험 74번 문제 변형
slice를 이용하여 문자열에서 부분 문자열을 가져올 수 있다.
사용방법은 '문자열[시작:끝]' 이다.
string[3:] 이라고 하면 3번째 부터 끝까지 부분 문자열을 반환한다.
string[0:3] 이라고 하면 처음부터 3번째까지 반환한다.
string[:] 라고 하면 처음부터 끝까지 전부 반환 한다.
string[-3:] 라고 하면 문자열의 끝에서 역방향 3번째까지 반환한다.
slice는 리스트에서도 사용이 가능하다.
101. 다음은 성적 테이블이다. IN 키워드를 이용하여 '컴퓨터 구조'와 '알고리즘' 과목에 대한 학번 별 평균 학점을 구하는 쿼리를 작성하시오.
<성적> 테이블
학번 | 과목 | 학점 |
2001 2001 2002 2003 2003 |
컴퓨터 구조 운영체제 알고리즘 컴퓨터 구조 알고리즘 |
4.5 4.0 4.5 3.5 2.5 |
<결과>
학번 | 평균 |
2001 2002 2003 |
4.5 4.5 3.0 |
정답)
SELECT 학번, AVG(학점) as 평균
FROM 성적
WHERE 과목 IN ('컴퓨터 구조', '알고리즘')
GROUP BY 학번;
참고) 수제비 정보처리기사 실기 8-25, 11-36페이지
추가 설명) AVG(학점) AS 평균 -> AS는 이름을 대체한다는 의미로 AVG(학점)이라는 컬럼명을 평균이라는 컬럼명으로 변경한다는 의미입니다.
'개발 > 정보처리기사' 카테고리의 다른 글
[수제비 출처] 2020년 기사 실기 출제예상 문제[Daily 131-140번] (0) | 2021.04.16 |
---|---|
[수제비 출처] 2020년 기사 실기 출제예상 문제[Daily 123-130번] (0) | 2021.04.16 |
[수제비 출처] 2020년 기사 실기 출제예상 문제[Daily 51-60번] (0) | 2020.10.06 |
[수제비 출처] 2020년 기사 실기 출제예상 문제[Daily 101-76번] - 헷깔리는 문제들만 (0) | 2020.09.25 |
[수제비 출처] 2020년 기사 실기 출제예상 문제[Daily 41-50번] (0) | 2020.09.23 |