이론공부/정보처리기사
정보처리기사(개념정리) - 4과목 프로그래밍 언어 활용
DJ.Kang
2025. 7. 23. 23:37
□ 서브넷 ☆☆☆☆☆
- 서브넷 마스크 구하기
- 표준 서브넷 마스크
□ □ □. □ □ □. □ □ □. □ □ □ 이렇게 IP주소가 있을 때 A~C클래스는 각 단이 255로 채워지는거다
ex) A클래스 표준 서브넷 마스크 = 255.0.0.0, C클래스 표준 서브넷 마스크 = 255. 255. 255. 0 - 서브넷 마스크 구하기
ex) 203.76.25.1/26의 서브넷 마스크 값은?
26자리를 네트워크ID로 사용한다는 의미이다 앞 24자리가 모두 1이고 마지막 주소의 앞 2자리가 1이다
11000000(2) = 192 값이 서브넷 마스크 값이 된다. - ex)IPv4의 C클래스 네트워크를 26개의 서브넷으로 나눈다면 서브넷 마스크 값은?
255.255.255.xxx에서 마지막 주소값에서 □ □ □ □ □ □ □ □ 8자리중
첫번째 자리를 가지고 (0,1) 2가지의 경우의 수가 가능하므로 2개로 나누는 것과 같다
두번째 자리까지 하게된다면 (00,01,10,11) 4가지 경우로
... n번째 자리까지 사용하면 2의 n제곱만큼 나눠진다
26개로 나누기 위해서는 32개로 나눠야 한다(2의 5제곱) 그러므로 11111000이 되고 주소값으로 바꾸면
255.255.255.248이된다. - 클래스 B 주소를 가지고 255.255.255.240으로 서브넷을 만들때 나오는 서브넷수와 호스트의 수 구하기
B클래스 = 255.255.0.0
서브넷마스크 = 11111111.11110000, 2의 12제곱 개의 서브넷으로 나눌 수 있음
호스트 = 뒤 0000자리, 2의 4제곱 = 16에서 앞뒤 2개를 제외하고 14개
- 표준 서브넷 마스크
- 서브넷 계산
※ 맨앞은 네트워크 IP, 맨뒤는 Broadcast IP로 사용할 수없다.- 192.18.1.0/24 네트워크를 4개의 Subnet으로 나눈다면 4번째 네트워크의 4번째 사용 가능한 IP는?
4개로 나누기 떄문에 마지막 주소값 자리에 11000000사용 여기서 00, 01, 10, 11이 순서가된다.
그러므로 4번째 네트워크 시작값은 11000000 => 192.168.1.192가 되고 여기서 1번째인 192는 사용이 불가하므로 - 1932부터 4번째는 192.168.1.196가된다.
- 192.18.1.0/24 네트워크를 4개의 Subnet으로 나눈다면 4번째 네트워크의 4번째 사용 가능한 IP는?
□ TCP/IP 7계층(OSI 7계층) ☆☆☆☆☆
- 전송 계층(Transport) : 양 종단간에 통신을 관리
- 사용장비 : L4 스위치
- TCP : 신뢰성 보장, 연결 지향, 느리지만 안정적
- UDP : 비신뢰성, 연결 없음, 빠르지만 데이터 손실 가능
- 네트워크 계층(Network) : 다른 네트워크 간 데이터 전달(라우팅), IP 주소 기반, 경로 선택
- 사용장비 : 라우터, L3 스위치
- IP : 데이터 패킷의 주소 지정 및 전살(비신뢰성, 비연결성)
- ICMP : 네트워크 오류 및 상태 메시지 전달
- ARP : IP → MAC 주소로 변환
- 데이터링크 계층(Data Link) : 같은 네트워크 내 장비 간 신뢰성 있는 프레임 전송, MAC주소 사용, 오류 검출
- 사용장비 : 스위치, 브리지
- 물리 계층(Physical) : 전기적 신호나 광신호로 변환하여 전송하는 역할
- 사용방지 : 허브, 리피터 ,케이블, 모뎀 등
□ 응집도(Cohesion)와 결합도(Coupling) ☆☆☆☆☆
※ 1 → 7으로 갈수록 응집도 증가
- 우연적 응집도 : 모듈 내부의 각 구성 요소들이 연관이 없는 경우
- 논리적 응집도 : 유사한 성격을 갖거나 특정 형태로 분류되는 처리요소들이 한 모듈에서 처리
- 시간적 응집도 : 특정 시간에 처리되어야 하는 활동을 한 모듈에서 처리
- 절차적 응집도 : 모듈 안의 구성 요소들이 기능을 순차적으로 수행하는 경우
- 통신적 응집도 : 동일한 입력과 출력을 사용하여 기능을 수행
- 순차적 응집도 : 모듈 내에서 한 활동으로부터 나온 출력밧을 다른 활동이 사용
- 기능적 응집도 : 모듈 내부의 모든 기능이 단일한 목적을 수행
※ 1 → 6으로 갈수록 결합도 증가
- 자료 결합도 : 모듈간의 자료(값)를 통해서만 묘듈 상호 작용 발생
- 스탬프 결합도 : 모듈간의 배열이나 오브젝트, 스트럭처 등이 전달되는 경우
- 제어 결합도 : 값만 전달되는게 아니라, 제어 요소가 전달되는 경우
- 외부 결합도 : 모듈에서 외부로 선언한 변수를 다른 모듈에서 참조
- 공통 결합도: 전역변수를 참조
- 내용 결합도 : 다른 모듈 내부에 있는 변수나 기능을 또 다른 모듈에서 사용
□ 페이지 참조 ☆☆☆☆☆
예제) 3개의 페이지 프레임을 갖는 시스템에서 페이지 참조 순서가 1, 2, 1, 0, 4, 1, 3 일 경우 FIFO 알고리즘에 의한 페이지 교체의 경우 프레임의 최종 상태는?
참조값 | 1 | 2 | 1 | 0 | 4 | 1 | 3 |
프레임 | 1 | 1 | 1 | 1 | 4 | 4 | 4 |
2 | 2 | 2 | 2 | 1 | 1 | ||
0 | 0 | 0 | 3 | ||||
페이지부재 | O | O | X | O | O | O | O |
- 1 참조 프레임에 없으니 페이지 부재 발생하고 프레임에 공간이 남아있으니 프레임에 1 추가
- 2 참조 프레임에 없으니 페이지 부재 발생하고 프레임에 공간이 남아있으니 프레임에 2 추가
- 1 참조 프레임에 있으니 페이지 부재가 발생하지않음
- 0 참조 프레임에 없으니 페이지 부재가 발생하고 프레임에 공간이 남아있으니 프레임에 0 추가
- 4 참조 프레임에 없으니 페이지 부재가 발생, FIFO이므로 가장 오래된 1 을 제거하고 4 추가
- 1 참조 프레임에 없으니 페이지 부재가 발생, FIFO이므로 가장 오래된 2 을 제거하고 1 추가
- 3 참조 프레임에 없으니 페이지 부재가 발생, FIFO이므로 가장 오래된 0 을 제거하고 3 추가
- 페이징 교체 기법
- FIFO(First In First Out) : 가장 먼저 들어온 페이지 교체
- LRU(Least Recently Used) : 가장 오랫동안 사용되지 않은 페이지 교체
- LFU(Least Frequently Used) : 참조 횟수가 가장 작은 페이지 교체
- MFU(Most Frequently Used) : 참조 횟수가 가장 많은 페이지 교체
- OPT(Optimal) : 앞으로 가장 오랫동안 사용되지 않을 페이지 교체
- NUR(Not User Recently) : 최근에 사용하지 않은 페이지 교체
□ 커널(kernel)과 쉘(shell) ☆☆☆☆☆
- 커널 : 프로세스 관리, 기억장치 관리, 파일 관리, 입출력 관리, 프로세스간 통신, 데이터 전송 및 변환 등
- 쉘 : 시스템과 사용자간의 인터페이스 담당, 명령어 해석기
□ 교착상태 ☆☆☆☆
- 교착상태 발생조건
- 상호 배제(Mutual Exclustion)
- 점유 및 대기(Hold and Wait)
- 비선점(Non-Preemption)
- 환형대기(Circular Wait)
- 해결방법
- 예방(Prevention) : 상호 배제, 점유와 대기, 비선점, 환형대기 조건 중 하나 이상 부정
- 회피(Avodiance) : 교착상태 가능성을 배제하지 않고 적절하게 피해나가는 방법 ex)은행원 알고리즘
- 발견(Detection) : 시스템의 상태를 감시 알고리즘을 통해 교착상태 검사
- 회복(Recovery) : Deadlock이 없어질 때까지 프로세스를 순차적으로 Kill명령으로 제거
□ IP 프로토콜 ☆☆☆
- 프로토콜의 3요소 : 구문, 의미, 타이밍
- IP 헤더
- TCP 헤더
□ IP 주소체계 ☆☆☆
구분 | IPv4 | IPv6 |
주소 길이 | 32비트 | 128비트 |
표기법 | 10진수, 점(.)으로 구분 (예: 192.168.0.1) | 16진수, 콜론(:)으로 구분 (예: 2001:0db8::1) |
주소 수 | 2³² | 2¹²⁸ |
주소 고갈 | 거의 고갈 상태 | 충분한 주소 공간 |
헤더 크기 | 가변길이(20~60바이트) | 40바이트 고정 |
보안 | 옵션(IPSec 선택사항) | 기본 제공(IPSec 내장) |
NAT 필요성 | 필요 (공인 IP 부족) | 불필요 (충분한 주소 제공) |
데이터 전송방식 | Broadcast, Multicast, Unicast | Multicast, Anycast, Unicast |
설정 방식 | 수동 설정 또는 DHCP 사용 | 자동 설정 가능 (Stateless Autoconfig) |
호환성 | 거의 모든 시스템과 호환 | 점차 확산 중, 일부 시스템은 미지원 가능 |
- 데이터 전송 방식
- 유니캐스트(Unicast) : 가장 일방적인 통신 방식 1:1 통신
- 멀티캐스트(Multicast) : 수신자 그룹이 정해져 있는 방식, 네트워크 효율을 높이기 위해 많이 사용
- 브로드캐스트(Broadcast) : 동일 네트쿼으 내의 모든 장치에게 전송
- 애니캐스트(Anycast) : 여러 수신자가 동일한 IP 주소를 공유, 가장 가까운서버로 자동 전송
□ 스케줄링 기법 ☆☆☆
- 선점형 스케줄링(Preemptive) : 강제로 뺏을 수 있는 스케줄링
- Round Robin : 시간을 할당하여 순차적으로 반복
- SRT : 남은 실행 시간이 가장 짧은 프로세스를 선택
- 다단계 큐 : 우선순위 또는 성격에 따라 큐를 나눠서 처리
- 다단계 피드백 큐 : 프로세스가 큐 사이를 이동할 수 있음
- 비선점형 스케줄링(Non-Preemptive) : 끝날때 까지 기다림
- FCFS : First Come First Served로 먼저 도착한 프로세스부터 처리
- SJF : 실행 시간이 가장 짧은 프로세스부터 실행
- HRN : SJF의 단점 보완, 기아 현상 방지, 우선순위를 동적으로 계산
- 우선순위 : 우선순위가 높은 프로세스부터 실행
- 기한부 : 각 프로세스에 막마시간이 존재, 마감 시간 안에 작업을 끝내야 함
□ chmod & umask ☆☆☆
- chmod ex) 751
7 5 1 Owner Group Othoer - 각 자리 수는 8진수를 의미하며 각 8진수는 Read(읽기) / Write(쓰기) / Excute(실행)의 권한을 나타낸다
- 7의 경우 111 = Owner에게 모든 권한을 다 부여
- 5의 경우 101 = Group에게 Read / Excute 권한만 부여
- 1의 경우 001 = Other에게 Excute의 권한만 부여
- 각 자리 수는 8진수를 의미하며 각 8진수는 Read(읽기) / Write(쓰기) / Excute(실행)의 권한을 나타낸다
- umas(User Mask) : 새 파일이나 디렉터리를 만들 때 기본 권한에서 빼는 값
- 기본 파일 권한이 666인데 umask 022를 하게되면 644가된다.
□ 연산자 우선순위 ☆☆☆
우선순위 | 연산자 | 설명 |
1 | () [] -> . | 괄호, 배열, 구조체 접근 |
2 | ++ -- + - ! ~ * & (type) | 단항 연산, 형변환 |
3 | * / % | 곱셈, 나눗셈, 나머지 |
4 | + - | 덧셈, 뺄셈 |
5 | << >> | 비트 이동 |
6 | < <= > >= | 관계 연산 |
7 | == != | 동등 비교 |
8 | & | 비트 AND |
9 | ^ | 비트 XOR |
10 | | | 비트 OR |
11 | && | 논리 AND |
12 | || | 논리 OR |
13 | ?: | 조건 연산자 |
14 | =, +=, -=, *=, ... | 대입 연산자 |
15 | , | 쉼표 연산자 |
□ 라우팅 프로토콜 ☆☆
항목 | RIP | OSPF |
방식 | 거리 벡터 | 링크 상태 |
메트릭 | 홉 카운트 | 비용 (대역폭 기반) |
수렴 속도 | 느림 | 빠름 |
네트워크 크기 | 소규모 적합 | 대규모 적합 |
라우팅 업데이트 | 주기적(30초) | 변경 시만 전송 |
서브넷/클래스리스 | 제한 있음 (v1) | 완전 지원 |
루프 방지 | 제한적 | 구조적으로 방지 |
□ 프로세스의 상태 ☆☆☆
□ LAN의 표준 802.X 시리즈 ☆☆
- 802.1 : 전체의 구성, OSI 참조 모델과의 관계, 표준 규약
- 802.2 : 논리링크제어(LLC)에 관한 규약
- 802.3 : CSMA/CD에 관한 규약 = 유선
- 802.4 : 토큰 버스에 관한 규약
- 802.5 : 토큰 링에 관한 규약
- 802.11 : 무선LAN에 관한 규약 CSMA/CA
- 802.15: 블루투스에 관한 규약
□ malloc() 함수 ☆
- 프로그램이 실행 중일 때 사용자가 직접 힘 영역에 메모리를 할당할 수 있게 해준다.
- 함수의 실행 시간에 힙 메모리를 할당 받는다.
- 함수를 실행하여 메모리를 할당받지 모하면 널 값이 반환된다.
- 함수로 할당받은 메모리는 free()함수를 통해 해제시킨다.
□ 백도어 탐지 방법 ☆
- 무결성 검사
- 로그 분석
- SetUID 파일 검사
- 현재 동작 중인 프로세스 및 열린 포트 확인
- 바이러스 및 백도어 탐지 툴 사용