정처기 실기 : 2023년 1회차 기출, 1️⃣~🔟

m_ngyeong·2024년 4월 19일
0
post-thumbnail

정보처리기사 실기


📝 2023년 1회차 기출, 1️⃣~🔟

1. Java Lang. - Static

class Static{
     public int a = 20;static int b = 0;   
}
 
public class Test{
    public static void main(String[] args) {
         int  a = 10;
         Static.b = a;Static st = new Static(); // 객체 변수 st 선언

         System.out.println(Static.b++);
         System.out.println(st.b);
         System.out.println(a);
         System.out.print(st.a);
    }
}

🖍
10
11
10
20

  • static 으로 선언된 변수b:
    • main() 메서드가 시작되기 전에 메모리의 static 영역에 할당되며, 코드가 수행되는 동안 공유됨
    • 인스턴스를 생성하지 않아도 사용할 수 있으므로 클래스의 이름을 통해 Static.b와 같이 접근할 수 있음
      *인스턴스 : 클래스로부터 만들어진 객체
  • ② 객체 변수 선언:
    - 클래스의 정의부를 바탕으로 새로운 인스턴스를 생성하여 메모리를 배정하고 그 메모리의 주소를 변수명 st에 연결하는 것을 의미
    - but, Static 클래스의 변수b는 프로그램 전체 영역에서 공유되는 변수이므로 새로 메모리에 할당되지 않고 Static.b와 같은 메모리를 공유

2. C Lang. - Pointer

#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]);
    }
}

🖍
Art
A
A
Art
Art

Pointer

  • * : 주소에 해당하는 값을 가리킴
  • & : 해당 변수명의 주솟값

format string

  • %c : 문자 1글자
  • %s : 문자열
  • %d : 10진수 정수
  • %f : 부동 소숫점

3. C Lang.  - Pointer + for문

#include <stdio.h>

int main() {
    char* a = "qwer";
    char* b = "qwtety";
 
    for(int i = 0; a[i] != '\0' ; i++){
        for(int j = 0; b[j] != '\0'; j++){
            if(a[i] == b[j]) printf("%c", a[i]);
        }
    }
}

🖍 qwe
1️⃣ if(a[i] == b[j])의 구문해 의해 a[i]b[j]의 값이 값으면 출력

4.

( )은/는 비동기적인 웹 애플리케이션의 제작을 위해 JavaScript와 XML을 이용한 비동기적 정보 교환 기법이다.

( )은/는 필요한 데이터만을 웹서버에 요청해서 받은 후 클라이언트에서 데이터에 대한 처리를 할 수 있다. 보통 SOAP이나 XML 기반의 웹 서비스 프로토콜이 사용되며, 웹 서버의 응답을 처리하기 위해 클라이언트 쪽에서는 자바스크립트를 쓴다.

( )은/는 Google Map과 Google pages에서 사용한 기술에 기반하여 제작되었다.

🖍 AJAX(Asynchonous Javascript and XML)

5. 패킷 교환 방식

  • 회선교환 방식과 데이터그램 방식의 장접을 결합한 통신 기술
  • 처음 패킷으로 최적의 경로를 고정하고 경로가 고정되면 그 다음은 패킷으로 나누어 고속으로 전송 가능
  • 통신기술에는 ATM이 있으며, 정해진 시간 안이나 다량의 데이터를 연속으로 보낼 때 적합
  • 연결형 통신에서 주로 사용되는 방식으로, 출발지와 목적지의 전송 경로를 미리 연결하여 논리적으로 고정한 후 통신하는 방식

  • 패킷교환 방식으로 동작하면서 IP 주소를 사용하는 인터넷을 의미
  • 각 전송패킷을 미리 정해진 경로 없이 독립적으로 처리하여 교환하는 방식
  • 특정 교환기의 고장 시 모든 패킷을 잃어버리는 가상회선과 달리, 그 경로를 피해서 전송할 수 있으므로 더욱 신뢰가 가능
  • 짧은 메시지의 패깃들을 전송할 때 효과적이고 재정렬 기능이 필요
  • 비연결형 통신에서 주로 사용되는 방식으로, 사전에 접속 절차를 수행하지 않고 헤더에 출발지에서 목적지까지의 경로 지정을 위한 충분한 정보를 붙여서 개별적으로 전달하는 방식

    🖍 ①가상 회선(Virtual Circuit) 방식, ②데이터그램(Datagram) 방식

6.

  • 2 계층(데이터링크 계층)의 프로토콜 중 하나로, 터널링 프로토콜인 PPTP와 VPN의 구현에 사용되는 L2F의 기술적 장점들을 결합하여 만든 프로토콜이다.
  • IPsec을 함께 사용하면 PPTP보다 훨씬 안전하지만 보안보다 익명화에 더 적합하다.
  • 자체적으로 암호화 및 인증 기능을 제공하지 않아 다른 보안 프로토콜과 함께 사용되는 경우가 많다

🖍 L2TP(Layer 2 Tunneling Protocol)
https://velog.io/@m_ngyeong/OSIOpen-System-Interconnection-7계층

7.

  • 다른 컴퓨터에 로그인, 원격 명령 실행, 파일 복사 등을 수행할 수 있도록 다양한 기능을 지원하는 프로토콜 또는 이를 이용한 응용 프로그램이다.
  • 데이터 암호화와 강력한 인증 방법으로 보안성이 낮은 네트워크에서도 안전하게 통신할 수 있다.
  • 키(Key)를 통한 인증 방법으로 사용하려면 사전에 클라이언트의 공개키를 서버에 등록해야 한다.
  • 기본적으로는 22번 포트를 사용한다.

🖍SSH

응용 계층 프로토콜(7계층, Application Layer)

https://velog.io/@m_ngyeong/OSIOpen-System-Interconnection-7계층-3

  • HTTP(HyperTExt Transfer Protocol) / Port Num: 80,
    텍스트 기반의 통신규약으로 인터넷에서 데이터를 주고받을 수 있는 프로토콜
  • FTP(File Transfer Protocol) / Port Num: 21,
    TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 파일을 전송하기 위한 프로토콜
  • SSH(Secure Shell)
  • Telnet / Port Num: 23,
    인터넷이나 로컬 영역에서 네트워크 연결에 사용되는 네트워크 프로토콜
  • SMTP(Simple Mail Transfer Protocol) / Port Num: 25,
    인터넷에서 이메일을 보내기 위해 이용되는 프로토콜
  • POP3(Post Office Protocol version 3) / Port Num: 110,
    원격 서버로부터 TCP/IP 연결을 통해 이메을 가져오는 데 사용하는 프로토콜
  • IMAP(Internet Messaging Access Protocol) / Port Num: 143,
    원격 서버로부터 TCP/IP 연결을 통해 이메일을 가져오는데 사용하는 프로토콜
  • SNMP(Simple Network Managemnet Protocol) / Port Num: 161,
    TCP/IP의 네트워크 관리 프로토콜로, 라우터나 허브 등 네트워크 장치로부터 정보를 수집 및 관리하여, 정보를 네트워크 관리 시스템에 보내는 데 사용하는 인터넷 표준 프로토콜

8. Malware

  • 감연된 컴퓨터 시스템에서 스스로 복제해 다른 컴퓨터로 복사본을 확산시킬 수 있는 악성 프로그램이다.
  • 독자적으로 실행되며 다른 실행 프로그램이 필요하지 않고, 파일 전송 기능을 착취하도록 설계한다.
  • 자가 복제 및 네트워크를 통한 전파도 가능하다.

  • 정상적인 프로그램으로 가장해 사용자가 직접 컴퓨터에 설치하도록 위장하며, 백도어를 만들어 공격자가 침입할 수 있도록 만들거나 시스템을 파괴한다.
  • 정상적인 프로그램으로 위장하여 시작부터 끝까지 램에 상주하며, 시스템 내부 정보를 공격자의 컴퓨터로 빼돌리는 프로그램이다.
  • 감염된 후에 스스로 복제하는 능력은 없다.

  • 대상(정상 파일)을 감염시키는 형태로 실행되며, 감염시킬 대상이 존재하지 않을 때에는 실행되지 않으며 다른 정상 파일로의 자가 복제 기능이 있다.
  • 컴퓨터 시스템에 침입해 프로그램에 기생하며 시스템을 변경하거나 사용할 수 없도록 만드는 악성코드이다.
  • 네트워크를 통해 전파되지 않으며 방식 및 위치에 따라 여러 형태로 나뉜다.

🖍① 웜(Worm), ② 트로이 목마, ③ 바이러스
https://velog.io/@m_ngyeong/Building-Software-development-Security-1

9. C Lang - 2진수→10진수

#include <stdio.h>

int main() {
    int input = 101110;
    int di = 1;
    int sum = 0;
 
    while (1) {
    1️⃣    if (input == 0) break;
    2️⃣    sum = sum + (input ()())* di;
    3️⃣    di = di * 2;
    4️⃣    input = input / 10; 
    }
 
    printf("%d", sum);
    return 0;
}

🖍① %, ② 10
1️⃣ input 값이 0이면 break을 만나 반복문을 벗어나 printf("%d", sum); 구문이 있는 곳으로 이동.
2️⃣ suminput을 10으로 나눈 나머지에 di를 곲한 값을 누적시킴.
(101110을 10으로 나누어 몫과 나머지를 구한수, 나머지에 2의0승을 곱한 수 그 값을 누적.)
3️⃣ di에 2을 곱함, 2의 제곱수를 1씩 증가시키는 구문.
4️⃣ input을 10으로 나눔, 2진수를 10으로 나눈 몫을 구하는 과정.
▶️ 10110 / 10 ⇒ 몫: 10111, 나머지: 0 → 0 x 2의0승 = 0 ∴ 누적 : 0

10. 보안

( )은/는 TCP/IP에서 IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜이다.
( ) 프로토콜은 보통 다른 호스트나 게이트웨이 와 연결된 네트웍에 문제가 있는지 확인하기 위한 목적으로 주로 사용된다.
( ) 을/를 이용한 공격에는 ( ) Flooding가 있는데 ping 명령어를 통한 ( ) 패킷을 연속적으로 계속 보내어 서버의 요청에 응답으로 인한 다른작업을 하지 못하도록 하는 공격이다.

🖍ICMP
https://velog.io/@m_ngyeong/OSIOpen-System-Interconnection-7계층-2



참고,
길벗알앤디. 『정보처리기사 실기 단기완성』. 길벗. 2023.
https://newbt.kr/시험/정보처리기사%20실기/2023년%201회/오소프트0506

profile
ʚȉɞ

0개의 댓글