이론 목록
Java static·final·예외·컬렉션·접근 제어
static과 final의 제한 대상, Java 예외의 분류와 처리 흐름, List·Set·Map의 차이, 접근 제한자의 범위를 구분한다. 참조를 바꾸지 못하는 것과 객체 내용을 바꾸지 못하는 것은 다르다.
Python 시퀀스·세트·딕셔너리·반복
Python의 리스트·튜플·range·세트·딕셔너리를 순서·중복·변경 가능성으로 구분한다. 인덱싱과 슬라이싱, 별칭과 복사, 반복문과 컴프리헨션에서 원소와 상태가 바뀌는 과정을 추적한다. 수치 합산과 원본 객체의 상태 변화도 구분한다.
Python 함수·이름 범위·클래스·예외·안전한 입력
Python 함수의 인자와 기본값, 지역·전역 이름, 클래스와 인스턴스, 예외 처리와 입력 변환을 이해한다. 이름을 새 객체에 연결하는 것과 공유 객체를 변경하는 것을 구분한다.
운영체제·프로세스·스레드·CPU 스케줄링과 UNIX/Linux 기초
운영체제는 자원을 관리하고 실행 환경을 제공한다. 프로세스·스레드의 상태와 공유 자원, CPU 스케줄링의 선택 기준과 시간 계산, UNIX/Linux의 기본 명령·환경 변수·셸 스크립트를 함께 이해한다.
동기화와 교착상태
동기화는 공유 자원의 접근 순서를 조정한다. 임계 구역의 세 조건, 세마포어와 뮤텍스의 역할, 교착상태의 네 필요조건과 대응 전략을 구분하고 기본 자원 할당 표로 안전 상태를 판단한다.
메모리 관리·가상 메모리·페이지 교체
메모리 관리는 주소 변환·보호·할당과 회수를 수행한다. 연속 할당과 단편화, 페이징·세그먼테이션의 주소 계산, 가상 메모리의 페이지 부재·교체·스래싱을 원리와 계산으로 구분한다.
OSI·TCP/IP·네트워크 장비·캡슐화
OSI 7계층과 TCP/IP 모델의 책임을 비교하고 데이터를 캡슐화하는 과정을 이해한다. MAC·IP·포트의 역할, 스위치와 라우터의 전달 기준, 같은 네트워크와 다른 네트워크로 보낼 때의 주소 변화를 구분한다.
IP 주소·서브넷·IPv6
IPv4 주소와 마스크로 네트워크·브로드캐스트·호스트 범위를 계산하고 FLSM·VLSM·CIDR의 차이를 구분한다. IPv6의 128비트 표기, 주소 유형, 기본 헤더와 IPv4 전환 방식까지 연결한다.
TCP·UDP·흐름 및 혼잡 제어·웹 보조 프로토콜
TCP는 순서와 재전송을 관리하는 바이트 스트림, UDP는 기본 전달 기능을 제공하는 데이터그램이다. TCP 연결·확인 응답·흐름 제어·혼잡 제어를 구분하고 DNS·HTTP·DHCP·ARP·ICMP의 역할을 웹 통신 흐름에 연결한다.