정보처리기사 키워드 100 인덱스
기술노트
정보처리기사 핵심 IT 용어
각 과목별로 반드시 알아야 할 필수 개념들을 그룹으로 묶어 체계적인 학습이 가능합니다.
📌 소프트웨어 공학
소프트웨어의 전체 개발 과정을 이해하고, 효율적인 개발 방법론과 모델링 기법을 학습하여 고득점의 발판을 마련하세요.
- 소프트웨어 생명 주기
- 소프트웨어 개발부터 유지보수까지의 전체 흐름을 정의하는 모델들의 종류와 특징을 이해합니다.
- 폭포수 모델
- 각 단계가 명확하게 구분되어 순차적으로 진행되는 고전적인 개발 모델의 특징을 파악합니다.
- 프로토타이핑 모델
- 사용자의 요구사항을 명확히 하기 위해 시제품을 만들어 피드백을 받는 모델의 장점을 이해합니다.
- 나선형 모델
- 계획, 위험 분석, 개발, 평가를 반복하며 점진적으로 시스템을 개발하는 모델의 핵심을 학습합니다.
- 애자일 방법론
- 변화에 유연하게 대응하며 빠르고 반복적인 개발을 중시하는 현대적인 개발 철학입니다.
- 요구사항 분석
- 성공적인 프로젝트의 첫 단추인 사용자의 요구를 명확하게 정의하고 문서화하는 과정을 배웁니다.
- UML (Unified Modeling Language)
- 시스템을 시각적으로 표현하고 설계하기 위한 표준화된 모델링 언어의 구성 요소를 학습합니다.
- 유스케이스 다이어그램
- 사용자와 시스템 간의 상호작용을 표현하여 시스템의 기능과 범위를 정의하는 방법을 익힙니다.
- 클래스 다이어그램
- 시스템의 정적인 구조, 즉 클래스와 그들 간의 관계를 표현하는 핵심 다이어그램입니다.
- 시퀀스 다이어그램
- 객체들이 특정 기능을 수행하기 위해 서로 주고받는 메시지의 순서를 시간의 흐름에 따라 보여줍니다.
- 소프트웨어 아키텍처
- 소프트웨어의 전체적인 구조와 구성 요소 간의 관계를 정의하는 청사진입니다.
- 형상 관리
- 소프트웨어 개발 과정에서 발생하는 모든 산출물의 변경 사항을 체계적으로 관리하고 통제하는 기법입니다.
- 버전 관리 시스템
- 코드의 버전을 관리하고 여러 개발자 간의 협업을 지원하는 Git과 같은 도구의 필요성을 이해합니다.
🗃️ 데이터베이스
데이터의 효율적인 관리와 안정적인 운영은 정보 시스템의 핵심입니다. 데이터베이스 설계부터 활용, 복구까지 필수 개념을 마스터하세요.
- SQL (DDL, DML, DCL, TCL)
- 데이터베이스를 정의(DDL), 조작(DML), 제어(DCL, TCL)하기 위한 SQL의 네 가지 핵심 언어를 구분하여 이해합니다.
- JOIN
- 여러 테이블에 흩어져 있는 데이터를 관계를 이용해 하나로 합쳐 조회하는 강력한 SQL 기법입니다.
- 서브쿼리
- 하나의 SQL 문 안에 포함된 또 다른 SQL 문으로, 복잡한 조건의 데이터를 조회할 때 사용됩니다.
- 뷰 (View)
- 하나 이상의 테이블을 기반으로 만들어진 가상의 테이블로, 보안과 편의성을 높여줍니다.
- 인덱스 (Index)
- 데이터 검색 속도를 획기적으로 향상시키는 원리와 구현 방법을 학습하여 성능 최적화의 기초를 다집니다.
- 병행 제어
- 여러 사용자가 동시에 데이터베이스에 접근할 때 데이터의 일관성과 무결성을 유지하는 기법입니다.
- 로킹 (Locking)
- 병행 제어의 핵심 기법으로, 특정 데이터를 다른 사용자가 동시에 수정하지 못하도록 잠그는 원리를 이해합니다.
- 데이터베이스 회복
- 장애 발생 시 데이터베이스를 장애 이전의 일관된 상태로 복구하는 기법의 종류와 특징을 배웁니다.
- ACID
- 데이터베이스 트랜잭션이 안전하게 수행되기 위한 4가지 핵심 특성(원자성, 일관성, 고립성, 지속성)입니다.
⚙️ 운영체제
컴퓨터 시스템의 자원을 효율적으로 관리하는 운영체제의 동작 원리를 이해하여 시스템의 성능과 안정성을 파악하는 능력을 기릅니다.
- 운영체제 개요
- 하드웨어와 사용자 사이의 인터페이스 역할을 하는 운영체제의 목적과 핵심 기능을 이해합니다.
- 프로세스 & 스레드
- 운영체제 작업 관리의 기본 단위인 프로세스와, 그 안에서 실행되는 더 작은 단위인 스레드의 차이를 명확히 합니다.
- 프로세스 상태 전이
- 프로세스가 생성되어 소멸하기까지 거치는 여러 상태(생성, 준비, 실행, 대기, 완료)의 변화 과정을 학습합니다.
- CPU 스케줄링
- 여러 프로세스 중 어떤 프로세스에 CPU를 할당할지 결정하는 다양한 알고리즘(FCFS, SJF, RR 등)을 비교 분석합니다.
- 교착 상태 (Deadlock)
- 두 개 이상의 프로세스가 서로의 자원을 기다리며 무한정 대기하는 상태의 발생 조건 4가지를 암기합니다.
- 교착 상태 해결 방법
- 교착 상태를 예방, 회피, 발견, 회복하는 4가지 접근법의 특징과 차이를 이해합니다.
- 메모리 관리 기법
- 연속 할당, 페이징, 세그먼테이션 등 주 메모리를 효율적으로 관리하는 다양한 기법을 학습합니다.
- 가상 메모리
- 실제 메모리 크기보다 더 큰 프로그램을 실행할 수 있게 해주는 기술의 원리와 장점을 이해합니다.
- 페이징 & 세그먼테이션
- 가상 메모리를 관리하는 대표적인 두 기법인 페이징(고정 크기 분할)과 세그먼테이션(논리적 크기 분할)을 비교합니다.
- 페이지 교체 알고리즘
- 메모리가 가득 찼을 때 어떤 페이지를 내보낼지 결정하는 FIFO, LRU, OPT 등의 알고리즘을 학습합니다.
- 디스크 스케줄링
- 디스크 헤드의 이동 거리를 최소화하여 입출력 성능을 향상시키는 FCFS, SSTF, SCAN 등의 알고리즘을 이해합니다.
- 분산 운영체제
- 여러 컴퓨터를 하나의 시스템처럼 보이게 하여 자원을 공유하고 신뢰성을 높이는 운영체제의 개념을 파악합니다.
- UNIX & Linux 기본 명령어
- 서버 환경에서 널리 사용되는 UNIX/Linux 시스템을 다루기 위한 필수 명령어들을 익힙니다.
🌐 네트워크 & 보안
데이터 통신의 기본 원리와 정보 보안의 핵심 개념을 이해하여, 안전하고 신뢰성 있는 정보 시스템을 구축하는 역량을 갖춥니다.
- OSI 7계층
- 네트워크 통신의 전 과정을 7개의 논리적인 계층으로 나눈 표준 모델의 각 계층별 역할을 암기합니다.
- TCP/IP 프로토콜 스택
- 현재 인터넷에서 사용하는 핵심 프로토콜 그룹(TCP/IP)이 OSI 7계층과 어떻게 매칭되는지 이해합니다.
- TCP & UDP
- 신뢰성 있는 연결을 제공하는 TCP와, 속도를 중시하는 비연결형 UDP의 특징과 차이점을 비교합니다.
- 3-way-handshake
- TCP에서 신뢰성 있는 연결을 수립하기 위해 3개의 패킷을 주고받는 과정을 학습합니다.
- IP 주소
- 인터넷에 연결된 모든 장치를 식별하는 고유한 주소의 체계(IPv4, IPv6)와 클래스 구조를 이해합니다.
- 서브네팅 (Subnetting)
- 하나의 큰 네트워크를 여러 개의 작은 네트워크(서브넷)로 나누어 IP 주소를 효율적으로 사용하는 기법입니다.
- 라우팅 프로토콜
- 데이터가 목적지까지 찾아가는 최적의 경로를 설정하는 RIP, OSPF, BGP 등의 프로토콜 종류를 학습합니다.
- HTTP & HTTPS
- 웹 통신의 기반이 되는 프로토콜과, 여기에 보안(SSL/TLS)이 추가된 HTTPS의 차이점을 명확히 이해합니다.
- 정보 보안 3요소
- 정보 보안의 목표인 기밀성(Confidentiality), 무결성(Integrity), 가용성(Availability)의 개념을 이해합니다.
- 대칭키 & 비대칭키 암호화
- 암호화와 복호화에 같은 키를 쓰는지(대칭키), 다른 키를 쓰는지(비대칭키)에 따른 암호화 방식의 차이를 비교합니다.
- 해시 함수
- 임의의 데이터를 고정된 길이의 값으로 변환하여 데이터의 무결성 검증이나 비밀번호 저장에 사용하는 기술입니다.
- 방화벽 (Firewall)
- 외부의 불법적인 접근으로부터 내부 네트워크를 보호하는 가장 기본적인 보안 시스템의 원리를 이해합니다.
- SQL 인젝션
- 악의적인 SQL 구문을 주입하여 데이터베이스를 공격하는 기법의 원리와 대응 방법을 학습합니다.
- XSS (Cross-Site Scripting)
- 웹사이트에 악성 스크립트를 삽입하여 사용자의 정보를 탈취하는 공격의 원리와 방어법을 알아봅니다.
- CSRF (Cross-Site Request Forgery)
- 사용자가 모르는 사이에 공격자가 의도한 행동을 하도록 만드는 공격의 원리와 방어법을 알아봅니다.
💻 프로그래밍 언어 & 응용
실기 시험까지 대비하기 위해 프로그래밍 언어의 핵심 개념과 응용 기술을 정확히 이해하고 넘어갑니다.
- 객체 지향 프로그래밍
- C++, Java, Python 등 주요 언어의 근간이 되는 객체 지향의 4가지 핵심 특징(캡슐화, 상속, 다형성, 추상화)을 암기합니다.
- 오버로딩 vs 오버라이딩
- 같은 이름의 메서드를 다르게 사용하는 두 가지 기법의 차이점을 명확히 구분하여 이해합니다.
- Java 특징
- 'Write Once, Run Anywhere'로 대표되는 자바의 특징과 JVM의 역할을 이해합니다.
- Python 특징
- 간결한 문법과 강력한 라이브러리로 무장한 파이썬의 특징과 장점을 파악합니다.
- 스크립트 언어
- 컴파일 없이 바로 실행되는 파이썬, 자바스크립트 등 스크립트 언어의 특징을 이해합니다.
- 쉘 스크립트
- 운영체제 커널과 사용자 사이의 인터페이스인 쉘에서 사용하는 명령어들로 작성하는 스크립트입니다.
- 라이브러리 & 프레임워크
- 개발의 편의성을 높여주는 도구(라이브러리)와 정해진 틀 안에서 개발하는 환경(프레임워크)의 차이를 이해합니다.
- MVC 패턴
- 애플리케이션을 모델, 뷰, 컨트롤러 세 부분으로 나누어 개발하는 디자인 패턴의 개념을 파악합니다.
- 클린 코드
- 가독성이 높고 유지보수하기 좋은 코드를 작성하기 위한 원칙과 중요성을 이해합니다.
- 테스트 코드
- 소프트웨어의 결함을 찾고 안정성을 높이기 위해 작성하는 테스트의 종류와 목적을 학습합니다.
- 예외 처리
- 프로그램 실행 중 발생하는 오류에 대비하여 시스템이 중단되지 않도록 처리하는 기법입니다.