| 개념 | 설명 |
|---|---|
| 세션 하이재킹 (Session Hijacking) | 사용자의 세션 ID 또는 상태 정보를 가로채 인증 없이 시스템에 접근하거나 권한을 탈취하는 공격 기법 → 주로 웹 로그인 후 세션 쿠키 탈취 |
| TCP 세션 하이재킹 (TCP Session Hijacking) | TCP의 3-way 핸드셰이크 완료 후, 공격자가 시퀀스 번호를 조작해 정상적인 통신 세션을 탈취하는 네트워크 공격 → IP 스푸핑 + 시퀀스 예측 기반 공격 |
| 개념 | 설명 |
|---|---|
| 시퀀스 번호 조작 | TCP 세션 탈취 시 사용되는 기법으로, 예상 가능한 시퀀스 번호를 조작하여 공격자가 패킷 흐름을 통제함 |
| 정상적인 세션을 가로채고 인증 없이 통신을 탈취 | 세션 하이재킹의 핵심 개념으로, 인증이 완료된 연결을 공격자가 중간에서 낚아채는 방식 |
| 제약조건 | 설명 |
|---|---|
| 도메인 무결성 (Domain Integrity) | 각 열(Column)의 값은 정의된 데이터 형식과 범위를 준수해야 함 (예: 나이는 0 이상 정수) |
| 개체 무결성 (Entity Integrity) | 기본키(Primary Key)는 NULL이 될 수 없고, 중복될 수 없음 |
| 참조 무결성 (Referential Integrity) | 외래키(Foreign Key)는 참조되는 테이블의 기본키 값을 반드시 가져야 함 → 즉, 참조 대상이 먼저 존재해야 함 |
| 항목 | 설명 |
|---|---|
| CRC | 전송 데이터의 오류를 검출하기 위한 검사 기법. 다항식 기반으로 체크값 생성 후 수신 측에서 재검증하여 오류 확인 |
| 유형 | 설명 |
|---|---|
| 컴포넌트웨어 | 소프트웨어를 **기능 단위의 구성요소(Component)**로 나누어 재사용할 수 있도록 한 것 |
| 유즈웨어 (Useware) | 사용자의 입장에서 사용 편의성, 인터페이스 등을 중점적으로 고려한 소프트웨어 |
| 셔블웨어 (Shovelware) | 많은 양의 소프트웨어나 기능을 한꺼번에 묶어서 제공하지만 중복 또는 불필요한 기능이 많음 |
| 스캐어웨어 (Scareware) | 허위 경고로 공포를 유발해 불필요한 보안 제품 구매를 유도하는 악성 프로그램 |
| 안티 스파이웨어 (Anti-Spyware) | 스파이웨어나 애드웨어 같은 감시·광고 프로그램을 탐지 및 제거하는 보안 소프트웨어 |
| 네트웨어 (Netware) | Novell사에서 만든 네트워크 운영체제(NOS). 파일 공유, 프린터 공유 등을 지원 |
| 그룹웨어 (Groupware) | 조직 구성원 간의 협업, 커뮤니케이션, 일정관리 등을 지원하는 소프트웨어 (ex: 메신저, 캘린더 등) |
| 애드웨어 (Adware) | 광고 수익을 위해 사용자에게 광고를 노출하거나 클릭을 유도하는 소프트웨어 (악성일 경우 스파이웨어 포함 가능) |
| 개념 | 설명 |
|---|---|
| Java 0으로 나누기 | Java에서는 0으로 나누면 ArithmeticException이 발생함 → / by zero 예외로 try 블록 중단 |
| ARP (Address Resolution Protocol) | IP 주소를 MAC 주소로 변환하는 프로토콜 |
| RARP (Reverse ARP) | MAC 주소를 IP 주소로 변환하는 프로토콜 (역방향 ARP) |
| emp.id = sal.id | 두 테이블(emp, sal)을 id 컬럼을 기준으로 조인 → 일반적으로 INNER JOIN 의미 |
| 기호 | 용어 | 설명 |
|---|---|---|
| ㄱ | Domain (도메인) | 속성(Attribute)이 가질 수 있는 값의 범위 또는 타입 |
| ㄴ | Primary (기본키) | 테이블에서 튜플을 유일하게 식별하는 키, 중복 불가, NULL 불가 |
| ㄷ | Degree (차수) | 테이블의 속성(컬럼) 개수 |
| ㄹ | Candidate (후보키) | 기본키로 사용될 수 있는 후보 속성 집합, 여러 개 가능 |
| ㅁ | Cardinality (기수) | 테이블에 존재하는 튜플(행)의 수 |
| ㅂ | Attribute (속성) | 테이블의 열(Column), 필드에 해당 |
| ㅅ | Foreign (외래키) | 다른 테이블의 기본키를 참조하는 키, 참조 무결성 보장에 사용 |
| 항목 | 설명 |
|---|---|
| 서브넷 마스크: 255.255.252.0 | 이진수로 표현 시: 11111111.11111111.11111100.00000000 → 앞의 22비트가 네트워크 영역 → /22 서브넷 |
| IP 주소: 192.168.35.10 / 마스크: 255.255.252.0 | 35 & 252 = 32 → 따라서 192.168.32.0이 네트워크 시작 주소 |
| 브로드캐스트 | 같은 서브넷 내 모든 호스트에게 패킷 전송. 외부 인터넷에는 전달되지 않음 |
| 같은 서브넷 판별 기준 | IP와 서브넷 마스크를 AND 연산해서 네트워크 주소가 같으면 같은 서브넷 |
| 항목 | 설명 |
|---|---|
| char는 내부적으로 정수형(ASCII) | 예: 'A'는 65, 'a'는 97로 처리됨 → 정수처럼 비교 가능 (if (ch == 65) 등) |
| 기호 | 결합도 | 설명 |
|---|---|---|
| ㅁ | 내용 결합도 | 한 모듈이 다른 모듈 내부에 직접 접근 |
| ㄹ | 공통 결합도 | 공통 데이터 영역(전역 변수 등) 공유 |
| ㄷ | 제어 결합도 | 제어 신호(논리적 흐름 제어용) 전달 |
| ㄴ | 스탬프 결합도 | 불필요한 전체 구조체/레코드 전달 |
| ㄱ | 자료 결합도 | 필요한 데이터만 명시적으로 전달 → 가장 이상적 |
| ㅂ | 외부 결합도 | 모듈이 외부 시스템(장치, 포맷 등)에 의존하는 결합도 |
| 항목 | 설명 |
|---|---|
| 생성자 호출 순서 | 자식 생성자가 호출되기 전, 반드시 부모 생성자부터 먼저 실행됨 |
| 호출 순서 예시 | new Child() 실행 시 → Parent() → Child() 순서로 생성자 실행 |
| 메서드 호출 기준 | 객체의 실제 타입 기준으로 메서드가 실행됨 → 동적 바인딩 (오버라이딩된 메서드 호출) |
| 구분 | 설명 |
|---|---|
| 일반 메서드 | public void show()처럼 구현된 메서드 → 자식 클래스에서 오버라이딩 가능 |
| 추상 메서드 | abstract void show();처럼 선언만 존재 → 자식 클래스에서 반드시 구현해야 함 |
| 상황 | 설명 |
|---|---|
| static 필드 상속 | 자식 클래스도 부모 클래스의 static 필드를 상속받아 사용할 수 있음 |
| 자식이 동일한 static 필드를 새로 정의 | 자식 클래스의 필드가 부모의 static 필드를 가림(hide) |
| 자식이 static이 아닌 인스턴스 필드로 동일한 이름 사용 | 이 경우도 자식의 인스턴스 필드가 부모의 static 필드를 가림(hide) → total이라는 이름은 자식 인스턴스의 것을 참조하게 됨 |
| 생성(Creational) | 설명 |
|---|---|
| Singleton | 객체를 하나만 생성해서 공유할 수 있도록 보장 |
| Factory Method | 객체 생성 코드를 서브클래스에 위임, 클라이언트는 구체 클래스 몰라도 됨 |
| Abstract Factory | 관련된 객체들을 구성 단위로 묶어서 생성할 수 있게 함 (제품군 생성) |
| Builder | 복잡한 객체를 단계별로 생성할 수 있게 분리 |
| Prototype | 기존 객체를 **복사(clone)**해서 새로운 객체를 생성 |
| 구조(Structural) | 설명 |
|---|---|
| Adapter | 호환되지 않는 인터페이스를 맞춰주는 중간 연결자 |
| Bridge | 구현부와 추상화를 독립적으로 분리하여 확장성 확보 |
| Composite | 트리 구조를 동일한 방식으로 처리 (부분-전체 계층 구조) |
| Decorator | 기존 객체에 동적으로 새로운 기능을 추가 |
| Façade | 복잡한 서브 시스템을 간단한 인터페이스로 감싸줌 |
| 행위(Behavioral) | 설명 |
|---|---|
| Strategy | 알고리즘(전략)을 동적으로 선택하고 교체 가능하게 함 |
| Template Method | 알고리즘의 구조를 정의하고 일부 단계를 서브클래스가 구현 |
| Observer | 한 객체의 상태 변화가 다수 객체에 자동 전파되도록 함 (이벤트 시스템) |
| State | 객체의 상태에 따라 동작이 변경되도록 함 |
| Command | 요청을 객체로 캡슐화하여 실행/취소/기록 등을 유연하게 처리 |
| 패턴 분류 | 핵심 목적 |
|---|---|
| 구조 패턴 (Structural) | 클래스나 객체를 어떻게 구성(구조화) 할지에 집중함. 즉, 객체 사이의 관계를 조정함. |
| 행위 패턴 (Behavioral) | 객체 사이의 행동(메시지 전달, 로직 흐름) 에 초점을 둠. 즉, 어떻게 협력하고 처리하는가에 집중함. |
| 생성 패턴 (Creational) | 객체를 어떻게 생성할지 결정하고, 그 방법을 추상화함. |
✅ node[].children.append(...) 구성 요소 설명 표
| 요소 | 설명 |
|---|---|
node[] | 노드들을 담고 있는 리스트 또는 배열 (예: node[0], node[1] 등) |
.children | 특정 노드의 자식 노드들을 저장하는 리스트 |
.append(...) | 해당 리스트에 새로운 자식 노드를 추가하는 함수 (Python 기준) |