눈물겨운 정처기 재수 (8)

Spirit Lab·2025년 7월 15일

T를 기준으로 나누고 T를 없애

SYN 플러딩(Flooding) : 서버의 동시 가용 사용자 수를 SYN 패킷만 보내 점유하여 다른 사용자가 서버를 사용하지 못하게 하는 공격
UDP 플러딩(Flooding) : 대량의 UDP패킷을 만들어 임의의 포트 번호로 전송하여 지속적으로 자원을 고갈시키는 공격
스머프(Smurf)/스머핑(Smurfing) : 출발지 주소를 공격 대상의 IP로 설정하여 네트워크 전체에게 ICMP Echo 패킷을 직접 브로드캐스팅하여 마비시킴
죽음의 핑(PoD; Ping of Death) : ICMP 패킷(Ping)을 정상적인 크기보다 아주 크게 만들어서 전송
랜드어택(Rand Attack) : 출발지 IP와 목적지 IP를 같은 패킷 주소로 만들어 보내서 수신자가 자기 자신에게 응답을 보내게 함
티어드롭(Tear Drop) : IP 패킷의 재조합 과정에서 잘못된 Fragment Offset 정보로 인해 수신 시스템이 문제를 발생하도록 만드는 공격
봉크(Bonk)/보잉크(Boink) : 시스템의 패킷 재전송과 재조립이 과부하를 유발하게 하는 공격기법

반복 : 이터레이터

해석 : 인터프린터

갱신 : 옵서버

방문 : 비지터

대리 : 프록시

연결 : 어댑터

트리 : 컴포지드

하위 : 팩토리 메소드

패밀리 : 추상 팩토리

체인 : 책임 연쇄

캡슐화 : 커맨드

기억 : 메멘토

ㅇ 디자인 패턴(Design Patterns) : GoF(생 구 행)
1. 생성(Creational) : 객체 생성 과정 캡슐화(싱 팩 추 빌 프)
-싱글톤(Singleton) : 1객체
-팩토리 메서드(Factory Method) : 책임 위임
-추상 팩토리(Abstract Factory) : 여러 객체그룹 생성
-빌더(Builder) : 생성 단계 캡슐화
-프로토타입(Prototype) : 원본 객체 복사

  1. 구조(Structural) : 클래스 객체 조합(어 데 퍼 프 브 컴 플)
    -어댑터(Adapter) : 클래스 연결
    -데코레이터(decorator) : 소스 변경X, 기능확장
    -퍼사드(Facade) : 단순화된 1인터페이스 제공
    -프록시(Proxy) : 원 객체작업 대신처리 / 대리
    -브릿지(Bridge) : 구현부 추상층 분리, 독립적 확장, 결합도 낮춤
    -컴포지트(Composite) : 개별 객체와 복합 객체를 동일 / 트리
    -플라이웨이트(Flyweight) : 공유

  2. 행동(Behavioral) : 상호작용, 역할분담(옵 스 커 템 스 메 중 인 방 책 이)
    -옵저버(Observer) : 다른객체 알림 및 자동갱신
    -스트래티지(Strategy) : 알고리즘 캡슐화
    -커맨드(Command) : 요청을 객체로 캡슐화
    -템플릿 메서드(Template Method) : 구조 - 상위 / 구현 - 하위
    -스테이트(State) : 객체 상태에 따라 다른 행동 / 다형성
    -메멘토(Memento) : 객체상태 미리 저장 후 복구
    -중재자(Mediator) : 객체간 상호작용 조정
    -인터프리터(Interpreter) : 문법 정의 및 구문 해석
    -방문자(Visitor) : 객체 구조 및 처리기능 분리 / 캡슐화 위배
    -책임 연쇄(Chain of Responsibility) : 객체간 연결고리 / 연속적
    -이터레이터(Iterator) : 순차적 접근 / 반복 캡슐 / Cursor

DB 이상 현상 : 분리되어야 할 속성들이 하나의 테이블에 전부 있을 때, 즉 DB의 정규화가 제대로 되지 않았을 때 발생할 수 있는 사이드이펙트

삽입 : 튜플의 의도치 않은 정보(or 없는 정보)가 강제로 들어가야 테이블에 삽입이 가능함.
갱신 : 튜플의 정보가 갱신(or 수정)되었을 때, 기존의 타 정보와 모순이 생길 수 있음.
삭제 : 어떤 튜플을 삭제하면, 그 튜플만이 유일하게 가지고 있는 정보도 DB에서 사라짐


static으로 conn1에서 인스턴스가 생성되었기 때문에 count메서드는 모두 conn1에다 ++가 되는 것

파라미터 없는 getName을 따라가자 Car인스턴스의 getName메서드 들이 파라미터가 있다는 것은 print의 파라미터가 없는 getName을 오버라이딩하지 않았다는 것이다.

ALTER TABLE 테이블명 ADD 컬럼명 컬럼속성

두 차이 인지

#include 
 
 
typedef struct{
    int accNum;
    double bal;
}BankAcc;
 
 
 
double sim_pow(double base, int year){
    int i;
    double r = 1.0;
 
for(i=0; i < year; i++){
        r = r * base;
    }
    return r;
}
 
 void initAcc(BankAcc *acc, int x, double y){
    acc -> accNum = x;
    acc -> bal = y;
}
 
void xxx(BankAcc *acc, double *en){
    if (*en > 0 && *en < acc - > bal) {
        acc - > bal = acc - > bal-*en;
    }else{
        acc - > bal = acc - > bal+*en;
    }
}
 
 
 
void yyy(BankAcc *acc){
    acc -> bal = acc -> bal * sim_pow((1+0.1),3);
}
 
 
int main(){
 
    BankAcc myAcc;
    initAcc(&myAcc, 9981, 2200.0);
    double amount = 100.0;
    xxx(&myAcc, &amount);
    yyy(&myAcc);
    printf("%d and %.2f", myAcc.accNum, myAcc.bal);
    return 0;
 
}

많이 복잡해보이지만 차근차근하면 별거아님
if (en > 0 && en < acc->bal) {
acc->bal = acc->bal - *en; // 출금
}
여기서 -> 이런식으로 되어있는것들은 acc안에 있는 세부항목 건드릴때 쓰는거 마치 acc.bal이런거랑 비슷함

그리고 "%d and %.2f" 이런식으로 되어있으면 9981 and 2795.10 이런식으로 and 넣어줘야함

마지막 %.2f는 소수점 둘째자리까지 나타내라는말임 그래서 2795.10이렇게 한거임

코드결과
%.0f2795
%.1f2795.1
%.2f2795.10 ← 이거!
%.3f2795.100
profile
For the champagne

0개의 댓글