| 구분 | 핵심 특징 | 사용 예 |
|---|---|---|
| Ad-hoc | 인프라 없이 기기끼리 직접 연결, 유동적 | 군사, 재난, 차량·드론 통신 |
| LAN | 유선 연결, 빠르고 안정적, 좁은 범위 | 사무실, 학교 내부망 |
| WLAN (Wi-Fi) | 무선 LAN, 편리하지만 간섭 있음 | 집·카페의 무선 인터넷 |
| WAN | 광역 연결, 느리지만 넓은 범위 | 인터넷, 기업 간 통신 |
| 셀룰러망 (4G/5G) | 기지국 기반, 전국 커버, 이동성 강함 | 휴대폰, 모바일 데이터 |
| 개념 | 정의 | 주요 특징 | 사용 예 |
|---|---|---|---|
| UI (User Interface) | 기기·소프트웨어와 사용자가 직접 상호작용하는 화면·조작 요소 | 버튼, 메뉴, 아이콘, 레이아웃, 컬러, 타이포 등 시각적 디자인 중심 (figma.com, crazyegg.com, en.wikipedia.org, coursera.org) | 앱 화면, 웹사이트, ATM 등의 그래픽 요소 |
| UX (User Experience) | 사용자가 제품/서비스를 사용하는 동안 느끼는 경험 전반 | 편의성, 효율성, 감정, 인지, 문맥 고려 | 사용자 여정 설계, 정보 구조, 감정 반응 |
| GUI (Graphical UI) | 시각적 아이콘과 표시로 상호작용하는 UI | WIMP(윈도우, 아이콘, 메뉴, 포인터), 직관적 조작 | PC OS, 스마트폰 터치 화면 |
| CLI (Command‑Line Interface) | 텍스트 명령어 기반의 비주얼 없는 UI | 고효율·학습 필요, 개발자 환경 등에서 용이 | 터미널(CMD, Bash) |
| NUI (Natural UI) | 자연스러운 동작 중심 인터페이스 | 음성, 제스처, 터치 등 직관적, 학습曲선 완만 | 스마트폰 멀티터치, 음성어시스턴트, VR 제스처 |
| 속성 (ACID) | 정의 | 주요 특징 | 예시 |
|---|---|---|---|
| Atomicity (원자성) | 트랜잭션 내 작업은 모두 수행되거나 전혀 수행되지 않음 | ⭕ 모든 작업 성공 또는 ❌ 전부 롤백 | 은행 이체: 입금·출금 중 하나라도 실패하면 모두 취소됨 (en.wikipedia.org, en.wikipedia.org, techtarget.com) |
| Consistency (일관성) | 트랜잭션 전후 시스템이 유효한 상태를 유지 | DB 무결성 규칙, 제약조건 위반 금지 | 잔고가 음수가 될 수 없음 |
| Isolation (독립성) | 동시 실행 중인 다른 트랜잭션 간 영향 차단 | 레벨(Read Uncommitted 등)로 제어, 동시성 보장 | 동시에 출금하면 충돌 없이 순차 처리됨 |
| Durability (지속성) | 커밋된 결과는 시스템 장애에도 영구 보존 | 로그 기록, 디스크 영속성 확보 | 입금 처리 후 시스템 꺼져도, 데이터 사라지지 않음 |
| 정규형 | 정의 | 목적 | 조건 요약 |
|---|---|---|---|
| 1NF (제1정규형) | 모든 칼럼이 원자값(atomic)이고, 중복 그룹이 없음 (medium.com) | 데이터의 구조를 2차원 표 형태로 정돈 | - 단일 값만 허용 - 각 행 고유 - 컬럼 이름 고유 |
| 2NF (제2정규형) | 1NF 만족 + 부분적 함수 종속 제거 (복합키의 일부가 아닌 전체에 의존) | 중복 최소화 및 데이터 일관성 향상 | - 기본키가 복합키일 경우, 모든 비-키 속성은 전체 키에 완전 종속 |
| 3NF (제3정규형) | 2NF 만족 + 이행적 함수 종속 제거 (비-키 → 비-키 종속 금지) | 갱신 이상(Insertion/Update/Delete anomaly) 방지 | - 모든 비-키 속성은 후보키에 직결 종속 |
| BCNF (보이스–코드 정규형) | 3NF 만족 + 모든 결정자는 슈퍼키여야 함 | 3NF로도 해결되지 않는 함수 종속성 제거 | - X→Y이면 X는 슈퍼키 |
| 4NF (제4정규형) | BCNF 만족 + 다치 종속(MVD) 제거 | 다중 값 종속을 제거하여 중복과 이상 최소 | - X↠Y면 X는 슈퍼키 |
| 항목 | C 언어 (예: int32_t) | 파이썬 int 타입 |
|---|---|---|
| 크기 | 일반적으로 4바이트(32비트) | 무제한(임의 정밀도), 필요에 따라 가변 길이 (caam37830.github.io) |
| 부호 비트 | 최상위 1비트가 부호(bit) (2의 보수 방식) | 부호 비트 없음, 음수는 내부 표현 방식으로 처리 |
| 패딩 비트 | 구조체 정렬에 따라 패딩 존재 (예: 32비트 정수는 4바이트 정렬) | 없음. int 자체는 오브젝트, 내부적으로는 여러 “단어”로 구성 |
| 메모리 구조 | 메모리에 고정된 4바이트만 사용 | 파이썬 객체로 관리: 참조, 타입·크기 정보 포함 → 메모리 오버헤드 큼 |
| 비트 길이 측정 | 컴파일 시 타입 고정됨 | n.bit_length()로 필요한 실제 비트 수 확인 가능 |
| 알고리즘 | 타입 | 블록/스트림 | 키 크기 | 라운드 | 특징 & 속도 |
|---|---|---|---|---|---|
| DES | 블록 | 64비트 | 56비트 | 16라운드 | 초기 표준, 취약 |
| 3DES | 블록 | 64비트 | 112/168비트 | DES ×3 | DES의 보완, 느림 |
| Blowfish | 블록 | 64비트 | 32–448비트 | 16라운드 | 공개도메인, 빠르지만 Sweet32 취약 (baeldung.com) |
| AES | 블록 | 128비트 | 128/192/256비트 | 10/12/14 | 현대 표준, 하드웨어 최적화, 매우 빠름 |
| Salsa20 | 스트림 | 스트림 | 128/256비트 | 20라운드 ARX | 간단, 소프트웨어에 적합 |
| ChaCha20 | 스트림 | 스트림 | 256비트 | 20라운드 ARX | AES보다 빠름, 타이밍 공격 덜 민감 |
| ChaCha20‑Poly1305 | AEAD | 스트림 + MAC | 256비트 | ChaCha20 + Poly1305 | 모바일, TLS·VPN 등에서 AES-GCM 대안, 전력 절약 |
| 검증 기준 | 대상 | 요구사항 |
|---|---|---|
| 구문(또는 문장) 커버리지 Statement Coverage | 코드의 모든 문장 | 각 문장을 1회 이상 실행 (velog.io) |
| 결정(분기) 커버리지 Decision/Branch Coverage | 모든 결정문 (if, switch) | 각 분기(T/F)가 최소 1회 실행 |
| 조건 커버리지 Condition Coverage | 결정문 안 조건식 내 개별 조건들 | 각 조건이 참/거짓 한 번씩 평가 |
| 조건/결정 커버리지 C/DC | 결정문 + 개별 조건들 | 분기 결과(T/F)와 각 조건의 참/거짓 평가 모두 충족 |
| 변경 조건/결정 커버리지 MC/DC | C/DC 강화형 | 각 조건이 독립적으로 분기 결과에 영향 줘야 함 |
| 다중 조건 커버리지 Multiple Condition Coverage | 조건문 내 조건들의 조합 | 모든 가능한 조건 조합을 100% 커버 |
| 용어 | 설명 |
|---|---|
SELECT | 데이터를 조회할 때 사용 |
* | 모든 컬럼을 선택 |
FROM | 조회할 테이블 지정 (회원 테이블) |
WHERE | 조건을 지정하여 원하는 행만 조회 |
LIKE | 문자열에서 패턴 일치 검색을 할 때 사용 ('홍%' 등) |
'____' | LIKE 안의 검색 패턴 (예: %홍%, _민) |
ORDER BY | 조회 결과를 정렬할 때 사용 |
가입일 | 정렬 기준이 되는 컬럼 이름 |
ASC / DESC | 오름차순 / 내림차순 정렬 키워드 (ASC 기본값) |
; | SQL 문장의 끝을 나타냄 |
| 응집도 유형 | 정의 | 예시 |
|---|---|---|
| 기능적 응집도 (Functional) | 모듈의 모든 요소가 하나의 목표 기능 수행에 집중 | 로그인 처리 √ 한 가지 책임 수행 (geeksforgeeks.org, inpa.tistory.com) |
| 순차적 응집도 (Sequential) | 하나의 결과가 다음 단계의 입력으로 이어지는 순차적 실행 구조 | 파일 읽기 → 포맷 변환 → 업로드 |
| 교환적 응집도 (Communication) | 동일 데이터에 대해 다양한 처리를 수행하는 기능들이 함께 묶임 | DB 레코드 읽기 → 포맷팅 → 출력 |
| 절차적 응집도 (Procedural) | 특정 순서로 실행되어야 하는 처리 단계들이 하나의 모듈에 속함 | GPA 계산 → 출력 → 누적 계산 순서 수행 |
| 시간적 응집도 (Temporal) | 특정 시점(예: 초기화)에 함께 수행되어야 하는 기능들이 묶임 | 시스템 시작 시 초기화 작업 일괄 수행 |
| 논리적 응집도 (Logical) | 유사한 성격의 기능들이지만, 실제로는 독립적인 기능들이 한 모듈에 존재 | 유틸리티 함수 모음(입력/출력/로깅 등) |
| 우연적 응집도 (Coincidental) | 아무 관련 없는 기능들이 우연히 한 모듈에 모여 있음 — 가장 낮은 응집도 | 인쇄, 문자열 반전, 수학 계산 등이 함께 모임 |
| 구분 | 가상회선 (Virtual Circuit) | 데이터그램 (Datagram) |
|---|---|---|
| 연결 유형 | 연결 지향(Connection‑oriented), 사전 연결 설정 필요 (tutorialspoint.com) | 비연결(Connection‑less), 개별 패킷 독립 전송 |
| 경로(Path) | 최초 패킷이 정한 경로를 모든 패킷이 따라감 | 각 패킷이 독립적 경로 선택, 도착 순서 임의 |
| 헤더(Header) | 연결 설정 후 VCID만 포함, 간결 | 매 패킷마다 전체 주소 포함, 헤더 크기 큼 |
| 자원 예약 | 버퍼·대역폭 등 자원 선점, 품질 보장 가능 | 자원 예약 없음, 유연하지만 품질 보장 어려움 |
| 신뢰성과 순서 보장 | 순서 보장, 오류 제어 포함된 경우도 있음 | 순서 및 보장 보장되지 않음 (best‑effort) |
| 설정 단계 | 연결 설정 → 데이터 → 해제 세 단계 | 설정 단계 없이 바로 데이터 전송 |
| 오버헤드 및 비용 | 설정 비용↑, 유지 비용↑, 신뢰성↑ | 구현 단순, 저비용, 확장성 좋음 |
| 대표 사례 | ATM, X.25, MPLS, STM, Frame Relay 등 | IP/UDP, Ethernet 등 현대 인터넷 네트워크 |
| 기법 | 방식 요약 | 특징 & 장단점 |
|---|---|---|
| 로킹 (Locking) | 데이터에 공유/배타 락 획득 후 처리 | 간단하고 안정적이나 동시성 낮음, 교착 상태 발생 가능 있음 (en.wikipedia.org) |
| 2단계 락킹 (2PL) | 획득⁺확보 단계 → 해제 단계로 나눠 락 관리 | 직렬화 보장, 그러나 데드락 위험, 성능 저하 가능 |
| 타임스탬프 정렬 (Timestamp Ordering) | 트랜잭션별 타임스탬프 기반으로 순서 제어 | 락 사용 안 함, 순서 일관성 보장하나 충돌 시 롤백 필요 |
| MVCC (Multiversion Concurrency Control) | 데이터 아이템의 여러 버전 유지, 읽기-쓰기 분리 | 읽기 작업 성능 우수, 쓰기 충돌 자동 처리 |
| 비관적 락 (Pessimistic Locking) | 충돌을 미리 방지하기 위해 락 즉시 획득 | 신뢰성 높지만 대기 및 응답 지연 발생 |
| 낙관적 락 / OCC (Optimistic Locking) | 실행 후 충돌 검사 및 롤백 방식 | 충돌 적은 환경에서 높은 동시성, 충돌 시 재시도 오버헤드 있음 |
| 용어 | 의미 | 설명 |
|---|---|---|
| Operation | 작업 또는 메서드 호출 | 객체가 수행할 수 있는 동작이며, 동작 모델에서 상태 변경을 주도하는 단위입니다 (en.wikipedia.org, scribd.com) |
| Function | 기능적 흐름 또는 데이터 변환 | 기능 모델에서 프로세스와 데이터 흐름 중심으로, 입력 → 출력으로의 변환을 설계합니다 |
| Sequence | 순차적 상호작용 | 시퀀스 다이어그램으로, 메시지가 객체 간에 시간 순으로 교환되는 흐름을 나타냅니다 |
| Information | 정적 구조 정보 | 객체 모델 또는 클래스 다이어그램에서, 클래스들 간의 속성과 관계(association, aggregation 등)를 정의합니다 |
| Dynamic | 동적/행위(View of behavior) | 동적 모델 또는 상태도에서, 객체의 상태 변화와 이벤트 트리거 흐름을 표현합니다 |
| Transaction | 상태 일관성을 위한 작업 단위 | 트랜잭션은 객체 상태의 일관성을 위하여 수행되는 일련의 **원자적 동작(Operation)**입니다 (종종 기능 모델에 포함됨) |
| Cause–Effect | 조건 → 결과 관계 | 이벤트와 상태 변화 간 인과 관계 분석에 사용되며, 동적/상태 모델에서 전이 조건으로 적용됩니다 |