01 운영체제의 특징
▶ 운영체제
사용자가 컴퓨터 하드웨어를 쉽게 사용할 수 있도록 인터페이스를 제공해주는 소프트웨어
▶ 운영체제의 종류 : 윈도즈, 유닉스, 리눅스, 맥, 안드로이드
▶ 리눅스/유닉스 계열의 기본 명령어
⦁ chmod : 특정 파일 또는 디렉토리의 퍼미션 수정 명령어
⦁ chown : 파일이나 디렉토리의 소유자, 소유 그룹 명령어
▶ 메모리 관리 기법
⦁ 반입 기법 : 메모리로 적재 시기 결정
⦁ 배치 기법 : 메모리 적재 위치 결정
⦁ 할당 기법 : 메모리 적재 방법 결정
⦁ 교체 기법 : 메모리 교체 대상 결정
▶ 메모리 배치 기법
⦁ 최초 적합(First-fit) : 가용 공간 중 첫 번째 분할에 할당
⦁ 최적 적합(Best-fit) : 가장 크기가 비슷한 공간에 할당
⦁ 최악 적합(Worst-fit) : 가장 큰 공간에 할당
▶ 프로세스 상태 전이
▶ 프로세스 스케줄링 유형
◇ 선점형 스케줄링
⦁ 라운드 로빈(Round Robin) : 같은 크기의 CPU 시간 할당
⦁ SRT(Shortest Remaining Time First) : 가장 짧은 시간이 소요되는 프로세스를 먼저 수행하고, 남은 처리 시간이 더 짧다고 판단되는 프로세스가 준비 큐에 생기면 언제라도 프로세스가 선점됨
⦁ 다단계 큐(Multi Level Queue) : 작업들을 여려 종류 그룹 분할
⦁ 다단계 피드백 큐 : 큐마다 서로 다른 CPU시간 할당량 부여, FIFO와 라운드 로빈 스케줄링 기법을 혼합한 것
◇ 비선점형 스케줄링
⦁ 우선순위(Priority) : 프로세스별 우선순위가 주어지고, 우선순위에 따라 CPU 할당
⦁ 기한부(Deadline) : 작업들이 명시된 시간이나 기한 내에 완료되도록 계획
⦁ FCFS(First Come Frist Service) : 프로세스가 대기 큐에 도착한 순서에 따라 CPU 할당
⦁ SJF(Shortest Job First) : 프로세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시까지 자원 점유, 기아 현상 발생
⦁ HRN(Highest Response Ratio Next) : 대기 중인 프로세스 중 현재 응답률이 가장 높은 것을 선택, 기아 현상 최소화 기법
▶ 가상화(Virtualization)
물리적인 리소스들을 사용자에게 하나로 보이게 하거나, 여러 개로 보이게 하는 기술
이를 통해 서버의 가동률을 60~70% 이상으로 올릴 수 있다.
▶ 가상화 기술요소
⦁ 컴퓨팅 가상화 : 물리적으로 컴퓨터 리소스를 가상화해 논리적 단위로 리소스를 활용할 수 있도록 하는 기술
⦁ 스토리지 가상화 : 스토리지와 서버 사이에 소프트웨어/하드웨어 계층을 추가, 스토리지를 논리적으로 제어 및 활용할 수 있도록 하는 기술
⦁ I/O 가상화 : 서버와 I/O 디바이스 사이에 위치하는 미들웨어 계층으로, 서버의 I/O 자원을 물리적으로 분리하고 케이블과 스위치 구성을 단순화해 효율적인 연결 지원
⦁ 컨테이너 : 컨테이너화된 애플리케이션들이 단일 운영체제상에서 실행되도록 해주는 기술
⦁ 분산처리 기술 : 여러 대의 컴퓨터 계산 및 저장능력을 이용해 커다란 계산문제나 대용량의 데이터를 처리하고 저장하는 기술
⦁ 네트워크 가상화 기술 : 물리적으로 떨어져 있는 다양한 장비들을 연결하기 위한 수단
▶ 클라우드 컴퓨팅(Cloud Computing)
인터넷의 서버를 통해 IT 관련 서비스를 한 번에 사용할 수 있는 컴퓨팅 환경
▶ 클라우드 컴퓨팅 유형
⦁ 인프라형 서비스(laaS) : 서버, 스토리지 같은 시스템 자원을 클라우드로 제공하는 서비스
⦁ 플랫폼형 서비스(PaaS) : 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공하는 서비스
⦁ 소프트웨어형 서비스(SaaS) : 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용하는 서비스
02 네트워크 기초 활용하기
▶ 프로토콜(Procotcol)
서로 다른 시스템에 있는 두 개체 간의 데이터 교환을 원활히 하기 위한 일련의 통신규약
기술적 은어
▶ 프로토콜의 기본 3요소
⦁ 구문(Syntax) : 시스템 간의 정보 전송을 위한 데이터 형식, 코딩, 신호레벨 등의 규정
⦁ 의미(Semantic) : 시스템 간의 정보 전송을 위한 제어 정보로 조정과 에러 처리를 위한 규정
⦁ 타이밍(Timing) : 시스템 간의 정보 전송을 위한 속도 조절과 순서 관리 규정
▶ 네트워크 프로토콜
컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고받는 양식과 규칙 체계
▶ OSI 7계층
◇ 물리 계층(Physical Layer)
⦁ 0과 1 비트 정보를 회선에 보내기 위한 전기적 신호 변환
⦁ 전송 단위 : 비트(Bit)
▼ 장비 : 허브, 리피터
⦁ 허브 : 여러 대의 컴퓨터를 연결해 네트워크로 보내거나, 여러 대의 컴퓨터로 송신하기 위한 장비
⦁ 리피터 : 디지털 신호를 증폭시켜 주는 역할
◇ 데이터 링크 계층(Data Link Layer)
⦁ 링크의 설정과 유지 및 종료 담당, 노드 간의 오류제어, 회선제어, 흐름제어
⦁ 전송 단위 : 프레임(Frame)
▼ 장비 : 브리지, 스위치
⦁ 브리지 : 두 개의 근거리 통신망(LAN)을 서로 연결해 주는 통신망 연결 장치
⦁ L2 스위치 : 느린 전송속도의 브리지, 허브의 단점 개선, MAC 주소 기반으로 빠르게 전송
▼ 프로토콜 : HDLC, PPP, 프레임 릴레이, ATM
⦁ HDLC(High-Level Data Link Control) : 점대점 방식이나 다중방식의 통신에 사용, 동기식 비트 중심
⦁ PPP(Point-to-Point Protocol) : 두 통신 노드 간의 직접적인 연결
⦁ 프레임 릴레이 : 프로토콜 처리를 간략화해 데이터 처리속도의 향상 및 전송지연을 감소시킨 고속 데이터 전송 기술
⦁ ATM : 53바이트 셀 단위로 전달, 비동기식 시분할 다중화 방식의 패킷형 전송 기술
◇ 네트워크 계층(Network Layer)
⦁ 다양한 길이의 패킷 전송, 단말기 간 데이터 전송을 위한 최적화된 경로 제공
⦁ 전송 단위 : 패킷(Packet)
▼ 장비 : 라우터, 게이트웨이, 스위치, 백본 스위칭 허브
⦁ 라우터 : LAN과 LAN / LAN과 WAN 연결, 최적의 경로 지정
⦁ 게이트웨이 : 프로토콜을 서로 다른 통신망에 접속할 수 있게 해줌
▼ 네트워크 계층 프로토콜 : IP, ARP, RARP, ICMP, IGMP, 라우팅 프로토콜
⦁ IP(Internet Protocol) : 송수신 간의 패킷 단위로 데이터 교환, 네트워크에서 정보를 주고받는 데 사용
⦁ ARP(Address Resolution Protocol) : IP네트워크상에서 IP주소를 MAC주소(물리 주소)로 변환
⦁ RAPR(Reverse Address Resolution Protocol) : 호스트가 자신의 MAC주소는 알지만 IP주소를 모르는 경우, 서버로부터 IP주소를 요청하기 위해 사용
⦁ ICMP(Internet Control Message Protocol) : IP패킷을 처리할 때 발생되는 문제를 알려주는 메시지 형식 프로토콜
⦁ IGMP(Internet Group Management Protocol) : 인터넷 그룹 관리, 호스트 컴퓨터와 인접 라우터가 멀티캐스트 그룹 멤버십을 구성하는 데 사용
⦁ 라우팅 프로토콜 : 데이터 전송을 위해 목적지까지 갈 수 있는 최적의 경로를 설정해주는 라우터 간의 상호 통신 프로토콜
▼ 라우팅 프로토콜의 구성
<내부라우팅 프로토콜(IGP)>
⦁ RIP(Routing Information Protocol) : AS 내에서 사용하는 거리 벡터 알고리즘에 기초해 개발된 내부 라우팅 프로토콜, 벨만-포드 알고리즘, 15홉 제한, IGRP
⦁ OSPF(Open Shortest Path First) : 규모가 크고 복잡한 TCP/IP네트워크에서 RIP의 단점 개선위한 링크 상태 알고리즘 적용해 최단 경로를 찾는 프로토콜, 다익스트라 알고리즘, 홉 제한 없음, ELGRP
<외부 라우팅 프로토콜(EGP)>
⦁ BGP : AS 상호 간에 경로 정보를 교환하기 위한 라우팅 프로토콜
▼ 라우팅 알고리즘의 유형
⦁ 거리 벡터(Distance Vector) 알고리즘 : 인접 라우터와 정보를 공유해 목적지까지의 거리와 방향을 결정하는 알고리즘, 벨만-포드 알고리즘 사용
⦁ 링크 상태 알고리즘 : 링크 상태 정보를 모든 라우터에게 전달해 최단 경로 트리 구성, 다익스트라(Dijkstra) 알고리즘 사용
◇ 전송 계층(Transport Layer)
⦁ 종단 간의 사용자들에게 신뢰성 있는 데이터 전달, 송수신 프로세스 간의 연결
⦁ 전송단위 : 세그먼트(Segment)
▼ 전송 계층 프로토콜 : TCP, UDP
⦁ TCP(Transmission Control Protocol) : 신뢰성 보장, 연결 지향적 특징, 흐름 제어, 혼잡 제어
⦁ UDP(User Datagram Protocol) : 비신뢰성, 비연결성, 순서화되지 않은 데이터그램 서비스 제공, 단순 헤더, 실시간 응용 및 멀티캐스팅 가능
◇ 세션 계층(Session Layer)
⦁ 프로세스들의 논리적인 연결, 응용 프로그램 간의 대화를 유지하기 위한 구조 제공
⦁ 전송단위 : 데이터
▼ 세션 계층 프로토콜 : PRC, NetBIOS
⦁ RPC(Remote Procedure Call) : 별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에서 함수나 프로시저를 실행 할 수 있는 프로세스 간 통신에 사용, 원격 프로시저 호출
⦁ NetBIOS : 응용계층의 애플리케이션 프로그램에게 API 제공해 상호 통신 가능
◇ 표현 계층(Presentation Layer)
⦁ 통신에 알맞은 형태로 만듦, 사용자가 이해할 수 있는 형태로 만듦. 부호교환, 암복호화
⦁ 전송단위 : 데이터
▼ 표현 계층 프로토콜 : JPEG, MPEG
⦁ JPEG : 이미지를 위해 만들어진 표준 규격
⦁ MPEG : 멀티미디어를 위해 만들어진 표준 규격
◇ 응용 계층(Application Layer)
⦁ 사용자와 네트워크 간 응용서비스 연결
⦁ 전송단위 : 데이터
▼ 응용 계층 프로토콜 : HTTP, FTP, SMTP, Telnet, POP3/IMAP
⦁ HTTP : 텍스트 기반의 통신규약, 인터넷에서 데이터를 주고받을 수 있는 프로토콜
⦁ FTP(File Transfer Protocol) : TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 파일을 전송하기 위한 프로토콜
⦁ SMTP(Simple Mail Transter Protocol) : 인터넷에서 TCP 포트 번호 25번, 이메일을 보내기위해 이용
⦁ Telnet : 인터넷이나 로컬 영역에서 네트워크 연결에 사용되는 네트워크 프로토콜
▶ 서킷 스위칭
네트워크 리소스를 특정 사용 층이 독점하도록 하는 통신 방식
▶ 패킷 스위칭
작은 블록의 패킷으로 데이터를 전송하며, 데이터를 전송하는 동안만 네트워크 자원을 사용하도록 하는 통신 방식
▶ 패킷 스위칭 관련 기술
⦁ X.25 : 통신을 원하는 두 단말장치가 패킷 교환망을 통해 패킷을 원활히 전달하기 위한 통신 프로토콜
⦁ 프레임 릴레이 : ISDN을 사용하기 위한 프로토콜, ITU-T에 의해 표준으로 작성됨
⦁ ATM(Asynchronous Transfer Mode) : 비동기 전송모드, 광대역 전송에 쓰이는 스위칭 기법
▶ IPv4 전송방식 : 유니, 멀티, 브로드
- IPv4 : 32bit
▶ IPv6 전송방식 : 유니, 멀티, 애니
- IPv6 : 128bit, 주소 확장, 이동성, 인증 및 보안 개선
유니캐스트 : 1 대 1
애니캐스트 : 가장 가까운 노드로 1 대 1
멀티캐스트 : 1 대 다
브로드캐스트 : 다 대 다
03 기본 개발환경 구축하기
▶ 개발환경 인프라 구성 방식
⦁ 온프레미스(On-Pramise)방식 : 외부 인터넷망이 차단된 상태에서 인트라넷 망만을 활용하여 개발환경을 구축하는 방식
⦁ 클라우드(Cloud)방식 : 아마존, 구글, 마이크로소프트 등 클라우드 공급 서비스를 하는 회사들의 서비스를 임대하여 개발환경을 구축하는 방식
⦁ 하이브리드 방식 : 온프레미스 + 클라우드