| 항목 | 설명 |
|---|---|
| IP 주소 | 192.168.1.0 → 2진수: 11000000.10101000.00000001.00000000 |
| 서브넷 마스크 | 255.255.255.255 → 모든 비트가 1인 경우, 전체가 네트워크 주소 |
| 네트워크 주소 계산 | IP와 서브넷 마스크의 AND 연산 결과: 192.168.1.0 |
| 항목 | 설명 |
|---|---|
VARCHAR(20) | 가변 길이 문자열 최대 20자 저장 |
ON DELETE CASCADE | 참조된 부모 테이블의 튜플 삭제 시, 자식 테이블의 연관 튜플도 자동 삭제 |
FOREIGN KEY (부서코드) | 외래 키 설정: 부서 테이블의 부서코드를 참조 |
SELECT DISTINCT COUNT(부서코드) | 중복 없이 부서코드 개수를 세려면 COUNT(DISTINCT 부서코드)가 되어야 정확함→ DISTINCT가 COUNT 전체에 적용돼야 의도대로 작동 |
| 연산자 | 기호 | 설명 |
|---|---|---|
| 합집합 (UNION) | ∪ | 두 릴레이션에 존재하는 모든 튜플을 중복 없이 합침 예: R ∪ S |
| 차집합 (DIFFERENCE) | − | 두 릴레이션에서 차이(=제외된 튜플) 구함 예: R − S |
| 교차곱 (CARTESIAN PRODUCT) | × | 두 릴레이션의 모든 튜플쌍을 조합 예: R × S |
| 프로젝션 (PROJECT) | π | 릴레이션에서 특정 속성(열)만 추출 예: π 학번,이름(R) |
| 조인 (JOIN) | ⋈ 또는 ⨝ | 공통 속성 기준으로 릴레이션 병합 예: R ⨝ S 또는 R ⋈조건 S |
| 코드 줄 | 기술 요소 | 설명 |
|---|---|---|
a = [1, 2, 3, 4, 5] | 리스트 생성 | 정수형 리스트 a를 선언하고 초기화 |
map(lambda num: num + 100, a) | map() 함수 + lambda 표현식 | 리스트 a의 각 요소에 대해 익명 함수(lambda) 를 적용 → 각 요소에 100을 더함 |
list(...) | 형변환 (map → list) | map 객체를 리스트로 변환하여 다시 변수 a에 저장 |
print(a) | 출력 | 변환된 리스트 [101, 102, 103, 104, 105]를 출력 |
| 분류 | 패턴 이름 | 간략한 설명 |
|---|---|---|
| 생성 패턴 | Builder | 복잡한 객체를 단계별로 생성하는 패턴 |
| Factory Method | 객체 생성 코드를 서브클래스에 위임하여 유연성 확보 | |
| 구조 패턴 | Adapter | 호환되지 않는 인터페이스를 연결해주는 중개자 역할 |
| Bridge | 추상화와 구현을 분리하여 독립적 확장 가능 | |
| Facade | 복잡한 시스템을 단순한 인터페이스로 감춤 | |
| Proxy | 원래 객체에 대한 접근을 제어하거나 지연함 | |
| 행위 패턴 | Observer | 상태 변화 시 등록된 객체들에게 자동 알림 전달 |
| Mediator | 객체 간 복잡한 통신을 중재자 객체가 관리함 |
| 코드 예시 | 설명 |
|---|---|
int[] arr; | 배열의 참조 변수만 선언됨 → 배열 공간은 아직 없음 → 메모리에는 배열 주소를 저장할 변수만 생성됨 |
int[] tmparr = new int[4]; | 크기 4인 정수형 배열 생성 → 자바에서는 배열 생성 시 모든 요소가 0으로 자동 초기화됨 |
| ✅ 사용 전 주의 | arr과 같이 참조 변수만 있을 경우, new로 배열을 생성해야 사용 가능 |
| 🔗 일반적인 형태 예시 | arr = new int[]{1, 2, 3}; 또는 arr = tmparr; 처럼 실제 배열 주소 할당이 필요 |
| 기법 | 분류 | 설명 |
|---|---|---|
| Equivalence Partition | 블랙 박스 | 입력 도메인을 동등한 범주로 나누어 한 개 대표값만 테스트 (testomat.io, ficode.com) |
| Boundary Value Analysis | 블랙 박스 | 경계값(최소‑1, 최소, 최대, 최대+1 등)을 중심으로 테스트 |
| Cause–Effect Graph | 블랙 박스 | 입력 원인과 출력 결과 간 논리 관계를 그래프로 표현 |
| Comparison Test | 화이트 박스 | 조건문 내부의 모든 비교 조합 경로를 테스트 (Elementary Comparison Testing) |
| Condition Test | 화이트 박스 | 복합 조건 각각이 true/false가 되도록 검사 (조건 커버리지) |
| Base Path Test | 화이트 박스 | 사이클 없이 가능한 모든 경로를 검사 (기초 경로 테스트) |
| Data Flow Test | 화이트 박스 | 정의‑사용 관계(변수의 할당과 사용) 흐름을 따라 테스트 |
| Loop Test | 화이트 박스 | 반복문이 0회, 1회, 경계(N-1, N, N+1) 반복되도록 테스트 |
| Error Guess | 경험 기반 | 테스터가 경험으로 오류가 발생하기 쉬운 경우를 추측하여 검증 |
| 용어 | 정의 |
|---|---|
| 사회공학 (Social Engineering) | 컴퓨터 보안에서 인간의 심리나 행동을 속여서 보안 절차를 우회하거나 정보를 탈취하는 공격 수단 예: 피싱, 스피어피싱, 전화 사기 등 |
| 다크 데이터 (Dark Data) | 특정 목적을 위해 수집되었으나 이후 활용되지 않고 보관만 되는 데이터 저장 공간 낭비뿐 아니라 보안 위험 요소가 될 수 있음 |
| 용어 | 설명 |
|---|---|
| 방화벽 (Firewall) | 외부와 내부 네트워크 간의 접근 제어 장치 |
| IDS (침입 탐지 시스템) | 비인가 침입을 탐지하지만 차단은 하지 않음 |
| IPS (침입 방지 시스템) | 비인가 접근을 실시간으로 탐지하고 차단함 |
| 웹 방화벽 (WAF) | 웹 애플리케이션 공격(SQL Injection 등)을 전용으로 차단하는 장비 |
| VPN (Virtual Private Network) | 공용 네트워크를 통해 암호화된 안전한 통신 경로 제공 |
| SIEM | 위의 모든 장비에서 발생하는 보안 이벤트·로그를 통합 분석하여 중앙에서 보안 관리 가능하게 하는 시스템 |
| 도구·기술 | 유형 | 주요 기능 및 설명 |
|---|---|---|
| OLAP | 분석 처리 시스템 | 다차원 데이터(큐브)를 기반으로 비즈니스 인텔리전스용 고속 분석 제공 (aws.amazon.com) |
| CVS | 중앙 버전 관리 시스템 | RCS 기반, delta 압축으로 파일 히스토리 관리. 병합 기능 있지만 Git/SVN보다 분산 기능 약함 |
| SVN | 중앙 버전 관리 시스템 | CVS 개선된 후속 시스템, 원자적(commit) 기능 제공, 분산 도구보다 단순한 중앙식 구조 |
| Git | 분산 버전 관리 시스템 | 분산형, 브랜치와 병합 기능 우수, 로컬 저장 가능하며 빠르고 유연한 협업 가능 |
| Ant | 빌드 자동화 도구 | XML 기반 스크립트로 컴파일, 패키징, 배포 작업 자동화 |
| Maven | 빌드 및 프로젝트 관리 도구 | POM을 기반으로 종속성, 컴파일, 테스트, 배포를 일관된 수명주기로 관리 |
| Jenkins | CI/CD 자동화 서버 | 다양한 플러그인을 통해 빌드 → 테스트 → 배포 파이프라인 자동화 |
| Spring | Java 애플리케이션 프레임워크 | 의존성 주입(DI), AOP, MVC, 보안 등 모듈화된 기능 제공 |
| 용어 | 유형 | 정의 및 특징 |
|---|---|---|
| Pharming | 공격 | DNS 또는 호스트 파일을 조작해 사용자를 가짜 웹사이트로 자동 리디렉션하여 정보 탈취 |
| Tvishing (Vishing) | 공격 | 음성 기반 피싱 공격: 전화나 음성 메시지를 사용해 개인 정보를 유인 |
| Typo‑quatting | 공격 | 정상 도메인 오타 유사 도메인을 등록해 사용자 오타를 유도하고 악성 사이트로 유입 유도 |
| TrustZone | 기술 | ARM 기반의 신뢰 실행 환경(TEE): 보안 키·코드·데이터를 보호하는 하드웨어 분리 환경 |
| APT (Advanced Persistent Threat) | 공격 | 고도로 조직적이고 지속적인 표적형 공격, 주로 국가 또는 조직이 장기간 수행 |
| Ransomware | 공격 | 데이터 암호화 후 금전 요구하는 악성코드 유형 |
| Smurfing | 공격 | IP 브로드캐스트 및 스푸핑을 이용한 DDoS 공격의 일종 |
| CSRF (Cross‑Site Request Forgery) | 공격 | 사용자의 인증 세션을 도용하여 의도하지 않은 요청을 서버에 보내는 공격 |
| 항목 | 내용 |
|---|---|
| 정의 | 한 번의 로그인으로 사용자가 여러 사이트나 시스템에 자동으로 인증되는 통합 인증 시스템 |
| 주요 기능 | - 아이디/비밀번호 입력 한 번으로 인증 완료 - 이후 로그인 없이 다수 서비스 이용 가능 - 인증 정보는 공유된 세션이나 토큰 기반으로 처리 |
| 사용 예시 | - Google 계정으로 Gmail, YouTube, Drive 자동 로그인 - 회사 인트라넷 → 그룹웨어, 메신저, ERP 자동 연동 등 |
| 장점 | - 사용자: 로그인 반복 없음, 정보 입력 간소화 - 기업: 회원 통합 관리 가능, 마케팅 효율 증가 |
| 단점 | - 하나의 계정 정보가 유출되면 모든 시스템에 피해 가능성 존재 - 보안 강화 필요 (예: MFA, 세션 타임아웃) |
| 항목 | SSO (Single Sign-On) | OAuth (Open Authorization) |
|---|---|---|
| 주요 목적 | 사용자를 한 번 인증하면 여러 시스템에 자동 로그인 가능하도록 함 (workos.com) | 다른 서비스의 사용자 데이터를 비밀번호 없이 접근할 권한 위임 |
| 인증 vs 권한 위임 | 인증(Authentication) 전용: 사용자의 신원 보증 | 권한 부여(Authorization) 전용: 자원에 대한 접근만 허용 |
| 사용 주요 사례 | 기업의 IdP(Okta, ADFS, SAML 등) 통해 여러 서비스 접근 | 사용자 대신 페이스북, 구글 API 접근, 소셜 로그인 등에 사용 |
| 프로토콜/표준 | SAML, Kerberos, OpenID Connect(OIDC 포함) | OAuth 2.0 (Bearer Token 기반) |
| 세션 관리 방식 | 인증 후 받은 세션 토큰/쿠키로 여러 도메인 접근 가능 | Access Token을 발급받아 해당 API에 사용자의 권한으로 접근 |
| 토큰 특성 | ID 토큰 (OIDC), SAML Assertion 등을 사용 | Access Token 발급, Refresh Token으로 갱신 가능 |
| 항목 | SJF (Shortest Job First) | RR (Round Robin) | SRT (Shortest Remaining Time) |
|---|---|---|---|
| 정의 | 실행 시간이 가장 짧은 프로세스를 먼저 실행 | 모든 프로세스에 동일한 시간 할당량을 순환 적용 | 남은 실행 시간이 가장 짧은 프로세스부터 실행 |
| 방식 | 비선점형 (Non-Preemptive) | 선점형 (Preemptive) | 선점형 (Preemptive) |
| 장점 | 평균 대기 시간 최소화 효율적 CPU 사용 | 응답 시간이 짧아짐 인터랙티브 시스템에 적합 | 짧은 작업 빠르게 완료 → 효율적 |
| 단점 | 긴 작업이 무한히 지연될 수 있음 (기아 현상) | 오버헤드 증가 짧은 작업도 지연될 수 있음 | 잦은 문맥 교환으로 오버헤드 ↑ |
| 활용 예시 | 일괄처리 시스템 | 시분할 시스템 | 고급 스케줄링, 실시간 시스템 등 |
| 비고 | 실행 시간 예측이 필요함 | 타임 슬라이스 크기 중요 | 준비 큐에서 남은 시간 추적 필요 |
| 용어 | 정의 및 역할 |
|---|---|
| 관계 (Relationship) | 사람과 사람 또는 클래스와 클래스 간의 연관성을 나타냄 예: 연관, 집합, 포함, 일반화 등 |
| 스키마 (Class) | UML에서 표현되는 객체의 설계도이며, 속성(변수), 동작(메서드) 포함 직사각형으로 표현되고, 일반적으로 클래스 다이어그램에 사용됨 |
| 인터페이스 (Interface) | 클래스나 컴포넌트의 외부 행동을 명세하는 구조 단독 사용 ❌, 항상 클래스나 컴포넌트와 함께 사용 보통 "○○able" 형태의 동작 표현 |
| 용어 | 기호/표현 | 설명 및 특징 |
|---|---|---|
| Association (연관) | 실선 (–), 방향성은 화살표로 표시 가능 | 클래스 간 일반적인 관계 n-ary 가능, 역할과 다중도 추가 가능 (en.wikipedia.org) |
| Aggregation (집합) | 비어 있는 다이아몬드 ◇ — 연결 관계 | “A는 B를 포함하지만 독립적 존재 가능” 예: 학급–학생 |
| Composition (합성) | 채워진 다이아몬드 ◆ — 연결 관계 | “A는 B를 소유하며 B 없이 존재 불가” 예: 집–방 |
| Dependency (의존) | 점선 + 열린 화살표 → | A가 B를 일시적으로 종속 (예: 메서드 매개변수) 코드 변경 시 영향 가능 |
| Generalization (일반화) | 실선 + 빈 삼각형 ▲ | A는 B의 하위 개념 (is‑a) 상속 관계, “o is a kind of O” |
| 관계 유형 | 다이어그램 기호 | 화살표 방향 & 의미 |
|---|---|---|
| 연관 (Association) | 실선 ── (양방향) 또는 ─▶ (단방향) | 화살표: 연관 객체로의 탐색 가능성 표시 양방향: 서로 참조 가능, 단방향: 한쪽만 참조 가능 (visual-paradigm.com) |
| 집합 (Aggregation) | 비어 있는 다이아몬드 ◇── | 다이아몬드가 “전체”에 붙고, 방향 있음: 다이아몬드 방향으로 소유 구조 표현 |
| 합성 (Composition) | 채워진 다이아몬드 ◆── | 마찬가지로 ◆▶, 전체→부분으로 강한 소유 & 생명주기 결합 |
| 의존 (Dependency) | 점선 + 열린 화살표 ── ―▶ | 클라이언트 → 공급자 방향의 일시적/약한 의존 관계 |
| 일반화 / 상속 (Generalization) | 실선 + 빈 삼각형 ──▸ | 서브클래스 → 슈퍼클래스, “is‑a” 상속 관계 |
| 실현 (Realization) | 점선 + 빈 삼각형 ` |