실기암기

Dev_Oh·2025년 4월 14일
1

ESM (Enterprise Security Management)

전사적 관점의 보안 통합 관리 솔루션

SIEM (Security Information and Event Management)

빅데이터 기반의 로그 분석을 통하여 보안의 위협 징후를 빠르게 판단·대응할 수 있도록 해주는 보안 관제 솔루션이다.

str1.equals(str2)

str1 == str2

Sstr3.indexOf("world");

  • "world"는 "hello world"에서 인덱스 6부터 시작

System.out.print(str4.substring(0, 3));

  • "hallo world"의 0~2 인덱스까지: "hal"

System.out.print(str2.charAt(0));

"hello"의 첫 글자: 'h'

테스트 케이스 작성시 테스트 데이터(입력 데이터) 와 예상 결과(기대 결과)를 고려해서 작성 해야한다

“입결정” → 입력과 결과를 정해라
→ 테스트의 시작은 입력 데이터,
→ 테스트의 끝은 예상 결과 확인

① 크리덴셜 스터핑 (Credential Stuffing)

→ 유출된 ID/PW 목록을 수집한 뒤,
→ 자동화된 도구로 다른 사이트에 무차별 시도
→ 동일한 비밀번호를 여러 곳에서 재사용할 때 취약
→ 인증 우회, 개인정보 탈취 목적

② 익스플로잇 (Exploit)

→ 취약점을 이용한 공격 스크립트/코드/프로그램 자체
→ 버그나 설계 결함을 악용해 시스템 장악
→ 시스템 권한 상승, 악성코드 실행, 정보 유출 등 유도 가능

static int x = 0;

→ 함수가 호출될 때마다 초기화되지 않음
→ 한 번만 초기화, 이후 값 유지됨

무결성 종류

개체 무결성 - 기본 키는 중복 없이, NULL 아니여야 한다
참조 무결성 - 외래 키는 참조 대상 기본 키와 일치하거나 NULL이어야 함

def test(lst):
	for i in range(len(lst) // 2):  // 반만 계산 0,1,2 
		lst[i], lst[-i-1] = lst[-i-1], lst[i]   // lst[0], lst[-1] = lst[-1], lst[0] 교환
ls = [1,2,3,4,5,6]
test(ls)  
print(sum(ls[::2]) - sum(ls[1::2]))  // 0 포함 2번째씩 더하기 , 1포함 두번째씩 더하기

답: 3

페이지 교체 알고리즘

LRU (Least Recently Used)

"가장 사용되지 않는것을 제거, 상위로 밀어내면서 계산 숫자는 맨 끝으로 넣고 나머지 숫자는 위로 올림"

    1   1         1 1   1   1  1  1

7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
7 7 7 0 0 0 0 0 0 4 2 2 2 2 2 2 2 1 1 1
. 0 0 1 1 2 2 3 4 2 3 3 3 3 3 1 1 0 0 0
. . . 1 2 2 3 3 4 2 3 0 0 0 1 1 0 0 7 7

FIFO: "먼저 온 놈부터 나간다"
OPT: "미래 예지자가 된 듯, 가장 늦게 쓸 페이지 제거"
LFU : 가장 적게 사용한 거 제거

1 다른 테이블의 기본 키를 참조함 ㉡ 외래키
2 유일성 + 최소성 → 기본 키 후보가 될 수 있음 ㉣ 후보키
3 후보키 중 선택되지 않은 키 ㉢ 대체키
4 유일하지만 최소성은 만족하지 않음 (속성 더 많음) ㉠ 슈퍼키

포인트 함수

즉, (arr + i) = arr[i]

void func1(int** arr, int size) {
    for(int i=0; i < size; i++) {
        *(*arr + i) = (*(*arr + i) + i) % size;  // arr[i] = (arr[i] + i ) % size
    }
}

관계 (연집포 일의실)

try ~ catch() finally

public class Main {
	public static void main(String[] args) {
		int sum = 0;
		try {
			func();  // 첫 실행
		} catch(NullPointerException e) {
			sum = sum + 1;
		} catch(Exception e) {
			sum = sum + 10;
		} finally {  // 무조건 실행됨
			sum = sum + 100;
		}
		System.out.print(sum);
	}
	static void func() throws Exception {
		throw new NullPointerException();  // catch 문 실행
	}
}:  101

화이트박스 테스트 유형 (구결조/조변다/기제데)

구문(문장) 커버리지 :

프로그램 내의 모든 명령문을 적어도 한 번 수행하는 커버리지

결정(선택, 분기) 커버리지 :

결정 포인트 내의 전체 조건식이 적어도 한번은 참과 거짓의 결과가 되도록 수행하는 커버리지

조건 커버리지 :

결정 포인트 내의 각 개별 조건식이 적어도 한번은 참과 거짓의 결과가 되도록 수행하는 커버리지

조건/결정 커버리지 :

전체 조건식 & 개별 조건식 모두 참 한번, 거짓 한 번 결과가 되도록 수행하는 커버리지

변경 조건/결정 커버리지 :

개별 조건식이 다른 개별 조건식에 영향을 받지 않고 전체 조건식에 독립적으로 영향을 주도록 하는 커버리지

다중 조건 커버리지 :

결정 조건 내 모든 개별 조건식의 모든 가능한 조합을 100% 보장하는 커버리지

기본 경로 커버리지 :

수행 가능한 모든 경로를 테스트 하는 기법

제어 흐름 테스트 :

프로그램 제어 구조를 그래프 형태로 나타내어 내부 로직을 테스트하는 기법

데이터 흐름 테스트 :

제어 흐름 그래프에 사용현황 추가한 테스트 기법

카디널리티 = 튜플 = 행 = 기수,레코드

디그리 = 속성 = 차수

IPSec

계층 : OSI 3계층 (네트워크 계층)
기능 : IP 패킷 암호화, 인증, 재생 공격 방지
구성 : AH (Authentication Header), ESP (Encapsulating Security Payload)
용도 : VPN 구현, 기업 간 보안 통신, IP 기반 보안 터널

AH (Authentication Header)

무결성, 출처 인증 제공

암호화는 ❌

ESP (Encapsulating Security Payload)

암호화, 무결성, 인증 모두 가능

실질적인 VPN 구현 핵심

응집도 (우논/시절/통순기)

우연적 응집도 < 논리적 응집도 < 시간적 응집도 < 절차적 응집도 < 통신적 응집도 < 순차적 응집도 < 기능적 응집도

기능적 응집도(Functional Cohesion)

모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우

순차적 응집도(Sequential Cohesion)

모듈 내의 한 활동으로부터 나온 출력값을 모듈 내의 다른 활동이 사용할 경우

통신적 응집도(Communicational Cohesion)

서로 다른 기능을 수행하지만 동일한 입력과 출력을 사용하는 활동들이 모여있을 경우

절차적 응집도(Procedural Cohesion)

모듈 안의 구성요소들이 서로 다른 기능을 하지만 그 기능을 순차적으로 수행할 경우

시간적 응집도(Temporal Cohesion)

연관된 기능이라기 보단 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우

논리적 응집도(Logical Cohesion)

실제와 달리 논리적으로만 같은 그룹으로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우

우연적 응집도(Coincidental Cohesion)

모듈 내부의 각 구성요소들이 연관이 없을 경우

결합도 (내공/외제/스자)

가상 회선 방식

  • 연결형 패킷 교환. 논리적으로 경로를 먼저 설정한 후 통신
  • 회선교환 방식과 데이터그램 방식의 장점을 결합한 기술
  • 정해진 시간 안이나 다량의 데이터를 연속으로 보낼때 적합

데이터그램 방식

  • 비연결형 패킷 교환. 경로 설정 없이 독립적으로 전송
  • 짧은 메시지의 패킷 전송할떄 효과적

디자인패턴

📦 [생성 패턴] — 생빌 프로 팩앱싱

패턴 키워드 요약 기억 포인트
Singleton 단 하나만 /전역 인스턴스 1개
Builder 분리 생성 /복잡한 객체 조립
Prototype 복제 /클론으로 찍어냄
Factory Method 서브클래스가 생성/ 생성 책임 위임
Abstract Factory 제품군 묶음 생성/ 관련 객체 집합 생성

🧱 [구조 패턴] — 구브데퍼플프록컴어

패턴 키워드 요약 기억 포인트
Bridge 추상/구현 분리 독립 확장 가능
Decorator 기능 추가 덧붙임 런타임 기능 확장
Facade 단순한 인터페이스 복잡함을 감싼다
Flyweight 공유 메모리 절약
Proxy 대리 객체 접근 제어
Composite 트리 구조 전체-부분 동일 처리
Adapter 인터페이스 호환 중간 연결 변환기

🎭 [행위 패턴] — 행미인이 템옵스테비커스트메체

패턴 키워드 요약 기억 포인트
Mediator 중재자 /객체 간 통신을 중앙에서 조정
Interpreter 언어 해석 /문법 트리 해석
Iterator 순차 접근 /내부 구조 노출 없이 탐색
Template Method 알고리즘 틀 제공 /뼈대는 상위, 세부는 하위
Observer 상태 변화 전파 /일대다 자동 알림
State 상태에 따른 행동 /조건문 대신 클래스
Visitor 연산 분리 메시지가 돌아다니면서 방문/ 구조는 그대로, 기능만 추가
Command 요청 캡슐화 /요청을 객체로 저장/취소
Strategy 알고리즘 교체 가능 /행위 캡슐화 후 교환 가능
Memento 상태 저장 복원 /Undo 기능에 유용
Chain of Responsibility 처리 책임 연쇄 /처리될 때까지 패스

String[] result = str.split("T");

t기준으로 문자열을 나눠서 배열로 저장 result = {"I", "IS", "ES", "S", "RING"}

public class Main {
	public static void main(String[] args) {
		String str = "ITISTESTSTRING";
		String[] result = str.split("T");
		System.out.print(result[3]);
	}
}

//result = {"I", "IS", "ES", "S", "RING"}
// 답 : result[3] = S

RIP 내부 라우팅 프로토콜 최단경로 홉계산

홉수가 제일 적은 라인으로 AB

A->D->C->F

암호방식

◆ 비대칭 키 암호 방식

: 개인 키를 나눠 가지지 않은 사용자들이 안전하게 통신하는 방식, 공개키는 누구나 알수 있으나 개인키는 키의 소유자만 알고 있어야 한다. (RSA, 디피-헬만)

◆ 일방향 암호 방식(해시 암호 방식) -MM

: 임의 길이의 정보를 입력받아, 고정된 길이의 암호문(해시값)을 출력하는 암호 방식

MAC(Message Authentication Code): 키를 사용하는 메시지 인증 코드로 메시지의 무결성과 송신자의 인증 보장
MDC(Modification Detection Code): 키를 사용하지 않는 변경 감지 코드로 메시지의 무결성 보장

◆ 대칭키 암호화 알고리즘 -DSAAIL

DES: 1972년에 미국 국립기술 표준원(NIST)필요성느낌 1975년 IBM 개발, 대칭 키 기반
SEED: 1999년 한국인터넷진흥원(KISA) 개발
AES: 2001년 미국 표준기술 연구소(NIST) 개발 des대체
ARIA: 2004년 국가정보원과 산학연구협회가 개발
IDEA: DES 대체, 스위스 연방기술기관 개발
LFSR: 선형함수로 계산되는 구조로 되어있는 스트림 암호화 알고리즘

◆ 비대칭 키 암호화 알고리즘 -디REE

디피-헬만: 최초의 공개키 알고리즘
RSA: 1977년 MIT 라이베스트 샤미르 애들먼 교수 3명 개발, 큰 수는 소인수분해 하는것이 어렵다는 것에 기반 하여 개발
ElGamal: 1984년 ElGamal 개발, 이산대수
ECC: 1985년 RSA 대안으로 개발, 타원곡선방정식

◆ 해시 암호화 알고리즘

MD5: MD4 개선한 암호화 알고리즘, 파일의 무결성 검사에 사용
SHA-1: 1993년 NSA에 미국 정부 표준 지정
SHA-256/384/512: 256비트의 해시값을 생성하는 해시함수
HAS-160: 국내 표준 서명 알고리즘
HAVAL: 메시지를 1024bits 블록으로 나눔

◆ IPSec(Internet Protocol Security)

: 무결성과 인증을 보장하는 인증 헤더와 기밀성을 보장하는 암호화를 이용한 IP 보안 프로토콜

◆ SSL(Secure Socket Layer)/TLS(Transport Layer Security)

: 클라이언트와 서버간의 웹데이터 암호화(기밀성), 상호 인증 및 전송 시 데이터 무결성을 보장하는 보안 프로토콜

◆ S-HTTP(Secure Hypertexrt Transfer Protocol)

: 웹상에서 네트워크 트래픽을 암호화 하는 방법

OSPF

  • 링크 상태 라우팅 프로토콜 (Link State)
  • OSI 3계층 (Network Layer)
  • Dijkstra (SPF) 알고리즘 사용
  • 내부 라우팅 프로토콜 (IGP)

분류 프로토콜
정적 라우팅 : 수동 설정 (관리자가 직접)
동적 라우팅 : RIP, OSPF, BGP 등
거리 벡터 : RIP
링크 상태 : OSPF
경로 벡터 : BGP

🔐 정보보안 침해 공격 정리 (한글 + 영어)



정보 보안 침해 공격

  • 해킹 :
    시스템에 침입해 정보를 수정하거나 빼내는 행위
  • 크래킹 :
    시스템에 침입해 정보를 파괴하거나 변경하는 행위
  • 좀비pc :
    악성코드에 감염되어 다른 컴퓨터를 조종하는 행위
  • c&c서버 :
    해커가 감염된 좀비pc에 명령을 내리고 악성코드를 제어하기 위한 용도로 사용하는 서버
  • 웜(Worm) :
    다른 컴퓨터의 취약점을 이용하여 스스로 전파하거나 메일로 전파되며 스스로를 증식(독자적으로 실행 가능)
  • 바이러스 :
    파일, 메모리 영역에 자신을 복제하는 악성 프로그램(독자적으로 실행 불가)
  • 트로이목마 :
    정상적인 프로그램으로 가장하여 숨어 있는 바이러스(복제x)
  • 백도어 :
    보안이 제거된 비밀통로 무단 접근을 위한 통로(뒷문) ★탐지 방법 : 무결성 검사, 로그 분석, SetID파일, 열린 포트 검사
  • 랜섬웨어 :
    내부 문서 파일 등을 암호화해 사용자가 열지 못하게 하고 이를 인질로 금전을 요구하는데 사용되는 악성 프로그램
  • APT :
    지능형 지속 공격 / 특정 개인 및 조직을 타겟으로 침투 후 내부 서버 제어권 획득하여 무력화된 시스템 상의 데이터 수집
  • Qshing(큐싱) :
    QR코드를 통해 악성 앱 다운을 유도하거나 설치
  • XSS :
    브라우저 스크립트 취약점을 악용 특정 링크 클릭 시 악성 스크립트 실행되어 개인정보 탈취
  • CSRF :
    사용자가 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격
  • 제로데이공격 :
    발견된 취약점의 존재를 공표하기 전에 해당 취약점으로 이용한 보안공격
  • 스니핑 :
    패킷을 엿보면서 계정 정보를 가로채는 행위
  • 스푸핑 :
    검증된 사람이 네트워크를 통해 데이터를 보낸 것처럼 데이터를 변조하여 접속을 시도하는 일종의 속임수
  • IP Spoofing :
    공격자가 자신의 IP 주소를 다른 주소로 위장
  • ARP Spoofing :
    공격자의 MAC 주소를 다른 컴퓨터 주소로 위장
  • DNS Spoofing :
    DBS IP 주소를 중간에 조작하여 위장
  • 세션 하이재킹 :
    서버에 접속하고 있는 클라이언트들의 세션 정보를 가로채는 공격(Reset 패킷을 통해 강제 종료시킨 후 재연결 시 침입자에게 연결)
  • 스피어 피싱 :
    불특정 다수에게 메일 발송 후 가짜 위장 사이트로 유인 후 금융기관 관련 개인 정보를 빼내는 행위
  • 스미싱 :
    SMS를 통한 개인 신용 정보 탈취
  • 파밍 :
    금융기관의 도메인 주소를 중간에 가로채 사용자가 금융기관 사이트에 접속한 듯 착각하게 하여 개인정보 탈취
  • 타이포스쿼팅 :
    사용자가 웹URL 주소를 잘못 입력하는 실수를 악용
  • 웨일링 :
    CEO, 고위 경영진, 연예인 등 유명인사를 타깃으로 한 스피어 피싱
  • 키로거 :
    키 입력 캐치 프로그램을 이용하여 개인정보를 빼내어 악용하는 행위
  • 버퍼 오버플로우 :
    할당된 메모리의 범위를 넘어선 위치에서 자료를 사용할 때 발생
  • SQL 삽입 공격 :
    임의의 SQL문을 주입하고 실행되게 하여 데이터베이스가 비정상적인 동작을 하도록 조작하는 코드 삽입 공격
  • Brute Force Attack :
    무작위 대입 공격 / 가능한 모든 문자열 조합으로 암호키 탈취
  • Watering Hole Attack :
    타겟이 주로 방문한는 웹 사이트 감염시킨 후 해당 타겟이 감염된 웹 사이트 방문할 때까지 기다리는 공격
  • BlueBug :
    블루투스 연결 취약점을 이용한 공격
  • Credential Stuffing :
    공격자가 여러 가지의 경로로 수집한 사용자들의 로그인 인증 정보를 다른 사이트의 계정 정보에 무작위 대입
  • Island Hopping :
    타겟 기업을 침해하기 위해 보안이 더 취약한 협력사, 파트너 기업의 네트워크를 해킹
  • Rootkit :
    권한이 없는 사용자가 접근할 수 없는 영역에 접근하여 시스템을 제어하도록 설계된 악성 소프트웨어의 모음

포인트함수연산

JAVA 오버로딩 오버라이딩 주의

  • 완전히 인수까지 같은 거 찾아가야함
class Printer {
    void print(String s) { System.out.println(s); }       // 오버로딩 대상
    void print(int i) { System.out.println(i); }          // 오버로딩

    void message() { System.out.println("Parent"); }
}

class ColorPrinter extends Printer {
    @Override
    void message() { System.out.println("Child"); }       // 오버라이딩
}

세타 조인

일반 조건 조인 (=, !=, <, >, 등)

동등 조인

= 조건만 사용하는 세타 조인의 특수한 형태

자연 조인

동등 조인 + 중복 속성 제거

💡 비트연산 방법 << 연산자

표현 의미
x << n x를 왼쪽으로 n비트 이동 → x × 2ⁿ
x >> n x를 오른쪽으로 n비트 이동 → x ÷ 2ⁿ (정수 나눗셈)

파이썬 문구 자를떄 split()

포인트 접근 방법 (d2 -> numPtr = &num;)

#include <stdio.h>
#include <stdlib.h>

typedef struct Data {
    char c;
    int *numPtr;
} Data;

int main() {
    int num = 10;
    Data d1;  //변수
    Data *d2 = malloc(sizeof(Data));  //포인터

    d1.numPtr = &num           // 구조체 변수에 멤버 접근 
    d2 -> numPtr = &num;       // 구조체 포인터에서 멤버접근

    printf("%d\n", *d1.numPtr);
    printf("%d\n", *(d2->numPtr));

    free(d2);
    return 0;
}

UML 다이어그램

https://myallinone.tistory.com/entry/UML-%EB%8B%A4%EC%9D%B4%EC%96%B4%EA%B7%B8%EB%9E%A8-%ED%81%B4%EB%9E%98%EC%8A%A4-%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8-%EA%B0%9D%EC%B2%B4-%ED%8C%A8%ED%82%A4%EC%A7%80-%EC%9C%A0%EC%A6%88%EC%BC%80%EC%9D%B4%EC%8A%A4-%ED%96%89%EB%8F%99-%EC%83%81%ED%83%9C-%EC%8B%9C%ED%80%80%EC%8A%A4-%EB%8B%A4%EC%9D%B4%EC%96%B4%EA%B7%B8%EB%9E%A8

완전수 문제 암기

완전수 : 6, 28, 496, 8128

#include <stdio.h>

int test(int n) {
    int i, sum = 0;

    for (i = 1; i <= n / 2; i++) {
        if (n % i == 0)
            sum += i;
    }

    if (n == sum)
        return 1;

    return 0;
}

int main() {
    int i, sum = 0;

    for (i = 2; i <= 100; i++) {
        if (test(i))
            sum += i;
    }

    printf("%d ", sum);
    return 0;
}

// 6 + 28 = 34

서버접근통제

DAC(Discretionary Access Control)

  • 신분 기반(Identity-Based) 접근통제 정책, 주체나 그룹의 신분에 근거하여

MAC(Mandatory Access Control)

  • 규칙 기반(Rule-Based) 접근통제 정책 허용 등급과 접근 권한에 근거

RBAC(Role-Based Access Control)

  • 역할(Role)에 기초하여 자원에 대한 접근을 제한

NAT (Network Address Translation)

내부 사설 IP ↔ 외부 공인 IP 간 주소를 변환하여
인터넷 통신이 가능하도록 중계하는 기술
IP 패킷에서 외부의 공인 IP주소와 포트 주소에 해당하는 내부 IP주소를 재기록하여 라우터를 통해 네트워크 트래픽을 주고받는 기술은 무엇인가?

프로그램 실행 여부에 따른 테스트 분류

정적 분석 테스트 :

프로그램을 실행하지 않음. (ex. 코드 리뷰, 워크스루, 인스펙션)

동적 분석 테스트 :

프로그램을 실행함. (ex. 화이트박스 테스트, 블랙박스 테스트)

화이트박스 테스트의 검증 기준(Coverage)

문장(Statement) : 모든 구문 실행해보기
분기(Branch) : 전체 조건 T/F 다 가보기
조건(Condition) : 개별 조건 T/F 다 가보기

화이트박스 테스트

기초 경로 검사(Base Path) : McCabe 제안
제어 구조 검사(Control Structure) : 조건 검사, 루프 검사, 데이터 흐름 검사(변수 정의 및 사용 위치 기준)

블랙박스 테스트

동치 분할 검사(Equivalence Partitioning) : 각 조건마다 대표 TC 개수를 동일하게 정함
경계값 분석(Boundary Value Analysis) : 경계값 TC를 많이 만듦
원인-효과 그래프 검사(Cause-Effect Graphing) : 출력에 미치는 영향 분석 후 효용이 높은 TC 선정
오류 예측 검사(Error Guessing) : 테스트 수행자의 경험과 감각
비교 검사(Comparison) : 여러 버전에 같은 TC를 돌려 같은 결과가 나오는지 확인

SSH

  • 다른컴퓨터 로그인 원격 명령 실행 파일복사 등 수행 하는 프로토콜
  • 데이터 암호화와 강력한 인증 방법으로 보안성이 낮은 네트워크에서도 안전하게 통신
  • 22번 포트

TELNET

23 번

L2TP

  • 2 계층(데이터링크 계층)에서 구현되는 터널링 기술
  • L2F와 PPTP가 결합된 프로토콜로 VPN과 인터넷 서비스 제공자(ISP)가 이용

릴레이션 용어

릴레이션 : 테이블, 컬렉션(NoSQL)
튜플 : 행 (튜플의 개수 : Cardinality; )
속성 : 열 (개수 : Degree; 차수)

Cause Effect Graph (원인 결과 그래프)

입력 자료 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석 후 효용성이 높은 테스트 케이스를 선정해서 테스트하는 기법

역순 구하기

#include <stdio.h>
int main() {
  int number = 1234;
  int div = 10;
  int result = 0;
 
  while (number (1) 0) {
    result = result * div;
    result = result + number ( 2 ) div;
    number = number ( 3 ) div;
  }
 
  printf("%d", result);
  return 0;
}



//결과값 : 1234
//답 : >, %, /

럼바우 데이터 모델링

객체 모델링(Object, Information)

객체 다이어그램(E-R 다이어그램) 으로 표시
가장 중요하며 선행되어야 할 모델링

동적 모델링(Dynamic)

상태 다이어그램(상태도)를 이용해 시간의 흐름에 따른 객체들 간
제어 흐름, 상호 작용, 동작 순서 등의 동적인 행위를 표현하는
모델링

기능 모델링(Functional)

자료 흐름도(DFD)를 이용해 다수의 프로세스들 간의 자료 흐름을
중심으로 처리
어떤 데이터를 입력해 어떤 결과를 구할것인가 표현

파이썬 list() map()


TestList = [1,2,3,4,5]
TestList = list(map(lambda num : num + 100, TestList))
 
print(TestList)

map(…, TestList)

리스트의 각 요소를 차례로 꺼내
그 익명 함수에 넘긴다.
결과는 맵 객체(iterator).

list(...)

객체를 리스트로 바꾼다

애드혹 네트워크(Ad-hoc network)

중앙 집중식 인프라 없이, 즉 사전 설정된 네트워크 기반 시설이 없이 구성된 자율형 네트워크를 의미합니다. 이러한 네트워크는 노드(주로 무선 장치)가 서로 직접 연결하여 통신하며, 군사 작전 중에 실시간으로 정보를 공유하기 위한 네트워크로 사용된다.

ISMS (정부 인증 IS .. ms(마이크로소프트))

정부에서 정한 인증기관 및 심사기관에서 기업이 주요 정보자산을 보호하기 위해 수립·관리·운영하는 정보보호 관리체계가 인증 기준에 적합한지를 심사하여 인증을 부여하는 제도

프로토콜을 구성하는 3가지 (구의타)

구문
의미
타이밍

Trustzone

-프로세서안에 독립적인 보안구역을 따로 두어 중요 정보를 보호

  • ARM에서 개발한 하드웨어 보안기술

typosquatting

철자 잘못써서 유사 도메인으로 들어가게 하는것

UML

UML은 통합 모델링 언어로써, 시스템을 모델로 표현해주는 대표적인 모델링 언어이다.

구성 요소로는 사물, ( 관계 ), 다이어그램으로 이루어져 있으며, 구조 다이어그램 중, ( 클래스 ) 다이어그램은 시스템에서 사용되는 객체 타입을 정의하고, 그들 간의 존재하는 정적인 관계를 다양한 방식으로 표현한 다이어그램이다. 또한 UML 모델링에서 ( 인터페이스 )은/는 클래스와 같은 기타 모델 요소 또는 컴포넌트가 구현해야 하는 오퍼레이션 세트를 정의하는 모델 요소이다.

SIEM (시에미)

( )은/는 머신러닝 기술을 이용하여 IT 시스템에서 발생하는 대량의 로그를 통합관리 및 분석하여 사전에 위협에 대응하는 보안 솔루션이다. 서로 다른 기종의 보안솔루션 로그 및 이벤트를 중앙에서 통합 수집하여 분석할 수 있으며, 네트워크 상태의 monitoring 및 이상징후를 미리 감지할 수 있

SIEM은 SIM(보안 정보 관리)과 SEM(보안 이벤트 관리)의 기능을 하나의 보안 관리 시스템으로 통합한 솔루션이라고 합니다.

게이트웨이 프로토콜

IGP (Interior Gateway Protocol) - 내부 (자율시스템 내부 정보교환)

정의: 한 자율 시스템(AS) 내부에서 라우팅 정보를 교환하는 프로토콜 계열

예시: RIP, OSPF, IS‑IS

역할: AS 내부 라우터 간에 최단 경로를 계산·분배

EGP (Exterior Gateway Protocol) -외부 (자율시스템 사이 정보 교환)

정의: 자율 시스템(AS) 간에 경로 정보를 교환하는 프로토콜 계열의 총칭

특징:

도메인 간 관리 정책이 통일되어 있지 않음

신뢰도보다는 보안·제어가 주목적

원래 “EGP”라는 표준 프로토콜이 있었으나, 현재는 BGP가 주류

역할: AS 경계 라우터 간 초기 외부 게이트웨이 기능

OSPF (Open Shortest Path First) - 최단거리 (RIP보다 커~)

정의: IGP 계열의 링크 상태 라우팅 프로토콜

특징:

대규모·복잡한 네트워크에 적합

영역(area) 개념 도입으로 트래픽 최소화

빠른 수렴(convergence)과 상세 제어 기능 제공

역할: RIP의 단점을 보완해 대규모 AS 내부에서 사용

BGP (Border Gateway Protocol) - 경계 정책

정의: 현재 인터넷의 표준 EGP(외부 게이트웨이 프로토콜)

특징:

경로 벡터(path‑vector) 방식

전체 AS 경로 정보를 포함

정책 기반 라우팅 및 루프 방지 기능

역할: 서로 다른 AS 간 라우팅 정보 교환 및 정책 적용

CASE

소프트웨어 개발 과정에서 사용되는 과정 전체 또는 일부의 컴퓨터와 전용 서프트웨어 도구를 사용하여 자동화 하는것

데이터모델

개념적데이터모델 (ER다이어그램)

논리적 데이터 모델 (자료변환 인터페이스 )

물리적 데이터 모델 (테이블 정의서)

스토리지 시스템

DAS - 직접연결
NAS - 서버 저장장치 통해 연결
SAN - 광캐이블 장거리 저장장치 단일화시스템

최대간선수

최대간선(최대간선-1) /2

Regression

오류를 제거하거나 수정한 시스템이나 시스템 컴포넌트 또는 프로그램이 오류 제거와 수정에 의해 새로이 유입된 오류가 없는지를 확인하는 일종의 반복 시험이다.

객체지향설계 5원칙(SOLID)

단일 책임 원칙(Single Responsiblity Principle; SRP) : 소프트웨어의 컴포넌트는 단 하나의 책임만을 가져야 한다.

개방 폐쇄 원칙(Open Close Principles; OCP) : 확장에 대해선 열려 있어야 하고 수정에 대해선 닫겨 있어야 한다.

리츠코프 치환 원칙(Liskov Substitution Principle; LSP) : 자식 클래스는 부모클래스에서 가능한 행위를 수행할 수 있어야 한다.

인터페이스 분리의 원칙(Interface Segregation Principle; ISP) : 하나의 일반적인 인터페이스 보단 여러 개의 구체적인 인터페이스가 낫다.

의존관계 역전 원칙(Dependency Inversion Principle; DIP) : 의존 관계를 맺을 때, 변화하기 쉬운것 보단 변화하기 어려운 것에 의존해야 한다.

클라우드 서비스

AIaaS (AI as a Service)

• 인공지능 기능을 클라우드에서 API나 플랫폼 형태로 제공하여, 누구나
쉽게 AI를 활용할 수 있도록 하는 서비스 모델
• 자연어 처리(NLP), 컴퓨터 비전, 머신러닝 모델 학습, 음성 인식 분야에 활용됨

BaaS (Blockchain as a Service)

블록체인 개발 환경을 클라우드로 서비스하는 개념
• 블록체인의 기본 인프라를 추상화하여 블록체인 응용 프로그램을 만들
수 있는 클라우드 컴퓨팅 플랫폼

디자인 패턴

Bridge

  • 구현부와 추상화를 분리하여 서로 독립적으로 확장 할 수 있도록 하는 구조적 디자인 패턴

Decorator

  • 객체에 추가적인 책임을 독적으로 부여할수 있게 해주는 패턴
  • 서브클래싱의 대안
  • 기능확장 필요할때 유연하게 확장하게 해줌 상속의 대안

Flyweight

  • 유사객체를 효휼적으로 공유하며 메모리 사용을 줄이는 구조적 패턴
  • 공유메모리 절약

네트워크 구성

DMZ (Demilitarized Zone)

공개용 서버들을 내부 네트워크와 분리하여 배치하는 안전 구역

NAT (Network Address Translation)

내부의 IP 주소를 외부와 효율적으로 교환하고 보안을 유지하기 위해

VPN (Virtual Private Network)

원격 근무자들이 안전하게 내부 네트워크에 접속하여 필요한 업무를 수행할 수 있도록
암호화된 통신 채널

서브넷 계산


문제 복원:
192.168.16.0/24 네트워크를 FLSM 방식으로 6개의 Subnet으로 나누고, IP Subnet‑zero를 적용하였다.
이때 Subnetting된 네트워크 중 4번째 네트워크의 5번째 사용할 수 있는 IP 주소를 쓰시오.

풀이 :
6개 -> 2의3승 -> 8개
256/8 = 32

0 192.168.16.0/27 192.168.16.31
1 192.168.16.32/27 192.168.16.63
2 192.168.16.64/27 192.168.16.95
3 192.168.16.96/27 192.168.16.127
4 192.168.16.128/27 192.168.16.159
5 192.168.16.160/27 192.168.16.191

4번째의 5번째 사용 네트워크 96이니까 (97,98,99,100,101)

192.168.16.101

자바 스태틱 인스턴스 생성자 실행순서

class A {
  static { System.out.println("A static"); }  //1
  { System.out.println("A instance"); }  //3  //6
  public A() { System.out.println("A constructor"); } //4 //7
}

class B extends A {
  static { System.out.println("B static"); }  // 2
  { Systeance"); }m.out.println("B inst //4  //8
  public B() { System.out.println("B constructor"); } //5 //9
}

public class Soojebi {
  public static void main(String[] args) {
      B b1 = new B();
      A b2 = new B();
  }
}

공격기법

DRDoS(Distributed Reflection DoS)

  • 출발지 IP를 공격 대상 IP로 위조하여 다수의 반사 서버로 요청 정보를 전송, 공격 대상자는 반사 서버로부터 다량의 응답을 받아서 서비스 거부가 되는 공격이다.

Slowloris(Slow HTTP Header DoS)

  • HTTP GET 메서드를 사용하여 헤더의 최종 끝을 알리는 개행 문자열
    \r\n\r\n(Hex: 0d 0a 0d 0a)을 전송하지 않고, \r\n(Hex: 0d 0a)만 전송하여 대상 웹 서버와 연결
    상태를 장시간 지속시키고 연결 자원을 모두 소진시키는 서비스 거부 공격이다.

RUDY(Slow HTTP POST DoS)

요청 헤더의 Content - Length를 비정상적으로 크게 설정하여 메시지 바디
부분을 매우 소량으로 보내 계속 연결 상태를 유지하여 서비스를 마비시키는 공격이다.

파이썬

 len(scores) // 2     // 2인덱스
 print(scores.pop(0)) // 출력후 삭제
 int n = sizeof(arr)/sizeof(arr[0]) //byte 계산 int= 4  20/4 = 5

객체지향

정보은닉(information hiding)

  • 모듈 안에 사용된 자료구조, 메서드 알고리즘 외부에서 직접 변경x 인터페이스로 정의된 메서드로만 접근 가능

리스코프 치한의 원칙 (LSP)

서브클래스는 언제나 수퍼클래스를 대체할수 있어야 한다

다형성 (polymorphism)

  • 같은 오퍼레이션이 다른 클래스에서 다르게 동작하는것 하나의 함수가 여러목적으로 사용가능한것

무선 네트워크 보안

이블트윈 (Evil twin)

가짜 ap를 설치하여 사용자가 이를 실제 ap로 착각하고 접속을 유도하는 공격 방식

WEP (Wired Equivalent privacy)

  • 초기 와이파이 보안 프로토콜 보안에 취약
  • RC4 스트림 암호 알고리즘을 사용하여 무선 데이터를 암호화 하고 공유키 인증 방식 사용

TKIP (Temporal Key Integrity Protocol)

  • 무선데이터의 무결성과 암호화 프로토콜
  • IEEE 802.11i

페이지 부재

OPT

오랫동안 사용하지 않은 페이지 교체

NUR (NOT USED RECENTLY)

최근에 사용하지 않은 페이지 교체 기법 LRU에서 나타나는 시간적 오버헤드를 줄일수 있는 기법

SCR (Second Chance Replacement)

fifo기법의 단점을 보완 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위한 기법

sql

all() h 모든 단가와 비교

쉬프트 연산자 >>


<< : 곱하기
>> : 나누기

보안용어

3A

→ Authentication, Authorization, Accounting
(인증, 인가, 계정관리)

  • 유무선 이동 및 인터넷 환경에서 가입자에 대한 안전하고, 신뢰성 있는 인증 권한 부여, 계정관리를 체계적으로 제공하는 정보 보호기술

Authentication 인증

  • 접근시도 가입자 식별 및 신분 검증

UML state Diagram

이벤트

  • 객체의 전이를 유발하는 자극으로 상태의 변화를 주는 현상

전이조건

  • 특정 조건 만족시 전이가 발생하도록 하기 위해 사용되는 속성값 불이언 식

자르는 변수

a = "soojebi"
b = a[1: :1] + a[-3 : -6 : -2] // oobjebi + eo
c = " AND %s" % b.upper()
print(b + c)

a[-3 : -6 : -2] // -3 부터 -5까지 본인 포함 -2씩 뒤로
profile
웹개발이 재밌다. 8년차 웹퍼블리싱

0개의 댓글