기타/정보처리기사
[2023년도 1회] 정보처리기사 정처기 | 실기 기출 | 회차별 정리
YUNI Heo
2024. 1. 7. 16:13
반응형
⭕ [2023년도 1회] 정보처리기사 정처기 | 실기 기출 | 회차별 정리
➡️ 1. [JAVA 코드] 알맞은 출력 값을 작성하시오.
class Static {
public int instanceVariable = 20;
static int staticVariable = 0;
}
public class Main {
public static void main(String[] args) {
int localVariable;
localVariable = 10;
Static.staticVariable = localVariable;
Static st = new Static();
System.out.println(Static.staticVariable++);
System.out.println(st.staticVariable);
System.out.println(localVariable);
System.out.print(st.instanceVariable);
}
}
정답
10
11
10
20
해설
➡️ 2. [C 언어 코드] 알맞은 출력 값을 작성하시오.
#include <stdio.h>
int main() {
char word[] = "Art";
char* pointer = NULL;
pointer = word;
printf("%s\n", word);
printf("%c\n", *pointer);
printf("%c\n", *word);
printf("%s\n", pointer);
for (int i = 0; word[i] != '\0'; i++)
printf("%c", word[i]);
return 0;
}
정답
Art
A
A
Art
Art
해설
➡️ 3. [C 언어 코드] 알맞은 출력 값을 작성하시오.
#include <stdio.h>
int main() {
char* str1 = "qwer";
char* str2 = "qwtety";
for (int i = 0; str1[i] != '\0'; i++) {
for (int j = 0; str2[j] != '\0'; j++) {
if (str1[i] == str2[j]) {
printf("%c", str1[i]);
}
}
}
return 0;
}
정답
qwe
해설
➡️ 4. [용어] 다음 설명에 대한 용어를 작성하시오.
- JavaScript와 XML을 이용한 비동기적 정보 교환 기법으로, 비동기적인 웹 애플리케이션을 제작하는 데 사용된다.
- 필요한 데이터만을 웹 서버에 요청하여 받은 후, 클라이언트에서 데이터에 대한 처리를 할 수 있다.
- 주로 SOAP이나 XML 기반의 웹 서비스 프로토콜이 사용되며, 클라이언트 쪽에서는 자바스크립트를 활용하여 웹 서버의 응답을 처리한다.
- Google Map과 Google Pages에서 사용된 기술에 기반하여 제작되었다.
정답
AJAX
Asynchronous JavaScript and XML
해설
➡️ 5. [용어] 다음 설명에 대한 통신 기술을 작성하시오.
a)
- 회선교환 방식과 데이터그램 방식의 장점을 결합한 통신 기술이다.
- 처음 패킷으로 최적의 경로를 고정하고 경로가 고정되면 그 다음은 패킷으로 나누어 고속으로 전송할 수 있다.
- 통신 기술에는 ATM이 있으며, 정해진 시간 안이나 다량의 데이터를 연속으로 보낼 때 적합하다.
b)
- 패킷 교환 방식으로 동작하면서 IP 주소를 사용하는 인터넷을 의미한다.
- 각 전송 패킷을 미리 정해진 경로 없이 독립적으로 처리하여 교환하는 방식이다.
- 특정 교환기의 고장 시 모든 패킷을 잃어버리는 가상 회선과 달리, 경로를 피해서 전송할 수 있으므로 더욱 신뢰가 가능하다.
- 짧은 메시지의 패킷을 전송할 때 효과적이며, 재정렬 기능이 필요하다.
정답
a) 가상회선
b) 데이터그램
해설
➡️ 6. [용어] 다음 설명에 대한 기술 용어를 작성하시오.
- 2 계층(데이터링크 계층)에서 구현되는 터널링 기술 중 하나이다.
- L2F와 PPTP가 결합된 프로토콜로, VPN과 인터넷 서비스 제공자(ISP)가 이용한다.
- IPsec을 함께 사용하면 PPTP보다 훨씬 안전하지만, 보안보다는 익명화에 더 적합하다.
정답
L2TP
해설
➡️ 7. [용어] 다음 설명에 대한 프로토콜을 작성하시오.
- 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 파일을 복사할 수 있도록 하는 응용 프로그램 또는 프로토콜이다.
- rsh, rcp, rlogin, rexec, telnet, ftp 등의 보안 접속을 제공하며, IP spoofing을 방지하기 위한 기능을 갖추고 있다.
- 기본적으로 포트는 22번이 할당되어 있다.
정답
SSH
Secure SHell
해설
➡️ 8. [용어] 다음 설명에 대한 용어를 작성하시오.
( a )
- 자체 복제가 가능한 악성 프로그램으로, 파일 전송 기능을 이용하여 전파될 수 있다.
- 다른 실행 프로그램을 필요로하지 않고, 감염된 컴퓨터 시스템에서 스스로를 복제하여 확산한다.
- 네트워크를 통한 전파와 자가 복제 기능을 가지고 있다.
( b )
- 정상적인 프로그램으로 위장하여 사용자가 설치하도록 유도하며, 백도어를 만들어 공격자가 침입하거나 시스템을 파괴하는 악성 프로그램이다.
- 램에 상주하여 계속 실행되며, 시스템 내부 정보를 빼돌려 공격자에게 전송한다.
- 내부 정보 유출 및 시스템 컨트롤이 가능한 종류가 있으며, 감염 후 스스로를 복제하지는 않는다.
( c )
- 대상 파일을 감염시키는 악성코드로, 실행될 때 감염 대상이 존재하면 동작한다.
- 컴퓨터 시스템에 침입하여 프로그램에 기생하며, 시스템을 변경하거나 사용 불가능하게 만든다.
- 네트워크를 통한 전파는 없으며, 다양한 형태로 나뉘어지며 실행 위치에 따라 다르게 작동한다.
정답
a) 웜
b) 트로이 목마
c) 바이러스
해설
➡️ 9. [C 언어 코드] 괄호 안에 알맞은 코드를 작성하시오.
[조건]
이진수를 십진수로 변환하는 코드
#include <stdio.h>
int main() {
int input = 101110;
int di = 1;
int sum = 0;
while (1) {
if (input == 0) break;
else {
sum = sum + (input ( a ) ( b )) * di;
di = di * 2;
input = input / 10;
}
}
printf("%d", sum);
return 0;
}
정답
a) %
b) 10 or 5 or 2
해설
➡️ 10. [용어] 다음 설명에 대한 보안 용어를 작성하시오.
- ( a ) ICMP은 TCP/IP에서 IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜이다.
- ( a ) 프로토콜은 주로 다른 호스트나 게이트웨이와 연결된 네트웍에 문제가 있는지 확인하기 위한 목적으로 사용된다.
- ( a )을 이용한 공격에는 ( a ) Flooding이 있는데 ping 명령어를 통한 ( a ) 패킷을 연속적으로 계속 보내어 서버의 요청에 응답으로 인한 다른 작업을 하지 못하도록 하는 공격이다.
정답
a) ICMP
해설
➡️ 11. [용어] 다음 설명에 대한 디자인 패턴을 작성하시오.
- 다른 무언가와 이어지는 인터페이스 역할을 하는 클래스를 의미한다.
- 실제 객체를 호출하면 행위를 중간에 가로채서 다른 동작을 수행하는 객체로 변경한다.
- 객체를 정교하게 제어해야 하거나 객체 참조가 필요한 경우 사용한다.
- 분리된 객체를 위임함으로써 대리 작업을 중간 단계에 삽입할 수도 있으며 분리된 객체를 동적으로 연결함으로써 객체의 실행 시점을 관리할 수도 있다.
정답
proxy
해설
➡️ 12. [용어] 다음 설명에 대한 데이터베이스 용어를 작성하시오.
( a )
- 셀 수 있는 수량의 순서 있는 열거이다.
- 중복이 허용될 수 있는 특징이 있다.
- 여러 객체를 모아서 담으며, 숫자, 문자, 객체, 배열, 튜플 안의 튜플이 가능하다.
( b )
- 릴레이션의 내용 또는 저장된 데이터 전체를 의미한다.
- 릴레이션 외연(Relation Extension)이라고도 한다.
( c )
- 특정 데이터 집합의 유니크한 값의 개수이다.
- 특정 컬럼의 중복 수치를 나타내는 지표이다.
정답
a) 튜플
b) 릴레이션 인스턴스
c) 카디널리티
해설
➡️ 13. [SQL] 알맞은 SQL문을 작성하시오.
[조건]
-[학생 테이블]에서 학생 이름이 '민수'인 튜플을 삭제하는 쿼리
- 컬럼의 값이 문자열일 경우 작은 따움표를 표시한다.
- SQL 마지막에 세미콜론(;)은 표기하지 않아도 관계 없다.
[학생 테이블]
순번 | 학년 | 이름 |
1 | 1 | 종현 |
2 | 2 | 민수 |
3 | 3 | 수연 |
4 | 4 | 수지 |
정답
DELETE FROM 학생
WHERE 이름 = '민수';
해설
➡️ 14. [JAVA 코드] 괄호 안에 알맞은 코드를 작성하시오.
public class BubbleSort {
public static void swap(int[] arr, int idx1, int idx2) {
int temp = arr[idx1];
arr[idx1] = arr[idx2];
arr[( a )] = temp;
}
public static void bubbleSort(int[] array, int length) {
for (int i = 0; i < length; i++) {
for (int j = 0; j < length - i - 1; j++) {
if (array[j] > array[j + 1]) {
swap(array, j, j + 1);
}
}
}
}
public static void main(String[] args) {
int[] numbers = new int[] {5, 3, 8, 1, 2, 7};
int arrayLength = 6;
bubbleSort(numbers, ( b ));
for (int data : numbers) {
System.out.print(data + " ");
}
}
}
[출력 결과]
1 2 3 5 7 8
정답
a) idx2
b) arrayLength
해설
➡️ 15. [Python 코드] 알맞은 출력 값을 작성하시오.
countries = {'한국', '중국', '일본'}
countries.add('베트남')
countries.add('중국')
countries.remove('일본')
countries.update({'홍콩', '한국', '태국'})
print(countries)
정답
{'한국', '태국', '베트남', '중국', '홍콩'}
해설
➡️ 16. [SQL] 알맞은 SQL문을 작성하시오.
[조건]
- WHERE 절 사용 금지
- SELECT 절에 별칭 사용
- SQL 구문 마지막에 세미콜론 생략 가능
- GROUP BY와 HAVING 반드시 사용
- 집계 함수를 사용
[성적 테이블]
순번 | 과목이름 | 점수 |
1 | 데이터베이스 | 89 |
2 | 데이터베이스 | 92 |
3 | 네트워크 | 88 |
4 | 소프트웨어 | 91 |
5 | 네트워크 | 89 |
6 | 소프트웨어 | 85 |
[결과]
과목이름 | 최소점수 | 최대점수 |
데이터베이스 | 89 | 92 |
정답
SELECT
과목이름,
MIN(점수) AS 최소점수,
MAX(점수) AS 최대점수
FROM
성적
GROUP BY
과목이름
HAVING
AVG(점수) >= 90;
해설
➡️ 17. [JAVA 코드] 알맞은 출력 값을 작성하시오.
abstract class Vehicle {
String name;
abstract public String getName(String val);
public String getName() {
return "Vehicle name: " + name;
}
}
class Car extends Vehicle {
public Car(String val) {
name = super.name = val;
}
@Override
public String getName(String val) {
return "Car name:" + val;
}
public String getName(byte val[]) {
return "Car name:" + val;
}
}
public class Main {
public static void main(String[] args) {
Vehicle obj = new Car("Spark");
System.out.println(obj.getName());
}
}
정답
Vehicle name: Spark
해설
➡️ 18. [용어] 다음 설명에 대한 스키마를 작성하시오.
( a ) 스키마
- 사용자나 응용 프로그래머는 데이터베이스의 논리적 구조를 정의한다.
- 서브 스키마로 개별 데이터베이스 시스템의 논리적 부분을 나타낸다.
- 여러 외부 스키마가 하나의 데이터베이스 시스템에 존재할 수 있으며, 하나의 외부 스키마를 여러 응용 프로그램이 공유할 수 있다.
( b ) 스키마
- 데이터베이스의 전체적인 논리적 구조로, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로 하나만 존재한다.
- 개체 간의 관계와 제약 조건을 정의하고 데이터베이스의 접근 권한, 보안, 무결성 규칙에 관한 명세를 제공한다.
- 데이터베이스 파일에 저장되는 데이터의 형태를 정의하며, 기관이나 조직체의 관점에서 데이터베이스를 정의한다.
( c ) 스키마
- 물리적인 저장장치 입장에서 데이터가 저장되는 방법을 기술한다.
- 실제 데이터베이스에 저장될 레코드의 물리적인 구조를 정의하고 저장 데이터 항목의 표현방법, 내부 레코드의 물리적 순서, 인덱스 여부 등을 나타낸다.
- 시스템 프로그래머나 시스템 설계자가 관리한다.
정답
a) 외부
b) 개념
c) 내부
해설
➡️ 19. 다음 아래 제어 흐름 그래프가 분기 커버리지를 만족하기 위한 테스팅 순서를 쓰시오.
정답
1234561, 124567
1234567, 124561
해설
➡️ 20. [JAVA 코드] 알맞은 출력 값을 작성하시오.
class Parent {
int parentX = 100;
Parent() {
this(500);
}
Parent(int x) {
this.parentX = x;
}
int getParentX() {
return parentX;
}
}
class Child extends Parent {
int childX = 4000;
Child() {
this(5000);
}
Child(int x) {
this.childX = x;
}
}
public class Main {
public static void main(String[] args) {
Child obj = new Child();
System.out.println(obj.getParentX());
}
}
정답
500
해설
반응형