시험 직전 빠르게 핵심 용어를 점검하고 싶을 때 쓸 수 있도록 분야별로 중요한 용어들을 정리했습니다. 용어의 정확한 이름과 간결한 정의를 익혀두면 서술형 문제에서 헤매지 않고 바로 쓸 수 있습니다. 특히 비슷한 용어를 헷갈리는 경우가 많기 때문에, 각 용어의 핵심 차이점도 함께 정리했어요.
1. 소프트웨어 공학 핵심 용어
| 용어 | 정의 |
|---|---|
| SDLC | 소프트웨어 개발 생명주기. 요구분석→설계→구현→테스트→배포→유지보수 |
| 애자일(Agile) | 반복적·점진적 개발 방법론. 짧은 스프린트(Sprint)로 기능 단위 개발. 변화에 유연하게 대응 |
| 스크럼(Scrum) | 애자일 프레임워크. 스프린트(1~4주), 데일리 스크럼, 스프린트 리뷰로 구성 |
| XP(eXtreme Programming) | 애자일 방법론. 페어 프로그래밍, TDD, 리팩토링, 지속적 통합 강조 |
| 폭포수 모델 | 각 단계를 순차적으로 진행하는 전통적 모델. 이전 단계 완료 후 다음 단계 진행. 변경 비용 높음 |
| 나선형 모델 | 위험 분석 중심. 계획→위험 분석→개발→평가를 반복. 대형 시스템에 적합 |
| 프로토타이핑 모델 | 요구사항이 불분명할 때 시제품 먼저 개발해 피드백 수집 |
| CMM/CMMI | 소프트웨어 개발 조직의 성숙도 평가 모델. 초기~최적화 5단계 |
| DevOps | 개발(Dev)과 운영(Ops) 통합. CI/CD 파이프라인으로 지속적 배포 |
| CI/CD | 지속적 통합(CI)과 지속적 배포(CD). 코드 변경을 자동으로 테스트·배포 |
| 리팩토링 | 기능 변경 없이 코드의 구조·가독성·성능을 개선하는 작업 |
| 기술 부채 | 빠른 개발을 위해 타협한 코드 품질이 나중에 추가 작업(이자)을 요구하는 개념 |
2. 객체지향 핵심 용어
| 용어 | 정의 |
|---|---|
| 캡슐화(Encapsulation) | 데이터와 메서드를 하나로 묶고, 내부 구현을 외부에서 접근하지 못하도록 숨김 |
| 상속(Inheritance) | 부모 클래스의 속성과 메서드를 자식 클래스가 물려받는 것. 코드 재사용성 향상 |
| 다형성(Polymorphism) | 같은 이름의 메서드가 클래스에 따라 다르게 동작. 오버라이딩, 오버로딩 |
| 추상화(Abstraction) | 복잡한 현실을 단순화하여 핵심 개념만 모델링. 공통 특징 추출 |
| 오버라이딩(Overriding) | 부모 클래스 메서드를 자식 클래스에서 재정의. 런타임 다형성 |
| 오버로딩(Overloading) | 같은 이름의 메서드를 매개변수 타입·개수를 달리해 여러 개 정의. 컴파일 타임 |
| 인터페이스 | 구현 없이 메서드 시그니처만 선언. 클래스가 반드시 구현해야 할 계약 |
| 추상 클래스 | 인스턴스 생성 불가. 공통 구현 + 추상 메서드 혼합. 상속용 베이스 클래스 |
| 의존성 주입(DI) | 객체가 필요로 하는 의존 객체를 외부에서 주입. 결합도 낮춤 |
| 싱글톤(Singleton) | 클래스의 인스턴스가 딱 1개만 존재하도록 보장하는 디자인 패턴 |
3. 데이터베이스 핵심 용어
| 용어 | 정의 |
|---|---|
| 스키마(Schema) | 데이터베이스의 구조와 제약 조건을 기술한 메타데이터. 외부/개념/내부 스키마 |
| DDL | 데이터 정의어. CREATE, ALTER, DROP, TRUNCATE |
| DML | 데이터 조작어. SELECT, INSERT, UPDATE, DELETE |
| DCL | 데이터 제어어. GRANT, REVOKE |
| TCL | 트랜잭션 제어어. COMMIT, ROLLBACK, SAVEPOINT |
| 뷰(View) | 하나 이상의 테이블을 기반으로 만든 가상 테이블. 독립적으로 저장 공간 없음 |
| 함수적 종속 | 속성 A가 결정되면 속성 B가 유일하게 결정됨. 표기: A → B |
| 후보키 | 기본키가 될 수 있는 최소한의 속성 집합. 유일성 + 최소성 |
| 기본키(PK) | 튜플을 유일하게 식별하는 속성(들). NULL 불가, 중복 불가 |
| 외래키(FK) | 다른 테이블의 기본키를 참조하는 속성. 참조 무결성 유지 |
| 카디널리티 | 릴레이션에서 행(튜플)의 수. 또는 속성이 가질 수 있는 값의 종류 수 |
| 차수(Degree) | 릴레이션에서 속성(열)의 수 |
4. 네트워크 핵심 용어
| 용어 | 정의 |
|---|---|
| 패킷(Packet) | 네트워크에서 전송하는 데이터 단위. 헤더(제어 정보) + 페이로드(실제 데이터) |
| MAC 주소 | 네트워크 인터페이스 카드에 할당된 48비트 물리적 주소. 변경 불가 |
| NAT | 네트워크 주소 변환. 사설 IP ↔ 공인 IP 변환. 공인 IP 절약 |
| DNS | 도메인 이름을 IP 주소로 변환하는 시스템. 계층적 구조 |
| DHCP | IP 주소를 자동으로 할당하는 프로토콜. 동적 주소 관리 |
| 포트(Port) | 프로세스를 식별하는 16비트 번호(0~65535). Well-known 포트는 0~1023 |
| 소켓 | 네트워크 통신의 엔드포인트. IP 주소 + 포트 번호로 구성 |
| 라우팅 | 패킷이 목적지까지 가는 경로를 결정하는 과정 |
| 방화벽 | 설정된 규칙에 따라 패킷을 허용·차단하는 보안 장치 |
| CDN | 콘텐츠를 지리적으로 분산된 서버에 캐싱해 사용자에게 빠르게 제공 |
5. 보안 핵심 용어
| 용어 | 정의 |
|---|---|
| 기밀성(Confidentiality) | 인가된 사용자만 정보에 접근할 수 있어야 함 |
| 무결성(Integrity) | 정보가 인가되지 않은 방식으로 변경되지 않아야 함 |
| 가용성(Availability) | 인가된 사용자가 필요할 때 정보에 접근 가능해야 함 |
| 인증(Authentication) | 사용자의 신원을 확인하는 과정. "당신이 누구인지 증명" |
| 인가(Authorization) | 인증된 사용자에게 리소스 접근 권한을 부여하는 과정. "무엇을 할 수 있는지 결정" |
| 부인 방지(Non-repudiation) | 행위를 나중에 부인할 수 없도록 하는 것. 전자서명으로 제공 |
| 공개키 인증서 | CA(인증기관)가 발급한 공개키 소유자 신원 보증 문서 |
| 세션 토큰 | 인증 후 서버가 클라이언트에게 발급하는 임시 식별자 |
| OWASP Top 10 | 웹 애플리케이션 보안 위협 상위 10개. SQL 인젝션, XSS 등 포함 |
| 제로데이(Zero-day) | 아직 패치가 없는 취약점을 이용한 공격. 공개 직후 또는 공개 전 공격 |
6. 운영체제 핵심 용어
| 용어 | 정의 |
|---|---|
| 커널(Kernel) | 운영체제의 핵심. 하드웨어와 소프트웨어 사이의 중재자. 메모리/프로세스 관리 |
| 셸(Shell) | 사용자와 커널 사이의 인터페이스. 명령어를 해석하여 커널에 전달 |
| PCB | 프로세스 제어 블록. 프로세스 상태, PID, 레지스터 값 등을 저장하는 자료구조 |
| 컨텍스트 스위칭 | 현재 실행 중인 프로세스의 상태를 저장하고 다음 프로세스로 전환하는 과정 |
| 스래싱(Thrashing) | 페이지 폴트가 너무 잦아 실제 작업보다 페이지 교체에 더 많은 시간 소비 |
| 임계 영역 | 공유 자원에 접근하는 코드 구역. 동시에 하나의 프로세스만 진입 가능 |
| 뮤텍스(Mutex) | 잠금/해제 소유권이 같은 스레드에 있는 상호 배제 도구 |
| 세마포어 | 정수 카운터로 공유 자원 접근 제어. 카운팅 세마포어는 여러 자원 관리 |
| 인터럽트 | CPU에게 즉시 처리가 필요한 이벤트를 알리는 신호. 하드웨어/소프트웨어 인터럽트 |
| 시스템 콜 | 사용자 프로그램이 OS 서비스를 요청하는 방법. 커널 모드로 전환 |
🎯 헷갈리는 용어 쌍 정리
✔ 인증(Authentication) vs 인가(Authorization): 인증은 "누구인지", 인가는 "무엇을 할 수 있는지"
✔ 오버라이딩 vs 오버로딩: 오버라이딩은 상속 관계에서 재정의, 오버로딩은 같은 클래스에서 다른 매개변수
✔ 뮤텍스 vs 세마포어: 뮤텍스는 소유권 있음, 세마포어는 카운터로 여러 자원 관리
✔ DDL vs DML: DDL은 구조 변경(CREATE/ALTER/DROP), DML은 데이터 조작(SELECT/INSERT/UPDATE/DELETE)
✔ 인증(Authentication) vs 인가(Authorization): 인증은 "누구인지", 인가는 "무엇을 할 수 있는지"
✔ 오버라이딩 vs 오버로딩: 오버라이딩은 상속 관계에서 재정의, 오버로딩은 같은 클래스에서 다른 매개변수
✔ 뮤텍스 vs 세마포어: 뮤텍스는 소유권 있음, 세마포어는 카운터로 여러 자원 관리
✔ DDL vs DML: DDL은 구조 변경(CREATE/ALTER/DROP), DML은 데이터 조작(SELECT/INSERT/UPDATE/DELETE)
💡 용어 암기 효율화 방법
모든 용어를 다 외우려 하면 지칩니다. 자주 등장하는 100개 핵심 용어를 먼저 잡고, 이해가 되는 것부터 확실히 외운 후 점점 범위를 넓혀가세요. 영문 약자가 있는 용어는 Full Name도 함께 알아두면 서술형에서 점수를 챙길 수 있습니다.
모든 용어를 다 외우려 하면 지칩니다. 자주 등장하는 100개 핵심 용어를 먼저 잡고, 이해가 되는 것부터 확실히 외운 후 점점 범위를 넓혀가세요. 영문 약자가 있는 용어는 Full Name도 함께 알아두면 서술형에서 점수를 챙길 수 있습니다.
마무리
이 용어집을 처음부터 끝까지 외우려 하지 말고, 공부 중 모르는 용어가 나올 때마다 찾아보는 사전처럼 활용하세요. 시험 전날에는 자주 헷갈렸던 용어들만 빠르게 훑어보는 것이 효과적입니다. 개념을 이해하고 정확한 이름을 알아야 서술형 시험에서 제대로 쓸 수 있다는 점, 꼭 기억하세요.