목차
1. OSI 7 계층 모델
OSI(Open Systems Interconnection) 7계층 모델은 컴퓨터 네트워크에서 통신 프로토콜이 데이터를 전송하는 방식을 계층화하여 정의한 모델입니다. 정보처리기사 시험에서 OSI 7계층 모델과 관련된 중요한 개념은 다음과 같습니다:
물리 계층(Physical Layer): 네트워크 케이블과 같은 물리적인 요소를 다루며, 데이터를 전기 신호로 변환하여 전송합니다.
데이터 링크 계층(Data Link Layer): 물리적인 데이터 전송에 필요한 오류 검출 및 정정, 흐름 제어 등을 수행합니다.
네트워크 계층(Network Layer): 다른 네트워크와의 통신을 위한 경로 설정 및 패킷 전송을 담당합니다.
전송 계층(Transport Layer): 데이터의 정확한 전달과 흐름 제어를 담당합니다.
세션 계층(Session Layer): 통신을 위한 세션 설정, 유지, 종료 등을 담당합니다.
표현 계층(Presentation Layer): 데이터의 인코딩, 디코딩, 데이터 압축, 암호화 등의 처리를 담당합니다.
응용 계층(Application Layer): 사용자가 사용하는 응용 프로그램과 직접 상호작용하여 데이터를 전송하고 받는 계층입니다. 이 계층에서는 HTTP, FTP, SMTP 등의 프로토콜이 사용됩니다.
2. HRN, HRN 우선순위 계산
HRN(Highest Response Ratio Next)은 운영체제의 비선점형 프로세스 스케줄링 알고리즘 중 하나로, 응답 시간을 고려하여 CPU를 할당하는 방법입니다.
HRN에서는 우선순위를 계산하기 위해 다음과 같은 공식을 사용합니다.
Priority = (Waiting time + Service time) / Service time
여기서 Waiting time은 대기 시간, Service time은 CPU 서비스 시간을 의미합니다. 이 공식에 따르면, 대기 시간이 길어질수록 우선순위가 높아지며, CPU 서비스 시간이 길어질수록 우선순위가 낮아집니다. 따라서 대기 시간이 긴 프로세스에 우선적으로 CPU를 할당하게 됩니다.
3. 네트워크 공격 유형
DoS/DDoS 공격: 서비스 거부 공격으로, 대량의 요청을 보내서 서비스를 마비시키는 공격입니다.
스푸핑 공격: IP나 MAC 주소를 변조하여 다른 사용자로 위장해서 네트워크를 공격하는 공격입니다.
포트 스캐닝 공격: 포트를 스캔하여 보안 취약점을 찾는 공격입니다.
악성코드 공격: 컴퓨터에 악성 코드를 설치하거나 실행시켜 정보를 탈취하거나 시스템을 마비시키는 공격입니다.
스팸 공격: 불필요한 메일을 대량으로 발송하여 서버나 네트워크의 용량을 차지하는 공격입니다.
웜 공격: 자신을 복제하여 네트워크 상에서 빠르게 전파하면서 시스템을 마비시키는 공격입니다.
피싱 공격: 가짜 사이트를 이용해 사용자의 개인 정보를 탈취하는 공격입니다.
맨인더미 공격: 패킷을 가로채어 정보를 탈취하는 공격입니다.
중간자 공격: 데이터 통신 중간에서 가로채서 정보를 변경하는 공격입니다.
이러한 네트워크 공격 유형에 대한 이해와 방어 기술이 정보처리기사 시험에서 중요한 출제 요소가 됩니다.
4. thread 스레드
스레드(Thread)란, 프로세스 내에서 실행되는 여러 개의 작업 단위로, 각 스레드는 독립적인 실행 흐름을 가지고 있습니다. 이러한 스레드는 동시에 실행될 수 있으며, 각각의 스레드는 공유 자원에 대한 접근을 갖고 있기 때문에, 상호작용하면서 프로그램을 실행시키는데 사용됩니다.
예를 들어, 웹 브라우저를 실행하는 프로그램은 여러 개의 스레드를 사용합니다. 그 중에서도 가장 중요한 스레드는 GUI 스레드입니다. GUI 스레드는 사용자 인터페이스를 처리하고, 마우스 이벤트나 키보드 이벤트 등을 처리하여 적절한 동작을 수행합니다.
또 다른 스레드는 네트워크 요청을 처리하는 스레드입니다. 이 스레드는 백그라운드에서 실행되며, 웹 서버와 통신하여 웹 페이지를 다운로드합니다.
또 다른 예시로는, 미디어 플레이어에서 사용되는 스레드가 있습니다. 이 스레드는 오디오와 비디오를 재생하고, UI 스레드와는 별도로 실행됩니다.
즉, 스레드는 다양한 애플리케이션에서 동시에 실행되어야 할 작업을 분리하여 처리함으로써, 성능을 개선하고 사용자 경험을 향상시키는 데에 활용됩니다.
5. 운영체제 중요 개념
-프로세스 스케줄링
운영체제가 CPU를 효율적으로 사용하기 위해 프로세스들을 어떤 순서로 실행할지 결정하는 기법을 의미합니다.
-메모리 관리
운영체제가 메모리를 효율적으로 사용하기 위해 사용되는 기법을 의미합니다. 메모리 할당 및 해제, 가상 메모리, 메모리 보호 등이 이에 속합니다.
-파일 시스템
운영체제가 파일을 관리하기 위해 사용하는 기법을 의미합니다. 파일의 생성, 삭제, 디렉터리 관리, 파일 액세스 권한 관리 등이 이에 속합니다.
-디바이스 드라이버
운영체제와 하드웨어 사이에서 통신을 가능하게 해주는 소프트웨어입니다. 운영체제는 디바이스 드라이버를 통해 하드웨어 자원을 효율적으로 사용할 수 있습니다.
-인터럽트
하드웨어나 소프트웨어에서 발생하는 이벤트를 운영체제가 처리할 수 있도록 하는 기법입니다. 예를 들어, 키보드 입력이나 마우스 클릭 등이 이에 해당합니다.
-멀티태스킹
운영체제가 여러 개의 프로세스를 동시에 실행하는 기법입니다. 멀티태스킹은 여러 응용 프로그램이 동시에 실행되는 것처럼 보이게 하면서, 실제로는 하나의 CPU를 공유하여 실행합니다.
-스레드
프로세스 내부에서 실행되는 하나의 실행 단위를 의미합니다. 하나의 프로세스는 여러 개의 스레드를 가질 수 있으며, 스레드는 프로세스 내부의 자원을 공유하여 효율적인 실행이 가능합니다.
-동기화
여러 스레드나 프로세스가 공유하는 자원을 제어하기 위한 기법입니다. 공유 자원에 대한 접근이 서로 충돌하지 않도록 하며, 데이터 일관성을 유지할 수 있도록 합니다.
-보호 모드
CPU가 실행하는 코드의 보안을 위해 사용되는 모드입니다. 운영체제는 보호 모드에서 실행되며, 응용 프로그램은 보호 모드에서 실행할 수 없습니다.
-가상화
하나의 물리적 자원을 여러 가상 자원으로 나누어 사용할 수 있도록 하는 기술입니다. 가상화는 서버 가상화, 스토리지 가상화, 네트워크 가상화 등 다양한 분야에서 사용됩니다. 가상화 기술은 자원의 효율적인 활용과 유연한 운영 등을 가능하게 합니다.
-프로세스 간 통신
운영체제가 제공하는 서비스 중 하나로, 프로세스 간에 데이터를 주고받을 수 있도록 합니다. IPC(Inter-Process Communication) 기술이 대표적인 방법입니다.
-스케줄링 알고리즘
CPU 스케줄링에서 사용되는 알고리즘으로, 프로세스들을 어떤 순서로 실행할지 결정하는 방법을 의미합니다. 대표적인 알고리즘으로 FCFS, SJF, 우선순위 기반, Round Robin 등이 있습니다.
-인터프리터와 컴파일러
프로그램을 실행하기 위해 사용되는 도구로, 인터프리터는 소스 코드를 한 줄씩 읽어 실행하는 방식으로 동작하며, 컴파일러는 소스 코드를 기계어로 번역하여 실행 파일을 생성하는 방식으로 동작합니다.
-캐시
CPU와 메모리 사이에 위치하여, 자주 사용되는 데이터를 미리 저장해 둠으로써 데이터 접근 시간을 단축시키는 기술입니다.
-디스크 스케줄링
디스크 I/O 작업을 효율적으로 처리하기 위해 디스크에 대한 접근 순서를 결정하는 기법입니다. 대표적인 알고리즘으로 FCFS, SSTF, SCAN, C-SCAN 등이 있습니다.
-시스템 콜
운영체제가 제공하는 서비스를 호출하기 위해 응용 프로그램이 사용하는 인터페이스입니다. 시스템 콜을 통해 응용 프로그램은 운영체제의 자원에 접근할 수 있습니다.
-가상 메모리
실제 물리적 메모리 크기보다 큰 가상의 메모리 공간을 응용 프로그램에 제공하는 기술입니다. 가상 메모리는 하드디스크 공간을 일부 사용하여 실제 메모리 크기를 확장하는 것을 의미합니다.
6. 스케줄링 기법
스케줄링(Scheduling)은 CPU에 존재하는 여러 프로세스들 중에서 어떤 프로세스에게 CPU를 할당할지를 결정하는 작업을 말합니다. 이를 통해 CPU를 최대한 효율적으로 사용하여 시스템 성능을 향상시키고, 프로세스의 응답 시간을 최소화할 수 있습니다. 스케줄링 기법에는 다양한 알고리즘이 존재하며, 선택하는 기법에 따라 CPU를 할당하는 방식과 프로세스의 우선순위가 결정됩니다. 이를 통해 다양한 요구사항에 맞는 스케줄링 기법을 선택할 수 있습니다.
-선점 스케줄링
우선순위 기반 스케줄링
라운드 로빈 스케줄링
다단계 큐 스케줄링
다중 레벨 큐 스케줄링
-비선점 스케줄링
SRT(Shortest Remaining Time) 스케줄링
RR(Round Robin) 스케줄링
HRN(Highest Response Ratio Next) 스케줄링
MFQS(Multi-Level Feedback Queue Scheduling) 스케줄링
FCFS(First Come First Served)스케줄링
7. 프로그램 구조
-fan in
프로그램 구조에서 "fan-in"은 다른 모듈 또는 하위 프로그램에서 단일 모듈 또는 상위 프로그램으로의 입력 흐름의 수를 나타내는 용어입니다. 즉, "fan-in"은 입력으로 받는 모듈의 수를 의미합니다.
더 구체적으로 말하면, 프로그램 구조에서 "fan-in"은 하나의 모듈이나 프로그램이 다른 모듈이나 프로그램으로부터 입력을 받는 횟수를 나타냅니다. 이것은 보통 모듈이나 프로그램이 다른 모듈이나 프로그램으로부터 받는 입력의 양과 관련이 있습니다.
-fan out
"fan-out"은 "fan-in"의 반대 개념입니다. "fan-out"은 특정 모듈이나 프로그램에서 다른 모듈이나 프로그램으로 출력을 보내는 횟수를 나타내는 용어입니다. 즉, "fan-out"은 출력 흐름의 수를 의미합니다.
더 구체적으로 말하면, "fan-out"은 특정 모듈이나 프로그램에서 다른 모듈이나 프로그램으로 보내는 데이터나 제어 흐름의 양과 관련이 있습니다. 이것은 보통 모듈이나 프로그램이 다른 모듈이나 프로그램에 종속적인 정도와 관련이 있습니다.
8. xml
html의 단점 보완한 인터넷 언어로 다목적 마크업 언어
웹상에서 구조화된 문서를 상호 교환 가능하도록 설계한 웹 표준 문서 포맷
유니코드- 전 세계 모든 문자 처리 가능
장치와 시스템에 독립적임
예시)
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<book id="bk101">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications
with XML.</description>
</book>
<book id="bk102">
<author>Ralls, Kim</author>
<title>Midnight Rain</title>
<genre>Fantasy</genre>
<price>5.95</price>
<publish_date>2000-12-16</publish_date>
<description>A former architect battles corporate zombies,
an evil sorceress, and her own childhood to become queen
of the world.</description>
</book>
<book id="bk103">
<author>Corets, Eva</author>
<title>Maeve Ascendant</title>
<genre>Fantasy</genre>
<price>5.95</price>
<publish_date>2000-11-17</publish_date>
<description>After the collapse of a nanotechnology
society in England, the young survivors lay the
foundation for a new society.</description>
</book>
</catalog>
9. JSON
데이터를 저장하거나 전송하라 때 많이 사용되는 경량의 Data 교환 형식
XML을 대체해서ㅓ 데이터 전송등에서 많이 사용
10. 워터풀 waterfull
워터폴(Waterfall) 모델은 소프트웨어 개발 방법론 중 하나로, 개발 단계를 선형적으로 이어가는 방식으로 진행됩니다. 순차적으로 진행되는 단계는 계획, 요구 분석, 설계, 구현, 테스트, 유지보수 단계로 나누어집니다.
각 단계는 이전 단계가 완료된 후에만 진행될 수 있으며, 한 단계가 끝나면 결과물을 검토하고 승인을 받아야 다음 단계로 넘어갈 수 있습니다. 이러한 선형적인 개발 방식은 개발 프로세스를 일련의 단계로 구분하여 전체 프로세스를 보다 체계적이고 계획적으로 관리할 수 있도록 합니다.
워터폴 모델은 각 단계가 확실히 끝난 후 다음 단계로 진행되므로 프로젝트 일정과 예산을 관리하기 용이하다는 장점이 있습니다. 하지만 요구사항이나 디자인이 변경될 경우 다시 처음부터 시작해야 하는 단점도 있습니다. 또한 사용자와의 커뮤니케이션이 부족할 경우 프로젝트를 끝까지 성공적으로 완료하는 것이 어렵습니다.
11. 릴리즈 노트
릴리즈 노트(Release Notes)는 소프트웨어 제품의 새로운 버전이 출시될 때, 해당 버전에서 수정된 사항, 새로운 기능 및 개선사항 등을 정리한 문서입니다. 이 문서는 사용자들이 제품의 변경사항을 파악하고, 새로운 기능을 사용하거나, 버그를 수정할 수 있는 정보를 제공합니다.
릴리즈 노트는 보통 다음과 같은 내용을 포함합니다.
제품 버전 정보
-새로운 기능 및 개선사항
-버그 수정 사항
-제품의 지원 환경 정보
-알려진 문제점 및 해결 방법 등
12. 해시함수
해시 함수(Hash function)는 임의의 길이를 가진 데이터를 고정된 길이의 데이터로 변환하는 함수입니다. 해시 함수를 통해 생성된 고정된 길이의 데이터는 일반적으로 해시 값(Hash value) 또는 해시 코드(Hash code)라고 불립니다.
해시 함수는 주로 데이터를 검색하거나 데이터의 무결성을 확인하기 위해 사용됩니다. 예를 들어, 파일의 내용이나 패스워드와 같은 데이터를 해시 함수를 통해 변환하면 고정된 길이의 해시 값이 생성되며, 이 값을 저장해 두고 검색이나 인증 시에 사용할 수 있습니다.
해시 함수는 다음과 같은 특징을 가집니다.
동일한 입력 값에 대해서는 항상 동일한 해시 값이 생성됩니다.
입력 값이 조금만 달라져도 전혀 다른 해시 값이 생성됩니다.
해시 값으로 원본 데이터를 복원하는 것은 매우 어렵거나 불가능합니다.
해시 함수는 데이터의 무결성을 확인하는데 많이 사용됩니다. 예를 들어, 파일을 다운로드 받을 때 파일의 해시 값을 확인하여 파일이 변경되지 않았는지 검증할 수 있습니다. 또한, 패스워드를 저장할 때도 해시 함수를 사용하여 해시 값만 저장하고, 인증 시에는 입력한 패스워드를 해시 함수로 변환하여 저장된 해시 값과 비교하는 방식으로 사용됩니다.
-MD5
-SHA-3
SHA-3는 Secure Hash Algorithm-3의 약자로, 2015년에 미국 표준기술연구소(NIST)에 의해 공식적으로 발표된 해시함수입니다. SHA-3는 이전 버전인 SHA-1과 SHA-2에서 발견된 약점을 보완하고, 좀 더 안전하고 강력한 보안성을 제공하는 알고리즘입니다. SHA-3는 KECCAK 알고리즘을 기반으로 하고 있으며, 256비트, 512비트, 1024비트의 출력값을 지원합니다. 최근에는 SHA-3가 대체로 보안성이 높은 해시함수로 인정받고 있습니다.
'Certificate > 정보처리기사' 카테고리의 다른 글
정보처리기사 주요개념 3 (0) | 2023.04.23 |
---|---|
정보처리기사 주요개념 2 (0) | 2023.04.22 |