정보처리기사 실기 2023년-1회
2023-1회
1. JAVA
class Static{
public int a = 20;
static int b = 0;
}
public class Main{
public static void main(String[] args) {
int a;
a = 10;
Static.b = a;
Static st = new Static();
System.out.println(Static.b++);
System.out.println(st.b);
System.out.println(a);
System.out.print(st.a);
}
}
- st : Static() 객체 생성, st.b = 10
- Static.b++ : 10
- st.b : 11(b++때문에 1 증가)
- a : 10
- st.a : 20
2. C
#include <stdio.h>
int main(){
char a[] = "Art";
char* p = NULL;
p = a;
printf("%s\n", a);
printf("%c\n", *p);
printf("%c\n", *a);
printf("%s\n", p);
for(int i = 0; a[i] != '\0'; i++)
printf("%c", a[i]);
}
- p는 a 참조.
- printf(“%s\n”, a); : %s 형식 => Art
- printf(“%c\n”, *p); : %c => p가 가리키는 첫번째값 : A
- printf(“%c\n”, *a); : a가 가리키는 첫번째값 : A
- printf(“%s\n”, p); : p가 가리키는 값 : Art
- for … : Art
4. 용어
( )은/는 비동기적인 웹 애플리케이션의 제작을 위해 JavaScript와 XML을 이용한 비동기적 정보 교환 기법이다.
( )은/는 필요한 데이터만을 웹서버에 요청해서 받은 후 클라이언트에서 데이터에 대한 처리를 할 수 있다. 보통 SOAP이나 XML 기반의 웹 서비스 프로토콜이 사용되며, 웹 서버의 응답을 처리하기 위해 클라이언트 쪽에서는 자바스크립트를 쓴다.
( )은/는 Google Map과 Google pages에서 사용한 기술에 기반하여 제작되었다.
정답 : AJAX(Asynchronous JavaScript and XML)
5. 데이터 교환 방식
정답 : 가상회선, 데이터그램
6. 프로토콜
- 2 계층(데이터링크 계층)에서 구현되는 터널링 기술 중 하나
- L2F(Layer 2 Forwarding)와 PPTP(Point to Point Tunneling Protocol)가 결합된 프로토콜로 VPN과 인터넷 서비스 제공자(ISP)가 이용
- IPsec을 함께 사용하면 PPTP보다 훨씬 안전하지만 보안보다 익명화에 더 적합
정답 : L2TP(Layer 2 Tunneling Protocol)
- vpn프로토콜
- 종류
- SSL/SSH : Application(L4~7)
- SSH : 포트번호22, 원격접속프로토콜
- SSL : 전송계층과 응용계층사이에서 클라이언트와 서버 간의 보안 프로토콜
- IPSec : Network(L4)
- IPSEC(IP Security) : 무결성과 인증을 보장하는 AH와 기밀성을 보장하는 암호화(ESP)를 이용해 양 종단 보안서비스를 제공하는 프로토콜, 네트워크계층 보안 프로토콜
- L2TP, PPTP : Datalink(L2)
- L2TP : L2F프로토콜과 PPTP 프로토콜 결합한 형태
- PPTP : MS사의 RAS(원격접근서비스)에기반
- SSL/SSH : Application(L4~7)
- 종류
7. 용어
( ) 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해주는 응용 프로그램 또는 그 프로토콜을 가리킨다.
( ) 보안 접속을 통한 rsh, rcp, rlogin, rexec, telnet, ftp 등을 제공하며, IP spoofing (IP스푸핑, 아이피 위/변조 기법중 하나)을 방지하기 위한 기능을 제공한다.
( ) 기본적으로 포트는 22번이다.
정답 : SSH
8. 해킹
구분 | 내용 |
---|---|
(1) | - 감염된 컴퓨터 시스템에서 스스로 복제해 다른 컴퓨터로 복사본을 확산시킬 수 있는 악성 프로그램이다. - 독자적으로 실행되며 다른 실행 프로그램이 필요하지 않으며, 파일 전송 기능을 착취하도록 설계된다. - 자가 복제 및 네트워크를 통한 전파도 가능하다. |
(2) | - 정상적인 프로그램으로 가장해 사용자가 직접 컴퓨터에 설치하도록 위장하며, 백도어를 만들어 공격자가 침입할 수 있도록 만들거나 시스템을 파괴한다. - 정상적인 프로그램으로 위장하여 시작부터 끝까지 램에 상주하며, 시스템 내부 정보를 공격자의 컴퓨터로 빼돌리는 프로그램이다. - 좀비PC처럼 내부정보 유출뿐만 아니라 컨트롤까지 가능한 종류가 있고, 단순히 내부 데이터만 유출할 수 있는 타입의 트로이 목마가 있다. - 감염된 후에 스스로를 복제하는 능력은 없다. |
(3) | - 대상(정상파일)을 감염시키는 형태로 실행되며, 감염시킬 대상이 존재하지 않을 때에는 실행되지 않으며 다른정상파일로의 자기 복제 기능이 있다. - 컴퓨터 시스템에 침입해 프로그램에 기생하며 시스템을 변경하거나 사용할 수 없도록 만드는 악성코드이다. - 네트워크를 통해 전파되지 않으며 방식 및 위치에 따라 여러형태로 나뉜다. |
(1) 웜
(2) 트로이 목마
(3) 바이러스
10. 보안용어
( )은/는 TCP/IP에서 IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜이다.
( ) 프로토콜은 보통 다른 호스트나 게이트웨이 와 연결된 네트웍에 문제가 있는지 확인하기 위한 목적으로 주로 사용된다.
( ) 을/를 이용한 공격에는 ( ) Flooding가 있는데 ping 명령어를 통한 ( ) 패킷을 연속적으로 계속 보내어 서버의 요청에 응답으로 인한 다른작업을 하지 못하도록 하는 공격이다.
정답 : ICMP(Internet Control Message Protocol)
11. 디자인 패턴
- 다른 무언가와 이어지는 인터페이스 역할을 하는 클래스를 의미한다.
- 실제 객체를 호출하면 행위를 중간에 가로채서 다른 동작을 수행하는 객체로 변경한다.
- 객체를 정교하게 제어해야 하거나 객체 참조가 필요한 경우 사용한다.
-분리된 객체를 위임함으로써 대리 작업을 중간 단계에 삽입할 수도 있으며 분리된 객체를 동적으로 연결함으로써 객체의 실행 시점을 관리할 수도 있다.
- 정답 : proxy
-
객체에 대한 접근을 제어하기 위해서 그 객체를 대신하여 인터페이스 역할 수행
-
실제 객체의 동작을 제어, 변경
-
실제 객체의 접근을 지연, 제한
- 접근 제어 : 실제 객체 생성 지연하거나 필요할 때 까지 생성하지 않음으로써 리소스 절약
- 로깅 및 인증 : 객체 호출 전후에 추가적인 기능 삽입
- 원격 프록시 : 원격 서버에 있는 객체처럼 동작하는 로컬 대리 객체를 제공
- 캐싱 : 반복적인 호출에서 성능 향상을 위해 결과를 캐시하여 사용
12. DB
구분 | 내용 |
---|---|
(1) | - 셀 수 있는 수량의 순서 있는 열거이다. - 어떤 요소의 집합, 혹은 테이블에서의 행을 가리키지만 일반적인 집합과는 달리 중복이 허용될 수 있다. - 리스트와 동일하게 여러 객체를 모아서 담으며, 숫자, 문자, 객체, 배열, 튜플 안의 튜플 전부 가능하다. |
(2) | - 어느 한 시점에 릴레이션의 내용(상태), 즉 저장된 데이터 전체를 의미한다. - 단순히 릴레이션 또는 릴레이션 외연(Relation Extension)라고도 한다. |
(3) | - 특정 데이터 집합의 유니크(Unique)한 값의 개수이다. - 전체 행에 대한 특정 컬럼의 중복 수치를 나타내는 지표이다. |
- 튜플
- 릴레이션 인스턴스
- 카디널리티
17. Java
abstact 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;
}
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());
}
}
- 메인 함수의 obj.getName()에서 getName() 메소드는 파라미터가 없는 함수가 호출되었기 때문에 Vehichle 추상클래스의 getName() 이 호출된다.
- 정답 : Vehicle name : Spark
18. 스키마
구분 | 내용 |
---|---|
(1) 스키마 | - 사용자나 응용 프로그래머가 개인의 입장에서 필요한 데이터베이스의 논리적 구조를 정의한다. - 전체 데이터베이스의 한 논리적인 부분으로 볼 수 있기 때문에 서브 스키마라고도 한다. - 하나의 데이터베이스 시스템에는 여러 개의 외부 스키마가 존재할 수 있다. - 하나의 외부 스키마를 여러개의 응용 프로그램 혹은 사용자가 공유할 수 있다. |
(2) 스키마 | - 데이터베이스의 전체적인 논리적 구조로, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로 하나만 존재한다. - 개체 간의 관계(Relationship)와 제약 조건을 나타내고 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의한다. - 데이터베이스 파일에 저장되는 데이터의 형태를 나타내는 것이다. - 기관이나 조직체의 관점에서 데이터베이스를 정의한 것이다 |
(3) 스키마 | - 물리적인 저장장치 입장에서 데이터가 저장되는 방법을 기술한 것이다. - 실제 데이터베이스에 저장될 레코드의 물리적인 구조를 정의한다. - 저장 데이터 항목의 표현방법, 내부 레코드의 물리적 순서, 인덱스 유/무 등을 나타낸다. - 시스템 프로그래머나 시스템 설계자가 관리한다. |
외부, 개념, 내부
-
외부
사용자, 응용프로그래머가 개인의 입장에서 필요한 DB 논리적 구조 정의
서브 스키마
여러개의 외부 스키마가 하나의 DB에 존재할 수 있다.
외부 스키마는 특정 사용자나 응용프로그램 관점에서 DB 정의
-
개념
DB의 전체적인 논리적 구조 정의
하나의 DB 시스템에서 단 하나만 존재
전체 조직의 데이터 정의
개체 간의 관계, 제약 조건, DB 무결성, 보안 규칙 등 정의
-
내부
DB 물리적 저장 방법 정의
데이터 저장 방식, 저장된 데이터 물리적 구조, 레코드 순서, 인덱스 등 기술
시스템 프로그래머나 시스템 설계자가 관리하는 스키마
물리적 저장 장치의 입장에서 DB 정의
20. JAVA
class Parent {
int x = 100;
Parent() {
this(500);
}
Parent(int x) {
this.x = x;
}
int getX() {
return x;
}
}
class Child extends Parent {
int x = 4000;
Child() {
this(5000);
}
Child(int x) {
this.x = x;
}
}
public class Main {
public static void main(String[] args) {
Child obj = new Child();
System.out.println(obj.getX());
}
}
- Child() 객체 생성 => x = 4000 => this(5000) => Child(5000) => x = 5000
- getX() 호출 => Parent() 객체 호출 => x = 100 => this(500) => Parent(500) => x = 500
정답 : 500
댓글남기기