정처기 실기 - 2025.02.18

이주원·2025년 2월 18일

컴퓨터언어

목록 보기
9/50

다음은 네트워크 취약점에 대한 문제이다. 아래 내용을 보고 알맞는 용어를 작성하시오.

  • IP나 ICMP의 특성을 악용하여 엄청난 양의 데이터를 한 사이트에 집중적으로 보냄으로써 네트워크의 일부를 불능 상태로 만드는 공격이다.

  • 여러 호스트가 특정 대상에게 다량의 ICMP Echo Reply 를 보내게 하여 서비스거부(DoS)를 유발시키는 보안공격이다.

  • 공격 대상 호스트는 다량으로 유입되는 패킷으로 인해 서비스 불능 상태에 빠진다.

    Smurf Attack (스머프 공격) : 엄청난 양의 데이터를 집중적으로 전송하여 네트워크를 마비시키는 DoS (Denial of Service) 공격의 일종입니다.

Ping Flood : 대량의 Ping 요청을 직접 보내 네트워크 대역폭을 소진하는 공격

ICMP Flood: Smurf Attack과 유사하지만 브로드캐스트를 사용하지 않고 직접 ICMP 트래픽을 대량으로 전송하는 공격

DDoS (Distributed Denial of Service) 공격: 여러 개의 분산된 장치에서 트래픽을 발생시켜 서비스 거부를 유발하는 공격 (감염된 pc를 사용)

공격자는 ping이 어디로갈지 설정을한다음 -> 브로드캐스트로 ping 요청하면 네트워크상의 브로드캐스트와 연결된 호스트가 모두 해당 공격주소로 응답


( ) 패턴은 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴이다.
( ) 패턴은 객체들 간의 통신 방법을 정의하고 알고리즘을 캡슐화하여 객체 간의 결합도를 낮춘다.
( ) 패턴은 Chain of Responsibility나 Command 또는 Observer 패턴이 있다.

Chain of Responsibility 패턴 : 책임을 연쇄적으로 전달

Command 패턴 : 요청을 객체로 캡슐화하여 실행을 나중에 할 수도 있고, 취소할 수도 있게 하는 방식

Observer 패턴 : 한 객체의 상태 변화가 여러 다른 객체들에게 자동으로 전파되도록 하는 패턴

1️⃣ 생성(Creational) 패턴 🏗
생성과 초기화 로직을 캡슐화

2️⃣ 구조(Structural) 패턴 🏛
클래스와 객체의 구성(구조)을 설계하는 패턴

observer와 chain of Reponsibility의 차이점: 순서에 차이가있다는말이야?? chain같은경우에는 순차적으로 진행되는것이니까 예외처리가발생하는 경우에 다루기편하고 obsever같은경우에는 mvc같이 병렬적으로 진행해서 컨트롤 할때 편하니까?

행위 패턴의 핵심은 객체들에게 책임을 분배하여 결합도를 낮춘다는 거구나 그럼 각 객체들은 본인기능만 사용하면되고 그렇게 기능별로 나누면 유지보수가 편리하잖아??


  #include <stdio.h>

  int func(){
      static int x = 0;  // static 변수: 함수 호출 시 값 유지됨
      x += 2;            // 호출될 때마다 x 값이 2씩 증가
      return x;
  }

  int main(){
      int x = 1;  // 지역 변수 (main 함수 안에서만 사용됨)
      int sum = 0;

      for(int i = 0; i < 4; i++) {  // 반복문: 4번 실행됨
          x++;            // 지역 변수 x 증가 (func()와 무관)
          sum += func();  // func()의 리턴 값을 sum에 누적
      }

      printf("%d", sum);  // 결과 출력
      return 0;
  }

static 변수가 함수 내에서 선언될 경우 해당 변수는 메모리의 정적(static) 영역에 저장되며, 함수가 종료되어도 값이 유지됩니다.


위반한 무결성은?

📌 위반된 무결성 제약 조건
1️⃣ 기본 키(Primary Key) 무결성 위반

(StudentID가 Primary Key라면)
기본 키(Primary Key)는 유일(unique)해야 하고, NULL 값을 가질 수 없음.

2️⃣ 개체 무결성(Entity Integrity) 위반

기본 키(Primary Key)에는 NULL 값이 들어갈 수 없음.
Eve의 StudentID가 NULL이므로 개체 무결성 위반.

다른테이블에서 외래키를 참조해서 들어왔는데 기본키가 없거나 서로같으면 해당 테이블을 제대로 참조할수 없기때문에 있는 무결성


  1. scheme - 프로토콜(http, https) , foo는 개인서버만들면서 커스텀한 프로토콜
  2. localhost:8080 - authority, 사용자 정보 , 포트번호
  3. over/there? - 자원경로
  4. name=ferret - query 서버에 추가 데이터전달
  5. nose - fragment, 특정 문서 내의 위치


a는 문자열
b는 실수형
c는 튜플형식 , c언어의 배열과 비슷한느낌

파이썬은 쌍따움표도 문자열로 인정함
때문에 func(a) 는 elif 로들어감 '100.0' 따움표빼고 문자열 1 0 0 . 0 5개
실수와 정수는 다름 100.0!=100
c는 당연히 마지막
결론 5+20+20



문제의 키워드는
클래스 에서 객체를 만들어서 어떤 새로운객체를 참조할경우
변수같은것들은 정적 바인딩이 일어나서 해당 클래스를 참조하지만
메서드같은경우에는 동적 바인딩이 일어나서 새로운 객체의 메서드를 참조한다고 합니다.


연결리스트의 값들을 위치를 바꾸고 출력하는문제
요약하면 n1 n3의 value를 바꿔서 출력
n1->n3->n2
3 1 2

struct Node* current = &n1; 이 부분에서 current는 포인터(pointer)

truct Node n1 = {1, NULL};
struct Node n2 = {2, NULL};
struct Node n3 = {3, NULL};

n1.next = &n3;
n3.next = &n2;
그러면 이부분에서
초기값은 전부 null이였는데
n1은 n3의 주소를넣고
n3는 n2의 주소값을넣는거야? ㅇㅇ


끝.

profile
뭐가될지 모름

0개의 댓글