1. 운영체제 (Operating System) 기본
1) UNIX / Linux 주요 명령어
리눅스 명령어의 기능을 묻거나, 파일 권한(chmod) 숫자를 계산하는 문제가 나옵니다.
chmod (권한 변경): R(4) + W(2) + X(1)예: chmod 755 (소유자 4+2+1=7, 그룹 4+0+1=5, 기타 4+0+1=5) fork: 새로운 프로세스를 생성 (복제)chown: 파일 소유자 변경uname -a: 시스템 정보 확인pwd: 현재 경로 출력2) 프로세스 스케줄링 (Scheduling)
CPU를 누구에게 먼저 줄 것인가 정하는 방법입니다.
[1] 비선점(Non-preemptive) 형
FCFS: 먼저 온 놈이 먼저 (First Come First Served)SJF: 실행 시간이 가장 짧은 놈 먼저 (Shortest Job First)HRN: SJF의 단점(긴 작업 무한 대기) 보완. 우선순위 계산식 암기 필수.우선순위 = (대기시간 + 서비스시간) / 서비스시간(값이 클수록 우선순위가 높음) 우선순위가 높으면 강제로 CPU를 뺏을 수 있음.
Round Robin (RR): 시간 할당량(Time Slice)만큼만 쓰고 돌려가며 씀SRT: 남은 처리 시간이 가장 짧은 놈에게 뺏어줌다단계 큐 (MLQ): 큐마다 우선순위 다름3) 페이지 교체 알고리즘
메모리가 꽉 찼을 때 누구를 내보낼지 결정하는 기법입니다.
FIFO: 가장 먼저 들어온 페이지 교체LRU (Least Recently Used): 가장 오랫동안 사용하지 않은 놈 교체 (시간 기준)LFU (Least Frequently Used): 사용 횟수가 가장 적은 놈 교체 (횟수 기준)NUR: 참조 비트와 변형 비트를 이용해 교체
2. 네트워크 (Network) 기초 [암기 필수]
1) OSI 7계층
각 계층의 순서, 전송 단위(PDU), 장비를 묻습니다. 아래에서 위로 외우는 것이 국룰입니다.
두음암기: [물.데.네.전.세.표.응]1계층 [물]리 (Physical): 비트(Bit). 리피터, 허브.2계층 [데]이터링크 (DataLink): 프레임(Frame). 브리지, 스위치.3계층 [네]트워크 (Network): 패킷(Packet). 라우터(IP).4계층 [전]송 (Transport): 세그먼트(Segment). L4 스위치. (TCP/UDP)5계층 [세]션 (Session): 대화 제어, 동기점.6계층 [표]현 (Presentation): 암호화, 압축.7계층 [응]용 (Application): 사용자가 쓰는 프로그램(HTTP, FTP). 2) TCP vs UDP (4계층 프로토콜)
TCP: 신뢰성 있음, 연결 지향형, 느림 (3-way Handshake)UDP: 신뢰성 없음, 비연결형, 빠름 (실시간 방송, 게임)3) IPv4 vs IPv6
IPv4: 32비트 (8비트씩 4부분), 10진수, 점(.)으로 구분IPv6: 128비트 (16비트씩 8부분), 16진수, 콜론(:)으로 구분, 유니/멀티/애니캐스트
3. 프로그래밍 언어 (C, Java, Python)
이 부분은 요약보다 [코드 실행 결과 예측] 연습이 필요하지만, 자주 틀리는 문법 함정을 정리했습니다.
1) C언어의 포인터 (Pointer)
가장 오답률이 높은 파트입니다. 기호의 의미를 정확히 구분하세요.
: 값 (내용물)&: 주소 (위치)배열의 이름은 곧 그 배열의 시작 주소입니다. (arr == &arr[0])2) 연산자 우선순위
순서: 산술(*, /, %) -> 산술(+, -) -> 시프트(<<) -> 관계(>, <) -> 논리(&&, ||)팁: 괄호가 없으면 곱하기/나누기 먼저, 그리고 AND(&&)가 OR(||)보다 먼저입니다.3) Python의 슬라이싱 (Slicing)
리스트에서 일부를 잘라낼 때 범위가 헷갈립니다.
문법: list[start : end]주의: start는 포함, end는 포함하지 않음 (start <= x < end)예: a = [0, 1, 2, 3] 일 때, a[0:2] 의 결과는 [0, 1] 입니다. (2는 미포함)4) Java의 접근 제한자
public: 어디서나 접근 가능protected: 같은 패키지 + 상속받은 자식 클래스default: 같은 패키지 내에서만 (생략 시 기본값)private: 내 클래스 안에서만
4. 기타 필수 암기
1) 결합도와 응집도 (1과목, 5과목과 중복되지만 중요)
좋은 소프트웨어는 결합도는 낮고(Low), 응집도는 높아야(High) 합니다.
결합도(Coupling) 순서 (약->강): [자.스.제.외.공.내]자료(Data) -> 스탬프 -> 제어 -> 외부 -> 공통 -> 내용(Content)자료 결합도가 가장 좋고, 내용 결합도가 가장 나쁨. 응집도(Cohesion) 순서 (강->약): [기.순.교.절.시.논.우]기능(Functional) -> 순차 -> 교환 -> 절차 -> 시간 -> 논리 -> 우연(Coincidental)기능 응집도가 가장 좋고, 우연 응집도가 가장 나쁨. 2) 라우팅 프로토콜 (3계층)
RIP: 거리 벡터, 홉(Hop) 카운트 15 제한 (소규모)OSPF: 링크 상태, 다익스트라 알고리즘 (대규모)BGP: 경로 벡터, AS(자치 시스템) 간 연결
[4과목 합격 전략]
[코드 문제]는 눈으로만 풀지 말고, 시험지 여백에 변수 박스를 그리고 값이 변하는 과정을 한 줄씩 써가며(디버깅) 푸세요.[운영체제 계산] 중 HRN 우선순위 구하는 공식과 평균 대기시간 구하는 법은 한 번씩만 연습하면 맞출 수 있습니다.[OSI 7계층]은 무조건 1~2문제 나오니 두음 문자를 꼭 외우세요.