| 항목 | 설명 |
|---|---|
| 패턴 종류 | 싱글톤(Singleton) 패턴 |
| 핵심 목적 | 하나의 인스턴스만 생성하여, 전체 애플리케이션에서 공유하도록 함 |
| 객체 생성 방식 | 클래스 내부에 정적(static) 객체 변수로 선언하고, 이미 선언되어 있으므로 클래스명을 생략하고 new를 사용하여 초기화 |
| 예시 코드 | _inst = new Connection();→ Connection._inst = new Connection();에서 클래스명 생략 가능 (같은 클래스 내부이므로) |
| 구성 요소 | 타입 | 크기(Byte) | 설명 |
|---|---|---|---|
nae[12] | char[12] | 12 | 문자열 저장용 배열 (1문자 = 1Byte) |
os | int | 4 | 4Byte 정수형 |
db | int | 4 | 4Byte 정수형 |
hab | int | 4 | 4Byte 정수형 |
hhab | int | 4 | 4Byte 정수형 |
| 합계 | — | 28 Byte | 연속된 메모리 공간에 저장됨 (패딩 없을 경우) |
| 항목 | 설명 |
|---|---|
널 문자(\0) 포함 | 문자열 끝에는 자동으로 **1Byte 크기의 널 문자 \0**가 추가됨 |
| 널 문자의 역할 | 문자열 출력 시 끝을 나타내는 용도로 사용되며, 화면에 출력되지는 않음 |
| 문자별 메모리 사용량 | 영문자: 1Byte, 한글(UTF-8 기준): 2Byte |
| 언어 | == 결과값의 타입 | 출력 형태 (표현) | 대소문자 구분 | 비고 |
|---|---|---|---|---|
| C | int (0 or 1) | 정수값 출력0 = false1 = true | ❌ 없음 | C에는 true/false 키워드가 없으며, <stdbool.h>를 쓰면 true/false로도 표현 가능 |
| Java | boolean | **true** / **false** | ✅ 소문자 고정 | 대소문자 바꾸면 문법 오류 |
| Python | bool (내부적으로 int) | **True** / **False** | ✅ 앞글자 대문자 | 파이썬은 True == 1, False == 0도 성립함 |
| 구문 요소 | 역할 및 설명 |
|---|---|
SELECT COUNT(*) CNT | 전체 결과에서 행 개수를 세어 CNT라는 별칭으로 반환 |
FROM A CROSS JOIN B | 테이블 A와 B를 조건 없이 모든 조합으로 결합 → 카티션 곱 생성 (dba.stackexchange.com, geeksforgeeks.org) |
WHERE A.NAME LIKE B.RULE | A의 NAME이 B의 RULE 패턴과 일치하는 경우 행만 필터링 |
| 표현식 | 값 또는 주소 | 설명 |
|---|---|---|
*array | 1000 | array[0]이 가리키는 주소 |
**array | 12 | 주소 1000에 저장된 실제 값 |
array[1] | 2000 | 배열의 두 번째 요소가 저장한 주소 |
*array[1] | 24 | 주소 2000에 저장된 실제 값 |
| 기호 / 연산자 | 의미 | 비고 | ||
|---|---|---|---|---|
== | 같다 | 관계(비교) 연산 | ||
!= | 같지 않다 | 관계 연산 | ||
> | 크다 | 관계 연산 | ||
| ㅣ | OR (비트 OR) | `w == 2 | w == y` → 피연산자를 비트 단위로 OR | |
& | AND (비트 AND) | 전체 조건들을 비트 단위로 AND | ||
! | NOT (부정) | !(y > z) → y > z가 false일 때 true | ||
^ | XOR (배타적 논리합) | x ^ y → 서로 다르면 1 (같으면 0) |
| 공격 기법 | 설명 | 대상 및 범위 | 결과 / 목적 | 특징 및 대응 |
|---|---|---|---|---|
| ARP 스푸핑 (ARP Spoofing) | 공격자가 가짜 ARP 응답을 보내 자신의 MAC 주소를 다른 IP(예: 게이트웨이)에 매핑 | **로컬 네트워크(LAN)**의 장비들 | 네트워크 트래픽 가로채기, 수정, 중간자 공격 수행 | 비교적 손쉬움, 상태 검사 부재가 취약점(en.wikipedia.org, vaadata.com, en.wikipedia.org) |
| DNS 스푸핑 (DNS Spoofing / Poisoning) | DNS 캐시나 권위 서버를 조작하여 정상 도메인을 가짜 IP로 연결 | 인터넷상의 클라이언트와 DNS 서버 | 정상 서비스로 위장한 악성 사이트로 리디렉션, 피싱 등 수행 | DNSSEC 도입으로 방어 가능 |
| 워터링홀 공격 (Watering Hole) | 특정 조직이 주로 방문하는 웹사이트를 사전 감염시켜 사용자 감염 유도 | 특정 그룹·산업 | 스텔스 감염으로 네트워크 내부 진입 | 장기 타깃, 매우 은밀 |
| MITM 공격 (Man-in-the-Middle) | 공격자가 통신 경로에 끼어들어 데이터 가로채기 및 변조 | 웹, Wi-Fi, SMTP, HTTP(S) 등 다양 | 민감 정보 탈취, 메시지 변조, 세션 탈취 등 | ARP·DNS·TLS/TCP Hijacking 포함한 상위 개념 |
| 명령 | 기능 | 효과 방식 | 우선순위 | 예시 (SQL Server 기준) |
|---|---|---|---|---|
| GRANT | 권한 부여 | 특정 사용자/역할에 권한 추가 | 낮음 | GRANT SELECT ON table TO user; (geeksforgeeks.org, beginner-sql-tutorial.com) |
| DENY | 권한 거부 | 명시적으로 접근 차단 GRANT보다 우선 적용됨 | 가장 높음 | DENY SELECT ON table TO user; |
| REVOKE | 권한 회수 / 철회 | GRANT 또는 DENY의 결과를 해제(Permission 제거) | 중간 | REVOKE SELECT ON table FROM user; |
| 용어 | 분류 | 설명 | 참고 |
|---|---|---|---|
| Application | OSI/TCP 계층 | 사용자 애플리케이션이 네트워크와 직접 상호작용하는 최상위 OSI 계층(Layer 7). 예: 웹 브라우저, 이메일, FTP 등 (turn1search1, turn1search3) | 응용 계층 |
| Authentication | AAA 보안 프레임워크 | 사용자 또는 장치의 신원을 확인하는 단계. 예: 비밀번호, 바이오미트릭스, 토큰 (turn0search0, turn0search8) | AAA |
| Authorization | AAA 보안 프레임워크 | 인증 후, 자원에 대한 접근 권한 부여 또는 제한 | AAA |
| Accounting | AAA 보안 프레임워크 | 사용자의 활동 내역 로그 기록 및 분석 | AAA |
| Avalanche | 암호학(Cryptography) | 입력 데이터가 약간만 바뀌어도 출력이 극적으로 변경되는 성질. 보안 알고리즘의 강도 지표 (turn0search1, turn0search3) | 암호 보안 |
| ASCII | 문자 인코딩 | 7/8비트 기반 텍스트 인코딩 표준으로, 영숫자 및 특수문자를 **고유 코드(0–127)**로 표현 (turn1search0, turn1search2) | 문자 표현 |
| 패턴 | 분류 | 핵심 역할 | 주요 특징 |
|---|---|---|---|
| Singleton | Creational | 단일 인스턴스 보장 | 클래스 하나만 생성, 전역 접근 제공, 설정·로그 객체 등에 활용(refactoring.guru, en.wikipedia.org, cs.unc.edu) |
| Factory Method | Creational | 객체 생성 위임 | 상위 클래스에 팩토리 메서드 정의, 하위 클래스가 구체 구현 결정 |
| Abstract Factory | Creational | 관련 객체군 생성 | 여러 팩토리 묶음 제공, 상호 연관 객체 생성 쉽게 |
| Builder | Creational | 복합 객체 단계별 구성 | 복잡한 객체를 단계적으로 생성, 가독성 있는 생성 방식 |
| Prototype | Creational | 객체 복제 기반 생성 | 기존 인스턴스를 clone하여 새로운 객체 생성, 성능 유리 |
| Facade | Structural | 단순 인터페이스 제공 | 복잡한 하위 시스템을 단순화하여 외부에 노출 |
| Composite | Structural | 트리 구조 객체 구성 | 개별 객체와 그룹을 동일하게 처리 |
| Template Method | Behavioral | 알고리즘 골격 구성 | 상위 클래스가 알고리즘 흐름 제공, 하위 클래스가 구현 맡음 |
| 구분 | ‘무엇을’ 중심? | ‘왜/어떻게’ 중심? | 장점 |
|---|---|---|---|
| 생성(Creational) | 객체 생성 기법 | 객체 언제/어디서/어떤 방식으로 생성할지에 집중 | 유연성↑, 구현 세부 매핑 제거 |
| 구조(Structural) | 클래스/객체 배치 및 관계 | 상속 대신 컴포지션을 통한 기능 조합 및 구조 수정 용이 | 구조 변화에 대한 적응력↑ |
| 행위(Behavioral) | 객체 상호작용과 책임 배분 | 메시지 흐름, 알고리즘 흐름의 통제와 위임 책임 분리 | 역할 분리와 코드 응집도↑ |
| 항목 | 상향식 통합 테스트 (Bottom-Up) | 하향식 통합 테스트 (Top-Down) |
|---|---|---|
| 시작 지점 | 하위 모듈(서브시스템)부터 통합 시작 (lambdatest.com) | 상위 모듈(메인 구조)부터 통합 시작 |
| 보조 도구 | 아직 개발되지 않은 상위 모듈 대신 Driver 사용 | 아직 개발되지 않은 하위 모듈 대신 Stub 사용 |
| 장점 | - 하위 기능 오류를 조기에 발견 가능 - 하위 모듈이 안정적일 때 효율적 (softwaretestingmaterial.com) - 테스트 결과 관찰이 용이 (softwaretestingmaterial.com) | - 상위 구조 및 흐름을 먼저 확인 가능 - 설계 상의 큰 결함을 조기에 발견 (lambdatest.com) - 인터페이스 문제 식별이 쉬움 (geeksforgeeks.org) |
| 단점 | - 상위 모듈의 결함을 마지막에 발견 - 상위 흐름 확인 지연 | - 스텁 작성이 많아야 함 - 하위 기능에 대한 테스트가 늦어질 수 있음 |
| 복잡도 | 초기에는 단순하지만, 상위로 갈수록 복잡 증가 | 초기에는 비교적 단순하지만, 스텁 작성량 많음 |
| 적용 시점 | 하위 기능이 우선 개발 완료될 때 적합 | 시스템 흐름이나 UI 중심 기능이 먼저 필요할 때 적합 |
| 비교 요약 | - Stable 하위 기반에 적합 - 오류 위치 추적 쉬움 - Driver 사용으로 유연성 있음 | - 전체 구조 우선 검증 가능 - Stub으로 하위 모듈 회피 가능 - 상위 구조 문제 조기 발견 ✅ |
| 조직 방식 | 구성 방식 | 인덱스 구조 | 장점 | 단점 | 주요 사용 사례 |
|---|---|---|---|---|---|
| 순차적 파일 (Sequential) | 레코드를 키 순서대로 나열 | (기본 정렬 파일 자체가 인덱스) | 순차 엑세스 효율 좋음, 정렬 필요 없고 구현 단순 (git) | 단일 검색 느림 (O(n)), 삽입·삭제 시 정렬 작업 필요 | 로그 저장, 백업, 순차 처리 작업 (studyglance.in, cs.uct.ac.za) |
| 인덱스드 파일 (Indexed) | 데이터 + 별도 인덱스 파일 유지 | Dense/Sparse 인덱스, 다단계 인덱스 (B+Tree 기반) | 랜덤 엑세스 빠르고 범위 검색 가능, 다중 인덱스 구성 가능 | 인덱스 유지 비용 존재, 업데이트 시 오버헤드 | 일반 DBMS 기본 인덱스, 절차적 검색, 키별 접근 |
| 해시 파일 (Hashed) | 키에 해시 함수 적용 → 고정 해시 버킷에 저장 | 해시 인덱스 사용 (static/dynamic) | 정확 일치 검색이 매우 빠름 (O(1)) | 범위 검색 불가, 해시 충돌·오버플로우 처리 복잡 | 캐시, 세션 데이터, 키-값 저장소 |
| 구성 요소 | 설명 | 영향 및 예시 |
|---|---|---|
| 요구 절차 | 테스트 대상 기능을 정의한 요구사항 | 로그인: “사용자는 아이디/비밀번호로 로그인 가능해야 함” |
| 의존성 여부 | 테스트 수행에 앞서 필요한 전제 조건이나 순서 | DB 연결, 회원 가입 선행, 네트워크 연결 상태 등 |
| 테스트 데이터 | 테스트 입력 값 또는 상태 정의 | 유효/무효 아이디 및 패스워드, 경계값, 예외 케이스 등 |
| 테스트 조건 | 테스트 실행 시 환경 또는 조건 | OS 버전, 브라우저, 디바이스, 화면 크기, 서버 설정 등 |
| 하드웨어 환경 | 실제 테스트를 진행할 장비나 구성 | CPU, 메모리, 네트워크 속도, 센서 유무 등 |
| 소프트웨어 환경 | 테스트 대상 시스템을 실행하기 위한 소프트웨어 설정 | OS, DBMS, 웹 서버, 라이브러리, 미들웨어 버전 |
| 예상 결과 | 테스트 성공/실패를 판정할 기준이 되는 결과 | 로그인 성공 시 리다이렉트, 에러 메시지 “잘못된 비밀번호” 등 |
| 성공/실패 기준 | 실제 결과가 예상과 일치하는지 판단하는 기준 | HTTP 200, "OK" 응답 포함, 화면 요소 정상 표시 등 |
| 식별자 ID | 테스트 조건 (①) | 테스트 데이터 (②) | 예상 결과 (③) |
|---|---|---|---|
| LS_W10_35 | 사용자 초기 화면 진입 | ID: test_a01PW: 203a!d5%ffa1 | 로그인 성공 |
| LS_W10_36 | 사용자 초기 화면 진입 | ID: test_a01PW: 1234 | 로그인 실패(1) – 비밀번호 불일치 |
| LS_W10_37 | 사용자 초기 화면 진입 | ID: "(공백)"PW: "(공백)" | 로그인 실패(2) – 미입력 오류 |
| 다이어그램 | 유형 | 대표 목적 | 사용 시점 / 특징 |
|---|---|---|---|
| 클래스 다이어그램 | 구조형 | 시스템의 정적 구조 모델링 (클래스, 속성, 메서드, 관계 등) (archimetric.com) | 설계 초기 및 시스템 구조 정의 시 필수 |
| 시퀀스 다이어그램 | 행동형 | 객체 간 시간 순 상호작용 (메시지 송수신 흐름) | Use Case 흐름 구체화, 동작 분석 시 활용 |
| 액티비티 다이어그램 | 행동형 | 프로세스나 비즈니스 흐름 및 조건 분기 표현 | 업무 흐름, 알고리즘, 분기 로직 설계 시 유용 |
| 컴포넌트 다이어그램 | 구조형 | 시스템의 모듈 단위 구성 및 의존성 시각화 | 아키텍처 설계, 배포 및 모듈 재사용 계획 시 사용 |
| 레이어 번호 | 계층 이름 | 핵심 역할 | 주요 기능 / PDU | 예시 및 프로토콜 |
|---|---|---|---|---|
| 1 | Physical (물리 계층) | 비트(bit) 수준의 전기적/광학적 신호 송수신 | Bit | 케이블, 스위치 물리부, 모뎀 ([turn0search1]) |
| 2 | Data Link (데이터 링크) | 프레임 단위 전송 / 오류 + 흐름 제어 | Frame | Ethernet, Wi‑Fi, MAC, LLC, 스위치 ([turn0search23]) |
| 3 | Network (네트워크) | 패킷 라우팅 및 논리 주소(IP) 관리 | Packet | IP, ICMP, 라우터, 라우팅 ([turn0search1]) |
| 4 | Transport (전송) | 종단 간 신뢰성 있는 전송, 흐름 + 오류 제어 | Segment (TCP) / Datagram (UDP) | TCP, UDP, 포트, 연결 제어 ([turn0search25]) |
| 5 | Session (세션) | 세션 연결 관리: 연결 설정, 유지, 종료, 동기화 | Data | NetBIOS, PPTP, 세션 체크포인트 ([turn0search1]) |
| 6 | Presentation (표현) | 데이터 포맷 변환, 암호/압축, 인코딩/디코딩 지원 | Data | SSL/TLS, JSON/XML, ASCII ↔ EBCDIC ([turn0search22]) |
| 7 | Application (응용) | 최종 사용자 애플리케이션 인터페이스, 네트워크 서비스 제공 | Data (Message) | HTTP, FTP, SMTP, DNS ([turn0search0]) |
| 묶은 그룹 | 포함 계층 | 설명 |
|---|---|---|
| 응용 계층 | 7. 응용 6. 표현 5. 세션 | 사용자가 접하는 부분, 데이터 표현/연결 포함 |
| 전송 계층 | 4. 전송 | TCP/UDP 통한 신뢰성 보장 |
| 네트워크 계층 | 3. 네트워크 2. 데이터링크 1. 물리 | 실제 데이터 전송 경로 결정 + 전기적 전송 |
| 알고리즘 | 키 크기 | 블록 크기 | 구조 유형 | 보안 수준 & 특징 | 사용 현황 |
|---|---|---|---|---|---|
| DES | 56비트 | 64비트 | Feistel 구조, 16 라운드 | 오래된 표준, 현재는 브루트포스 공격에 취약(rroij.com, en.wikipedia.org) | 사용 중단 |
| 3DES | 112 / 168비트 | 64비트 | DES 3회 적용 | DES의 확장판, 보안 강화되었지만 속도 느리고 AES보다 비효율 | 점진적 폐기 중 |
| Skipjack | 80비트 | 64비트 | 비대칭 Feistel, 32 라운드 | NSA 개발, 과거 Clipper 칩에 사용됨, 2010년 이후 공식 퇴출 | 역사적 용도 |
| Blowfish | 32–448비트 가변 | 64비트 | Feistel, 16 라운드 | 특허 프리, 강력했으나 64비트 블록의 Sweet32 취약성, 소규모 파일에 적합 | 일부 레거시 사용 |
| Twofish | 128/192/256비트 | 128비트 | Feistel, 16 라운드 + 복잡 키 스케줄 | AES 결선 진출, 빠르고 보안성 높으나 하드웨어 가속은 AES보다 느림 | 제한적 사용 |
| AES | 128/192/256비트 | 128비트 | Substitution–Permutation Network | 현재 표준, 강한 보안성 및 하드웨어 가속 지원, NSA 기밀 대응 가능 | 널리 채택 |
| 기법 | 유형 | 설명 | 주요 특징 |
|---|---|---|---|
| Equivalence Partition | 블랙박스 | 입력 도메인을 "동등 클래스"로 나눠, 대표 값만 테스트 | 테스트 케이스 수 감소 (testomat.io) |
| Boundary Value Analysis | 블랙박스 | 클래스 경계(최소±1, 최대±1)를 중심으로 테스트 | 오류 발견 효과 ↑ |
| Cause–Effect Graph | 블랙박스 | 입력(원인)과 출력(결과) 관계를 그래프로 모델링 | 복잡한 로직 테스트에 유리 |
| Condition Test | 화이트박스 | 조건문 내부 모든 Boolean 조합을 테스트 | if/else 커버리지 중요 시 활용 |
| Comparison Test | 블랙박스/화이트박스 | 변수 비교 연산식 중심 테스트 | 일반 비교 로직 테스트 |
| Base Path Test | 화이트박스 | 제어흐름 그래프에서 "기본 경로"별 테스트 | 구조적 경로 테스트 |
| Data Flow Test | 화이트박스 | 변수의 정의(use) 간 연결 커버리지 중심 테스트 | 변수 사용 흐름 분석 |
| Error Guess | 블랙박스 | 경험 기반으로 시스템 오류 예상 후 테스트 작성 | 빠른 결함 발견 효과 |
| Loop Test | 화이트박스 | 반복문(루프)의 다양한 입력 길이에 대한 테스트 | 경계, 최대/최소 반복 수 중심 |
| 관계 | 기호 & 방향 | 의미 요약 | 특징 & 설명 |
|---|---|---|---|
| Association | ──>, ── (실선, 단방향 또는 양방향) | 클래스 간 일반적 연결 | 객체 간 링크를 나타내며, 1:n, n:m 등 다중성 포함 가능 (visual-paradigm.com) |
| Aggregation | ◇── (빈 다이아몬드) | "has-a" 관계, 전체-부분 느슨한 연결 | 부분 객체는 독립적으로 존재 가능 |
| Composition | ◆── (채워진 다이아몬드) | "owns-a" 관계, 전체-부분 강한 연결 | 전체 삭제 시 부분도 삭제됨 |
| Generalization | ──▷ (속이 빈 삼각형, 자식 → 부모) | 상속 관계 ("is-a") | 자식은 부모 속성/메서드 상속 |
| Realization | -- -▷ (점선 + 속이 빈 삼각형, 구현 클래스 → 인터페이스) | 인터페이스 구현 | 계약(인터페이스)을 클래스가 구현 |
| Dependency | - - -▷ (점선 + 열린 화살표) | 사용 또는 참조 관계 | 약한 종속, 변경 영향 고려 |