개발새발
4단원 프로그래밍 언어 활용 개념 요약 본문
1. 운영체제 및 프로세스 관리
프로세스 스케줄링 (비선점형 중심)
프로세스 처리 우선순위를 결정하는 전략이다.
| 종류 | 특징 |
| FIFO (First In First Out) | 도착한 순서대로 처리하는 가장 단순한 방식입니다. |
| SJF (Shortest Job First) | 실행 시간이 가장 짧은 프로세스부터 처리하여 평균 대기 시간을 최소화합니다. |
| HRN (Highest Response ratio Next) | SJF의 약점(긴 작업 소외)을 보완하기 위해 대기 시간을 고려합니다. |
HRN 우선순위 계산식:

(결과값이 높을수록 우선순위가 높음)
UNIX 운영체제 특징
- 대화식 시분할 시스템: 여러 사용자가 동시에 서버에 접속하여 사용하기 적합함
- C언어 기반: 이식성이 높고 장치 간 호환성이 뛰어나다.
- 구조: 트리 구조의 파일 시스템을 가지며, 멀티태스킹과 멀티유저를 지원
Python 시퀀스자료
- 리스트(List): 데이터를 연속적으로 저장 가능하며, 필요에 따라 개수 조절 가능
- 튜플(Tuple): 데이터를 연속적으로 저장하지만, 요소의 추가 / 삭제 / 변경 불가 -
- Range: 연속 된 숫자를 생성 / 리스트, 반복문에서 자주 사용
2. 네트워크 참조 모델 및 프로토콜
OSI 7계층 참조 모델
| 계층 | 주요 기능 | 주요 프로토콜 / 키워드 |
| 7. 응용 (Application) | 사용자 인터페이스 제공 | HTTP, FTP, SMTP, Telnet, DNS |
| 6. 표현 (Presentation) | 데이터 암호화, 압축, 코드 변환 | JPEG, MPEG, 암호화/복호화 |
| 5. 세션 (Session) | 대화 제어 및 동기화 | 동기점(Check point) |
| 4. 전송 (Transport) | 종단 간(End-to-End) 신뢰성 있는 전송 | TCP(신뢰성), UDP(속도) |
| 3. 네트워크 (Network) | 경로 설정(Routing), 패킷 전달 | IP, ICMP, ARP, RARP |
| 2. 데이터링크 (Data Link) | 노드 간 프레임 전송, 오류/흐름 제어 | HDLC, PPP, 프레임(Frame) |
| 1. 물리 (Physical) | 전기적, 기계적 특성 정의 | 허브, 리피터, 비트(Bit) 전송 |
전송 및 인터넷 계층 핵심 프로토콜
- TCP vs UDP: TCP는 양방향 연결형으로 신뢰성이 높고, UDP는 비연결형으로 실시간 스트리밍 등 속도가 중요한 서비스에 사용됨
- ARP vs RARP: ARP는 IP 주소를 물리적 주소(MAC)로 바꾸고, RARP는 반대로 MAC 주소를 IP 주소로 변환
3. 소프트웨어 설계 원칙: 응집도와 결합도
모듈의 독립성을 측정하는 지표이다. 응집도는 높을수록, 결합도는 낮을수록 좋은 설계
응집도 (Cohesion) - 모듈 내부의 관련성
(높음) 기능적 → 순차적 → 통신적 → 절차적 → 시간적 → 논리적 → 우연적 (낮음)
결합도 (Coupling) - 모듈 간의 의존성
(낮음) 자료(Data) → 스탬프 → 제어 → 외부 → 공유 → 내용(Content) (높음)
4. 네트워크 제어 및 표준
흐름 제어 및 혼잡 제어
- Stop and Wait: 패킷 하나를 보내고 확인 응답(ACK)을 받아야 다음을 전송
- Sliding Window: 수신 측의 확인 없이 정해진 윈도우 크기만큼 연속 전송하여 효율을 높인다.
- Slow Start: 혼잡 윈도우 크기를 1부터 지수적으로 늘리다 혼잡 발생 시 다시 1로 줄인다.
IEEE 802 표준안
- 802.3: CSMA/CD (유선 LAN)
- 802.11: 무선 LAN (Wi-Fi)
- 802.15: 블루투스/지그비 (개인 영역 네트워크 - WPAN)
5. Python 자료형 핵심
- 리스트 (List): [ ] 사용. 가변(Mutable)하며 데이터 추가/삭제가 자유롭다.
- 튜플 (Tuple): ( ) 사용. 불변(Immutable)하며 한 번 생성하면 요소를 바꿀 수 없다.
- Range: range(시작, 끝, 증감) 형태로 연속된 숫자 생성 시 사용한다.
6. 네트워크 주소 체계: IPv4 vs IPv6
| 구분 | IPv4 | IPv6 |
| 주소 길이 | 32 Bit (8 Bit $\times$ 4개) | 128 Bit (16 Bit $\times$ 8개) |
| 표시 방법 | 10진수 (0~255), 마침표(.)로 구분 | 16진수 (0000~FFFF), 콜론(:)으로 구분 |
| 전송 방식 | 유니캐스트, 멀티캐스트, 브로드캐스트 | 유니캐스트, 멀티캐스트, 애니캐스트 |
| 주요 특징 | 설정의 편의성, 기존 인프라 풍부 | 확장성/보안성(인증, 기밀성) 우수, 패킷 크기 제한 없음 |
7. 연산자 및 우선순위
연산자 종류 및 특징
- 비트 연산자: &(AND), ^(XOR: 다르면 1), |(OR), ~(NOT), <<, >>(비트 이동).
- 관계 연산자: ==(같다), !=(같지 않다), >, <, >=, <= 등.
- 논리 연산자: ! (NOT), && (AND), || (OR).
연산자 우선순위 요약
| 순위 | 연산자 분류 | 연산자 및 결합 규칙 |
| 1 | 최우선/후위 | ( ), [ ], . , ->, ++, -- (후위) [→ 방향] |
| 2 | 단항/전위 | ++, -- (전위), !, ~, sizeof, (type) [← 방향] |
| 3~4 | 산술 | *, /, % → +, - [→ 방향] |
| 5~7 | 이동/관계 | <<, >> → <, <=, >, >= → ==, != [→ 방향] |
| 8~9 | 비트/논리 | &, ^, ` |
| 10~11 | 삼항/대입 | ?: (조건) → =, +=, -=, *=, /= 등 [← 방향] |
| 12 | 순서 | , (콤마) [→ 방향] |
8. 운영체제 핵심: UNIX 및 프로세스 관리
UNIX의 구성 요소
- 커널(Kernel): 하드웨어 보호 및 프로그램-하드웨어 간 인터페이스 역할을 하며 프로세스, 기억장치, 파일을 관리
- 쉘(Shell): 사용자의 명령을 해석하여 커널에 전달하는 시스템과 사용자 간 인터페이스
프로세스 상태 전이 및 스레드
- 주요 용어:
- 디스패치(Dispatch): 준비(Ready) 상태의 프로세스가 실행(Run) 상태로 바뀌는 과정
- 문맥 교환(Context Switching): 이전 프로세스의 상태를 보관하고 다음 프로세스의 레지스터를 적재하는 과정.
- 스레드(Thread): 프로세스 내의 작업 단위로, 다중 스레드 사용 시 병행성이 향상되고 응답 시간이 단축됨
9. 기억장치 배치 전략 및 기타
- 배치 전략:
- First Fit(최초 적합): 첫 번째 가용 영역에 배치.
- Best Fit(최적 적합): 단편화를 최소화하는 공간에 배치.
- Worst Fit(최악 적합): 단편화가 가장 많이 남는 공간에 배치.
- 가비지 컬렉터(Garbage Collector): 더 이상 사용되지 않는 객체(변수)를 메모리에서 자동으로 제거한다
- 예외 처리(Exception): 하드웨어 문제나 사용자 입력 실수 등 비정상적인 실행 상태에 대비하는 프로세스
10. 스크립트 언어 특징
컴파일 단계 없이 실행되는 언어들로 웹 개발 및 시스템 자동화에 쓰인다.
| 언어 | 특징 |
| Javascript | 웹페이지 동작 제어를 위한 클라이언트용 언어 |
| Python | 인터프리터 방식의 객체지향 언어로 이식성이 높고 동적 타이핑 지원 |
| JSP / ASP | 서버 측에서 동적 페이지를 만들기 위한 자바 기반(JSP) 및 MS 기반(ASP) 언어 |
| 쉘 스크립트 | 유닉스/리눅스 쉘 명령의 조합으로 컴파일 없이 빠른 실행 가능 (.sh) |
예외 처리 및 가비지 컬렉터
- 예외 처리 (Exception): 하드웨어 문제, 사용자 입력 실수 등으로 프로그램이 비정상 실행될 때를 대비한 처리 프로세스
- 가비지 컬렉터 (Garbage Collector): 선언 후 더 이상 사용되지 않는 객체를 메모리에서 자동으로 제거해주는 모듈.
CSMA/CA
- 무선 랜(Wireless LAN) 환경에서 데이터 전송 충돌을 피하기 위해 매체가 비어있음을 확인한 후 전송하는 방식.
11. 교착상태 (Dead Lock)
둘 이상의 프로세스가 서로 자원을 점유한 채 상대방의 자원을 요구하며 무한정 대기하는 상태
이 4가지가 모두 만족되어야 교착상태가 발생한다.
- 상호 배제(Mutual Exclusion): 한 번에 한 프로세스만 자원 사용 가능.
- 점유 및 대기(Hold and Wait): 자원을 가진 채 다른 자원을 기다림.
- 비선점(Non-preemption): 타인에게 할당된 자원을 강제로 뺏을 수 없음.
- 환형 대기(Circular Wait): 프로세스들이 원형으로 서로의 자원을 대기함.
교착상태 해결 방법
- 예방(Prevention): 4가지 조건 중 하나를 사전에 제거 (자원 낭비 심함).
- 회피(Avoidance): 은행원 알고리즘(Banker’s Algorithm)을 사용하여 안전한 상태일 때만 자원 할당.
- 발견(Detection): 시스템을 점검하여 교착상태인 프로세스 찾음.
- 회복(Recovery): 프로세스 종료 또는 자원 선점.
12. 기억장치 관리 전략
페이지 교체 알고리즘
주기억장치가 꽉 찼을 때 어떤 페이지를 내보낼지 결정하는 방법
- OPT (최적 교체): 향후 가장 오랫동안 사용되지 않을 페이지 교체 (이론적 최적).
- FIFO: 가장 먼저 들어온 페이지를 교체.
- LRU (Least Recently Used): 최근에 가장 오랫동안 사용하지 않은 페이지 교체.
- LFU (Least Frequently Used): 참조 횟수가 가장 적은 페이지 교체.
스래싱(Thrashing)과 Locality
- 스래싱: 페이지 부재가 너무 자주 발생하여 CPU가 실제 작업보다 페이지 교체에 더 많은 시간을 쓰는 성능 저하 현상.
- Locality (국부성): 프로세스가 특정 시간 동안 메모리의 일부 영역만 집중 참조하는 성질.
- 시간 구역성: 최근 참조된 곳을 다시 참조 (Loop, Stack 등).
- 공간 구역성: 인접한 곳을 참조 (Array, 순차 실행 등).
- 워킹셋 (Working Set): 자주 참조하는 페이지 묶음을 메모리에 상주시켜 스래싱 방지.
페이징(Paging) vs 세그먼테이션(Segmentation)
- 페이징: 프로그램을 고정 크기로 분할. 내부 단편화 발생 가능.
- 세그먼테이션: 프로그램을 논리적 단위(가변 크기) 로 분할. 외부 단편화 발생 가능.
13. 프로그래밍 및 개발 언어 기초
Java 접근 제어자 (Access Modifier)
| 제어자 | 접근 범위 |
| Public | 누구나 접근 가능 (클래스 내부, 패키지 내부/외부) |
| Protected | 같은 패키지 내, 혹은 상속받은 자식 클래스에서 접근 가능 |
| Default | 같은 패키지 내부에서만 접근 가능 (별도 키워드 없음) |
| Private | 해당 클래스(객체) 내부에서만 접근 가능 |
C언어 표준 라이브러리
| 헤더 파일 | 주요 함수 | 역할 |
| stdio.h | printf, scanf | 데이터 입출력 |
| math.h | sqrt, pow, abs | 수학적 연산 |
| string.h | strlen, strcpy, strcmp | 문자열 처리 |
| stdlib.h | malloc, free, rand, atoi | 메모리 동적 할당, 난수, 형 변환 |
14. UNIX / LINUX 주요 명령어
- 파일 및 디렉터리: ls(목록), cp(복사), rm(삭제), chmod(권한 설정), chown(소유자 변경).
- 프로세스 및 시스템: fork(프로세스 생성), exec(수행), wait(대기), cat(내용 출력), fsck(시스템 검사).
15. 기타 핵심 개념
- 배치 프로그램(Batch Program): 사용자 개입 없이 대량의 데이터를 일괄 처리하는 프로그램 (필수 요소: 대용량, 자동화, 안정성, 성능, 견고성).
- 버퍼 오버플로(Buffer Overflow): 할당된 메모리 범위를 넘어선 데이터 입력으로 인해 발생하는 보안 취약점.
- 변수 명명 규칙: 영문, 숫자, _ 사용 가능 / 첫 글자 숫자 불가 / 공백 및 예약어 사용 불가.
'정보처리기사' 카테고리의 다른 글
| 정보처리기사 1과목 기출 문제 오답 노트 (0) | 2026.01.24 |
|---|---|
| 5단원 정보시스템 구축 관리 개념 요약 (0) | 2026.01.24 |
| 3단원 데이터베이스 구축 개념 요약 (0) | 2026.01.24 |
| 2단원 소프트웨어 개발 개념 요약 (1) | 2026.01.24 |
| 1단원 소프트웨어 설계 개념 요약 (0) | 2026.01.24 |
