정보처리기사 실기 / Xi - 응용 SW 기초 기술 활용 ☆☆
실기 시험 준비
수제비 2023 참조
C1. 운영체제의 특징
i. 운영체제 종류
A. 운영체제의 개념
- 사용자가 컴퓨터의 하드웨어를 쉽게 사용할 수 있도록 인터페이스를 제공해 주는 소프트웨어
- 한정된 시스템 자원을 효과적으로 사용할 수 있도록 관리 및 운영함으로써 편리성 제공
1. 운영체제의 특징
- 사용자 편리성 제공 : 한정된 시스템 자원을 효과적으로 사용할 수 있도록 관리 및 운영
- 인터페이스 기능을 담당 : 컴퓨터 시스템과 사용자를 연결
- 스케줄링 담당 : 다중 사용자와 다중 응용 프로그램 환경하에서 자원의 현재 상태를 파악하고 자원 분배를 위한 스케줄링 담당
- 자원 관리 : CPU, 메모리 공간, 기억장치, 입출력 장치 등의 자원을 관리
- 제어 기능 : 입출력 장치와 사용자 프로그램을 제어
2. 운영체제에서 커널의 기능
- 운영체제는 크게 인터페이스(쉘) + 커널의 구조
- 쉘 : 사용자가 입력시킨 명령어 라인을 읽어 필요한 시스템 기능을 실행시키는 명령어 해석기
- 커널 : 운영체제의 핵심 기능들이 모여 있는 컴퓨터 프로그램
- 커널의 기능
- 프로세스 관리 : 프로세스 스케줄링 및 동기화 관리 담당
- 기억장치 관리 : 프로세스에게 메모리 할당 및 회수 관리 담당
- 주변장치 관리 : 입-출력 장치 스케줄링 및 전반적인 관리 담당
- 파일 관리 : 파일의 관리, 생성과 삭제, 변경, 유지 등의 관리 담당
- 커널의 기능
B. 운영체제의 종류
1. Windows OS
- MS-DOS의 멀티태스킹 기능과 GUI 환경을 제공하는 MS사가 개발한 OS
- Windows 운영체제 특징
- GUI 제공
- 선점형 멀티태스킹 방식 제공 : 동시에 여러 프로그램을 실행하면서 OS가 각 작업의 CPU 이용 시간을 제어
- 자동감지 기능 제공 : 하드웨어를 설치했을 때 필요한 시스템 환경을 OS가 자동으로 구성해주는 기능 제공
- OLE(Object Linking and Embedding) 사용 : 개체를 현재 작성 중인 문서에 자유롭게 연결 또는 삽입하여 편집할 수 있게 하는 기능 제공
2. Unix OS
- 데니스 리치와 켄 톰슨 등이 함께 벨 연구소를 통해 만든 OS
- 90% 이상 C 언어로 구현되어 있는 OS로 범용 다중 사용자 방식의 시분할 운영체제
- Unix 계열 운영체제 특징
- CLI 제공
- 다중 작업 기능 제공 : 다수의 작업이 CPU와 같은 공용자원을 나누어 사용하여 한 번에 하나 이상의 작업을 수행하는 기능 제공
- 다중 사용자 기능 제공 : 여러 대의 단말이 하나의 컴퓨터에 연결되어, 여러 사람들이 동시에 시스템을 사용하여 각각 작업을 수행할 수 있는 기능 제공
- 이식성 제공 : 90% 이상 C언어로 구현되어 있고, 시스템 프로그램이 모듈화되어 있어서 다른 하드웨어 기종으로 쉽게 이식 가능
- 계층적 트리 구조 파일 시스템 제공 : 통합적인 파일 관리 용이
3. Linux OS
- Unix를 기반으로 개발되고, 소스 코드가 공개된 오픈 소스 기반의 OS
- 데비안 / 레드헷 / Fedora / Ubuntu / CentOS
4. MAC OS
- 애플사에서 Unix를 기반으로 개발한 GUI OS
5. Android OS
- 휴대용 장치를 위한 OS와 미들웨어, 사용자 인터페이스, 표준 응용 프로그램을 포함하고 있는 운영체제
- Android 특징
- 리눅스 기반 : 리눅스 커널 위에서 동작
- 자바와 코틀린 : 고수준 언어를 사용해 응용 프로그램 작성
- 런타임 라이브러리 : 컴파일된 바이트 코드 구동 가능
- 안드로이드 SDK : 응용 프로그램을 개발하는 데 필요한 각종 도구와 API 제공
ii. 운영체제 기본 명령어 활용
A. 운영체제 제어
- CLI와 GUI
B. Windows OS의 기본 명령어
- ATTRIB : 파일 속성을 표시하거나 바꿈
- CALL : 한 일괄 프로그램에서 다른 일괄 프로그램을 호출
- CD : 현재 디렉토리 이름을 보여주거나 바꿈
- CHKDSK : 디스크 검사하고 상태 보고서를 표시
- CLS : 화면을 지움
- CMD : Windows 명령 프롬프트 창을 열어줌
- COMP : 두 개 이상의 파일을 비교
- DISKPART : 디스크 파티션 속성을 표시하거나 구성
- ECHO : 메시지를 표시하거나 ECHO를 사용 또는 사용하지 않음
- ERASE : 하나 이상의 파일을 지움
- EXIT : 명령 프롬프트 종료
C. Linux/Unix 계열 기본 명령어
- 시스템 관련
- uname -a : 시스템의 모든 정보를 확인
- uname -r : 운영체제의 배포버전을 출력
- cat : 파일의 내용을 화면에 출력
- uptime : 시스템의 가동 시간과 현재 사용자 수, 평균 부하량 확인
- 사용자
- id : 사용자의 로그인명, id, 그룹 id 등을 출력
- last : 시스템의 부팅부터 현재까지의 모든 사용자의 로그인과 로그아웃에 대한 정보 표시
- who : 현재 접속 사용자 정보 표시
- 파일 처리
- ls : 자신이 속해있는 폴더 내에서의 파일 및 폴더들 표시
- pwd : 현재 작업 중인 디렉토리의 절대 경로 출력
- rm : 파일 삭제
- cp : 파일 복사
- mv : 파일 이동
- 프로세스
- ps : 현재 실행되고 있는 프로세스 목록 출력
- pmap : 프로세스 ID를 기준으로 메모리 맵 정보 출력
- kill : 특정 PID 프로세스 종료
- 파일 권한
- chmod : 특정 파일 또는 디렉토리의 퍼미션 수정
- chown : 파일이나 디렉토리의 소유자, 소유 그룹 수정
- 네트워크
- ifconfig : 네트워크 인터페이스를 설정하거나 확인
- host : 도메인명은 알고 있는데 ip 주소를 모르거나 혹은 반대의 경우 사용
- 압축
- tar : 여러 개의 파일을 하나의 파일로 묶거나 풀 때 사용 (압축X)
- gzip : 파일 압축
- 검색
- grep : 입력으로 전달된 파일의 내용에서 특정 문자열을 찾고자할 때 사용
- find : 특정한 파일 검색
- 파일 이동
- cp : 디렉토리 복사
- rsync : 로컬 또는 원격에 파일과 디렉토리를 복사하고 동기화
- 디스크 사용
- df : 시스템에 마운트된 하드디스크의 남은 용량 확인
- du : 파일 사이즈를 kb 단위로 보여줌
- 디렉토리 이동
- cd : 디렉토리 이동
1. Linux/Unix OS의 파일 접근 권한 관리
- User : 파일 Owner
- Group : User를 제외한 같은 그룹에 속한 사용자 모임
- Other : 그 밖의 사용자
- Read-Write-eXcute
- ex) chmod 777 파일명 : 모든 사용자에 rwx 권한 설정
iii. 운영체제 핵심 기능 파악
A. 운영체제 핵심 기능
- 메모리 관리
- 프로그램의 실행이 종료될 때까지 메모리를 가용한 상태로 유지 및 관리하는 기능
- MMU : CPU가 메모리에 접근하는 것을 관리하는 컴퓨터 하드웨어 부품
- 프로세스 관리
- 일시 중지 및 재실행, 동기화, 통신, 교착상태 처리, 프로세스 생성 삭제
1. 메모리 관리 기법
- 반입 기법 : 주기억장치에 적재할 다음 프로세스의 반입 시기를 결정
- 배치 기법 : 디스크에 있는 프로세스를 주기억장치의 어느 위치에 저장할 것인지 결정
- 할당 기법 : 실행해야 할 프로세스를 주기억장치에 어떤 방법으로 할당할 것인지 결정
- 교체 기법 : 재배치 기법으로 주기억장치에 있는 프로세스 중 어떤 프로세스를 제거할 것인지 결정
2. 메모리 배치 기법
- First Fit : 프로세스가 적재될 수 있는 가용 공간 중에서 첫 번째 분할에 할당
- Best Fit : 가용 공간 중 가장 크기가 비슷한 공간을 선택하여 프로세스를 적재
- Worst-Fit : 프로세스의 가용 공간 중 가장 큰 공간에 할당
3. 메모리 할당 기법
- 연속 할당 기법 : 실행을 위한 각 프로세스를 주기억장치 공간 내에서 인접되게 연속하여 저장
- 분산 할당 기법 : 하나의 프로세스를 여러 개의 조각으로 나누어 주기억장치 공간 내 분산하여 배치
4. 메모리 교체 기법
- FIFO : 선입선출
- LRU(Least Recently Used) : 사용된 시간을 확인하여 가장 오랫동안 사용되지 않은 페이지를 선택 교체
- LFU(Least Frequently Used) : 사용된 횟수를 확인해 참조 횟수가 가장 적은 페이지 선택 교체
- OPT(OPTimal Replacement) : 앞으로 가장 오랫동안 사용하지 않을 페이지 교체
- NUR(Not Used Recently) : 최근에 사용하지 않은 페이지 교체
- SCR(Second Chance Replacement) : 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지
5. 메모리 단편화
- 분할된 주기억장치에 프로세스를 할당, 반남 과정에서 사용되지 못하고 낭비되는 기억장치가 발생하는 현상
- 내부 단편화 : 분할된 공간에 프로세스를 적재한 후 남은 공간
- 외부 단편화 : 할당된 크기가 프로세스 크기보다 작아서 사용하지 못하는 공간
6. 페이징 기법의 문제 및 해결방안
- 문제점
- 스레싱(Thrashing) : 어떤 프로세스가 계속적으로 페이지 부재가 발생하여 프로세스의 실제 처리 시간 보다 페이지 교체 시간이 더 많아지는 현상
- 해결 방안
- 워킹 세트(Working Set) : 프로세스가 많이 참조하는 페이지들의 집합을 주기억장치 공간에 계속 상주하게 하여 빈번한 페이지 교체 현상을 감소시키고자 하는 기법
- 페이지 부재 빈도(PFF; Page-Fault Frequency) : 페이지 부재율의 상한과 하한을 정해서 직접 페이지 부재율을 예측하고 조절하는 기법
7. 지역성
- 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 특성
- 지역성의 유형
- 시간(Temporal) 지역성 : 최근 사용되었던 기억장소들이 집중적으로 액세스하는 현상
- 공간(Spatial) 지역성 : 프로세스 실행 시 일정 위치의 페이지를 집중적으로 액세스하는 현상
- 순차(Sequential) 지역성 : 데이터가 순차적으로 액세스 되는 현상
8. 프로세스 관리
- 프로세스는 CPU에 의해 처리되는 프로그램, 실행 중인 프로그램
- 프로세스 상태
- 생성 상태 : 사용자에 의해 프로세스가 생성된 상태
- 준비 상태 : CPU를 할당받을 수 있는 상태
- 실행 상태 : 프로세스가 CPU를 할당받아 동작 중인 상태
- 대기 상태 : 프로세스 실행 중 입출력 처리 등으로 인해 CPU를 양도하고 입출력 처리가 완료까지 대기 리스트에서 기다리는 상태
- 완료 상태 : 프로세스가 CPU를 할당받아 주어진 시간 내에 완전히 수행을 종료한 상태
9. 프로세스 상태 전이
- 하나의 작업이 컴퓨터 시스템에 입력되어 완료되기까지 프로세스의 상태가 준비, 실행 및 대기 상태로 변하는 활동
- 디스패치(Dispatch) : 준비 상태에 있는 여러 프로세스 중 실행될 프로세스를 선정하여 CPU를 할당
- 타이머 런 아웃 : CPU를 할당받은 프로세스는 지정된 시간이 초과되면 스케줄러에 의해 PCB 저장, CPU 반납 후 다시 준비 상태로 전이됨
- 블록 : 실행 상테에 있는 프로세스가 지정된 할당시간을 초과하기 전에 입출력이나 기타 사건이 발생하면 CPU를 스스로 반납하고 입출력이 완료될 때까지 대기 상태로 전이됨
- 위에크 업 : 어느 순간에 입출력이 종료되면 대기 상태의 프로세스에게 입출력 종료 사실을 wait & signal 등에 의해 알려주고, 준비 상태로 전이됨
10. 프로세스 스케줄링
- CPU를 사용하려고 하는 프로세스들 사이의 우선순위를 관리하는 작업
- 프로세스 스케줄링 주요 용어
- 서비스 시간 : 프로세스가 결과를 산출하기까지 소요되는 시간
- 응답 시간 : 프로세스들이 입력되어 서비스를 요청하고 반응하기 시작할 때까지 소요 시간
- 반환시간 : 프로세스들이 입력되어 수행하고 결과를 산출하기까지 소요시간
- 대기시간 : 프로세스가 프로세서에 할당되기까지 큐에서 대기하는 시간
- 평균 대기시간 : 프로세스가 대기 큐에서 대기하는 평균 시간
- 종료시간 : 요구되는 Processing Time을 모두 수행하고 종료된 시간
- 시간 할당량 : 한 프로세스가 프로세서를 독점하는 것을 방지하기 위해 서비스되는 시간 할당량
- 응답률 : (대기시간 + 서비스 시간) / 서비스 시간, HRN 스케줄링에서 사용
11. 프로세스 스케줄링 유형
- 선점형 스케줄링
- 하나의 프로세스가 CPU를 차지하고 있을 때, 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유하는 스케줄링 방식
- 라운드 로빈(RR; Round-Robin) : 프로세스는 같은 크기의 CPU 시간을 할당, 프로세스가 할당된 시간 내에 처리 완료를 못하면 준비 큐 리스트의 가장 뒤로 보내지고, CPU는 대기 중인 다음 프로세스로 넘어감
- SRT(Shortest Remaining Time First) : 가장 짧은 시간이 소요되는 프로세스를 먼저 수행, 남은 처리시간이 더 짧다고 판단되는 프로세스가 준비 큐에 생기면 언제든 프로세스가 선점됨
- 다단계 큐(MLQ; Multi Level Queue) : 작업들을 여러 종류 그룹으로 분할, 여러 개의 큐를 이용하여 상위단계 작업에 의한 하위단계 작업이 선점 당함
- 다단계 피드백 큐(MLFQ; Multi Level Feedback Queue) : FCFS(FIFO)와 라운드 로빈 스케줄링 기법을 혼합
- 비선점형 스케줄링 : 한 프로세스가 CPU를 할당받으면 작업 종료 후 CPU 반환 시까지 다른 프로세스는 CPU 점유가 불가능한 스케줄링 방식
- 우선순위 : 프로세스별로 우선순위가 주어지고, 우선순위에 따라 CPU를 할당하는 기법
- 기한부(Deadline) : 작업들이 명시된 시간이나 기한 내에 완료되도록 계획하는 기법
- FCFS(First Come First Service) : FIFO, 프로세스가 대기 큐에 도착한 순서에 따라 CPU 할당
- SJF(Shortest Job First) : 프로세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시까지 자원을 점유
- HRN(Highest Response Ratio Next) : 대기 중인 프로세스 중 현재 응답률이 가장 높은 것을 선택
12. 프로세스 관리 - 교착 상태
- 다중프로세싱 환경에서 두 개 이상의 프로세스가 특정 자원할당을 무한정 대기하는 상태
- 교착상태 발생 조건
- 상호 배제(Mutual Exclusive) : 프로세스가 자원을 배타적으로 점유하여 다른 프로세스가 그 자원을 사용할 수 없는 상태
- 점유와 대기(Hold & Wait) : 한 프로세스가 자원을 점유하고 있으면서 또 다른 자원을 요청하여 대기하고 있는 상태
- 비선점(Non Preemption) : 한 프로세스가 점유한 자원에 대해 다른 프로세스가 선점할 수 없고, 오직 점유한 프로세스만이 해제 가능한 상태
- 환형 대기(Circular Wait) : 두 개 이상의 프로세스 간 자원의 점유와 대기가 하나의 원형을 구성한 형태
- 교착상태 해결 방법
- 예방(Prevention) : 상호 배제를 제외한 나머지 교착상태 발생 조건을 부정하는 방안
- 회피(Avoidance) : 안전한 상태를 유지할 수 있는 요구만 수락
- 발견(Detection) : 시스템의 상태를 감시 알고리즘을 통해 교착 상태 검사
- 복구(Recovery) : 교착상태가 없어질 때까지 프로세스를 순차적으로 Kill하여 제거, 희생자를 선택해야 하고 기아 상태 발생
13. 디스크 스케줄링
- 사용할 데이터가 디스크 상의 여러 곳에 저장되어 있을 경우, 데이터를 액세스하기 위해 디스크 헤드를 움직이는 경로를 결정하는 기법
- 디스크 스케줄링 종류
- FCFS(=FIFO) : 디스크 대기 큐에 가장 먼저 들어온 트랙에 대한 요청을 먼저 서비스하는 기법
- SSTF(Shortest Seek Time First) : 현재 위치에서 탐색거리가 가장 짧은 트랙에 대한 요청을 먼저 서비스하는 기법
- SCAN : 현재 헤드의 위치에서 진행 방향이 결정되면 탐색 거리가 짧은 수서에 따라 그 방향의 모든 요청을 서비스하고, 끝까지 이동한 후 역방향의 요청 사항을 서비스하는 기법
- C-SCAN(Circular) : 항상 바깥쪽에서 안쪽으로 움직이며 가장 짧은 탐색 거리를 갖는 요청을 서비스하는 기법
- LOOK(=엘리베이터 알고리즘) : SCAN을 바탕으로 진행 방향으로 더 이상의 요청이 없으면 역방향으로 진행하는 기법
- N-STEP SCAN : SCAN을 바탕으로 어떤 방향의 진행이 시작될 당시에 대기 중이던 요청들만 서비스하고, 진행 도중 도착한 요청들은 한꺼번에 모아서 다음의 반대 진행 방향으로 진행할 때 서비스하는 기법
- SLTF(Shortest Latency Time First) : 섹터 큐잉, 회전지연시간 최적화를 위해 구현
B. 가상화, 클라우드
- 물리적인 리소스들을 사용자에게 하나로 보이게 하거나, 하나의 물리적인 리소스를 여러 개로 보이게 하는 기술
- 가상화의 종류
- 플랫폼 가상화 : 하드웨어 플랫폼 위에서 실행되는 호스트 프로그램이 게스트 프로그램을 만들어 마치 독립된 환경을 만들어 낸 것처럼 보여주는 기법
- 리소스 가상화 : 게스트 소프트웨어 위에서 사용자는 독립된 하드웨어에서 소프트웨어가 실행되는 것처럼 활용하는 기법
- 가상화 기술요소
- 컴퓨팅 가상화 : 물리적으로 리소스를 가상화하여 논리적 단위로 리소스를 활용할 수 있도록 하는 기술
- 스토리지 가상화 : 스토리지와 서버 사이에 SW/HW 계층을 추가하여 스토리지를 논리적으로 제어 및 활용할 수 있도록 하는 기술
- I/O 가상화 : 서버와 I/O 디바이스 사이에 위치하는 미들웨어 계층, 서버의 I/O ㅏㅈ원을 물리적으로 분리하고 케이블과 스위치 구성을 단순화하여 효율적인 연결 지원
- 컨테이너 : 컨테이너화된 애플리케이션들이 단일 운영체제상에서 실행되도록 해주는 기술
- 분산처리 기술 : 여러 대의 컴퓨터 계산 및 저장 능력을 이용하여 커다란 계산이나 대용량 데이터 처리 저장
- 네트워크 가상화 기술 : 물리적으로 떨어져 있는 다양한 장비들을 연결하기 위한 수단
1. 클라우드 컴퓨팅
- 인터넷을 통해 가상화된 컴퓨터 시스템 리소스를 제공하고, 정보를 자신의 컴퓨터가 아닌 클라우드에 연결된 다른 컴퓨터로 처리하는 기술
- 클라우드 컴퓨팅 분류
- 사설 클라우드(Private) : 기업 또는 조직 내부에서 보유하고 있는 컴퓨팅 자원을 이용하여 내부에 구축되어 운영되는 클라우드
- 공용 클라우드(Public) : 클라우드 서비스 제공 업체에서 다중 사용자를 위한 컴퓨팅 자원 서비스를 제공하는 클라우드
- 하이브리드 클라우드(Hybrid) : 기업 또는 조직 내부 자원을 이용한 사설 클라우드와 공용 클라우드를 모두 사용하는 클라우드
- 클라우드 컴퓨팅 유형
- 인프라형 서비스(IaaS; Infrastructure as a Service)
- 서버, 스토리지 같은 시스템 자원을 클라우드로 제공하는 서비스
- 스토리지, 애플리케이션에 대해 제어권을 가짐
- 플랫폼형 서비스(PaaS; Platform as a Service)
- 인프라를 생성, 관리 하는 복잡함 없이 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공하는 서비스
- OS, 애플리케이션과 애플리케이션 호스팅 환경 구성의 제어권을 가짐
- 소프트웨어형 서비스(SaaS; Software as a Service)
- 소프트웨어 및 관련 데이터는 중앙에 호스팅되고 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용
- 주문형 소프트웨어
- 인프라형 서비스(IaaS; Infrastructure as a Service)
C2. 네트워크 기초 활용하기
i. 네트워크 계층 구조 파악
A. 네트워크 개념
- 원하는 정보를 원하는 수신자 또는 기기에 정확하게 전송하기 위한 기반 인프라
- WAN : 광대역 네트워크
- LAN : 근거리 네트워크
B. OSI 7계층
- 국제 표준화 기구인 ISO에서 개발한 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 개방형 시스템 상호 연결 모델
- OSI 7 계층 특징
계층 | 설명 | 프로토콜 | 전송단위 |
---|---|---|---|
응용 계층(Application) | 사용자와 네트워크 간 응용서비스 연결, 데이터 생성 | HTTP / FTP | DATA |
표현 계층(Presentation) | 데이터 형식 설정과 부호교환, 암/복호화 | JPEG / MPEG | DATA |
세션 계층(Session) | 연결 접속 및 동기제어 | SSH / TLS | DATA |
전송 계층(Transport) | 신뢰성 있는 통신 보장 | TCP / UDP | Segment |
네트워크 계층(Network) | 단말기 간 데이터 전송을 위한 최적화된 경로 제공 | IP / ICMP | Packet |
데이터 링크 계층(Data Link) | 인접 시스템 간 데이터 전송, 전송 오류 제어 | 이더넷 | Frame |
물리 계층(Physical) | 0과 1의 비트 정보를 회선에 보내기 위한 전기적 신호 변환 | RS-232C | Bit |
C. 통신망
1. 근거리 통신망(LAN; Local Area Network)
- 네트워크 매체를 이용하여 집, 사무실, 학교 등의 건물과 같은 가까운 지역을 한데 묶는 컴퓨터 네트워크
2. 무선랜 통신망(WLAN; Wireless Local Area Network)
- 유선 LAN과 무선 단말 사이를 무선 주파수를 이용하여 전송하는 네트워크
- 무선랜 표준
- 802.11a : 5GHz 대역에서 54Mbps 속도 제공
- 802.11b : 2.4GHz 대역에서 11Mbps 속도 제공
- 802.11e : QoS 강화를 위해 MAC 지원 기능을 채택, 초고속 서비스 제공
- QoS : 네트워크 상에 흐르는 데이터의 중요도를 분류하여 우선순위를 정하고, 데이터 전송에 특정 수준의 성능을 보장하기 위한 기술
- 802.11f : AP간의 로밍 기능을 향상시킨 표준
- AP : 무선랜 단말기들이 분산 시스템에 접근을 가능하게 해주는 기기
- 802.11g : 802.11b와 비슷하나 속도가 향상됨
- 802.11i : 무선랜의 보안 기능 향상
- 802.11h : 802.11e에 전파 간섭을 방지하는 기능 지원
- 802.11ac : 다중 단말의 무선랜 속도는 최소 1Gbit/s, 최대 단일링크 속도는 최소 500Mbit/s까지 가능한 기술
- 802.11ad : 60GHz 대역을 사용해 데이터를 전송하는 방식으로 대용량의 데이터나 무압축 HD 비디오 등 높은 동영상 스트리밍에 적합
- 802.11ax : 하나의 AP가 다수의 디바이스를 밀도 있게 지원하는 Capacity 최대화 Wifi 기술
3. 원거리 통신망(WAN; Wide Area Network)
- 국가망 또는 각 국가의 공중통신망을 상호 접속시키는 국제정보통신망으로 설계 및 구축, 운용되는 네트워크
- WAN 연결 기술
- 전용 회선 방식(Dedicated Line) : 통신 사업자가 사전에 계약을 체결한 송신자와 수신자끼리만 데이터를 교환하는 방식
- 회선 교환 방식(Circuit Switching) : 물리적 전용선을 활용해 데이터 전달 경로가 정해진 후 동일 경로로만 전달되는 방식
- 패킷 교환 방식(Packet Switching) : 전체 메시지를 각 노드가 수용할 수 있는 크기로 잘라서 보내는 방식
4. 전송 매체 접속 제어(MAC; Media Access Control)
- CSMA/CD(Carrier Sense Multiple Access with Collision Detection; 충돌 탐지)
- IEEE802.3 유선 LAN의 반이중 방식에서 사용하는 방식으로 각 단말이 신호 전송 전에 현재 채널이 사용 중인지 체크하여 사용하지 않을 때 전송하는 방식
- CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance; 충돌 회피)
- IEEE802.11 무선 LAN의 반이중 방식에서 사용하는 방식으로 데이터 전송 시, 매체가 비어있음을 확인한 뒤 충돌을 회피하기 위해서 임의 시간을 기다린 후 데이터를 전송하는 방식
D. 네트워크 장비
1. 1계층 장비
- 허브(Hub) : 여러 대의 컴퓨터는 연결하여 네트워크로 보내거나, 하나의 네트워크로 수신된 정보를 여러 대의 컴퓨터로 송신하기 위한 장비
- 리피터(Repeater) : 디지털 신호를 증폭시켜 주는 역할
2. 2계층 장비
- 브릿지(Bridge) : 두 개의 LAN을 서로 연결해주는 통신망 연결 장치
- L2 스위치 : 느린 전송속도의 브릿지, 허브의 단점을 개선하기 위해, 출발지에서 들어온 프레임을 목적지 MAC 주소 기반으로 빠르게 전송시키는 데이터 링크 계층의 통신 장치
- NIC(Network Interface Card) : 외부 네트워크와 접속하여 가장 빠른 속도로 데이터를 주고받을 수 있게 컴퓨터 내에 설치되는 장치
- 스위칭 허브 : 스위치 기능을 가진 허브
- 스위칭 장비의 주요 기술요소
- VLAN(Virtual Local Area Network) : 물리적 배치와 상관없이 논리적으로 LAN을 구성하여 BroadCast Domain을 구분할 수 있게 해주는 기술
- STP(Spanning Tree Protocol) : 2개 이상의 스위치가 여러 경로로 연결될 때, 무한 루프 현상을 막기 위해 우선순위에 따라 1개의 경로로만 통신하도록 하는 프로토콜
- 스위칭 장비의 주요 기술요소
3. 3계층 장비
- 라우터(Router) : LAN과 LAN을 연결하거나 LAN과 WAN을 연결하기 위한 인터넷 네트워킹 장비
- 게이트웨이(Gateway) : 프로토콜을 서로 다른 통신망에 접속할 수 있게 해주는 장치
- L3 스위치 : 3계층에서 네트워크 단위들을 연결하는 통신 장비
- 유무선 인터넷 공유기 : 외부로부터 들어오는 인터넷 라인을 연결하여 유선으로 여러 대의 기계를 연결하거나 무선 신호로 송출하면서 여러 대의 컴퓨터가 하나의 인터넷 라인을 공유할 수 있도록 하는 네트워크 장비
- 망(백본) 스위칭 허브 : 광역 네트워크를 커버하는 스위칭 허브
4. 4계층 장비
- L4 스위치 : 4계층에서 네트워크 단위들을 연결하는 통신 장비
ii. 네트워크 프로토콜 파악
A. 프로토콜
- 서로 다른 시스템이나 기기들 간의 데이터 교환을 원활히 하기 위한 표준화된 통신규약
1. 프로토콜의 기본 3요소
- 구문(Syntax) : 시스템 간의 정보 전송을 위한 데이터 형식, 코딩, 신호 레벨 등의 규정
- 의미(Semantic) : 시스템 간의 정보 전송을 위한 제어 정보로 조정과 에러 처리를 위한 규정
- 타이밍(Timing) : 시스템 간의 정보 전송을 위한 속도 조절과 순서 관리 규정
B. 네트워크 프로토콜
- 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고받는 양식과 규칙의 체계
- 프로토콜 특징
- 단편화 : 전송이 가능한 작은 블록으로 나누어지는 기법
- 재조립 : 단편화되어 온 조각들을 원래 데이터로 복원하는 기법
- 캡슐화 : 상위 계층의 데이터에 각종 정보를 추가하여 하위 계층으로 보내는 기법
- 연결 제어 : 데이터의 전송량이나 속도를 제어하는 기법
- 오류 제어 : 전송 중 잃어버리는 데이터나 오류가 발생한 데이터를 검증하는 제어 기법
- 동기화 : 송신과 수신 측의 시점을 맞추는 기법
- 다중화 : 하나의 통신 회선에 여러 기기들이 접속할 수 있는 기술
- 주소 지정 : 송신과 수신지의 주소를 부여하여 정확한 데이터 전송을 보장하는 기법
C. 데이터 링크 계층(2 계층)
- 링크의 설정과 유지 및 종료 담당, 노드 간의 회선 제어, 흐름 제어, 오류 제어 기능을 수행하는 계층
1. 데이터 링크 계층 프로토콜
- HDLC(High-level Data Link Control) : 점대점 방식이나 다중방식의 통신에 사용되는 ISO에서 표준화한 동기식 비트 중심의 데이터 링크 프로토콜
- PPP(Point-to-Point Protocol) : 네트워크 분야에서 두 통신 노드 간의 직접적인 연결을 위해 일반적으로 사용되는 데이터 링크 프로토콜
- 프레임 릴레이(Frame Relay) : 프로토콜 처리를 간략화하여 단순히 데이터 프레임들의 중계 기능과 다중화 기능만 수행함으로써 데이터 처리속도의 향상 및 전송지연을 감소시킨 고속 데이터 전송 기술
- ATM(Asynchronous Transfer Mode) : 정보전달의 기본단위를 53바이트 셀 단위로 전달하는 비동기식 시분할 다중화 방식의 패킷형 전송 기술
2. 데이터 링크 계층의 오류 제어
- 데이터 전송 시 감쇠, 왜곡, 잡음에 의해 생성된 오류를 검출하고 정정하는 기능
- 오류 제어 방식의 종류
- 전진 오류 수정(FEC; Forward Error Correction) : 데이터 전송 과정에서 발생한 오류를 검출하여 검출된 오류를 재전송 요구 없이 스스로 수정하는 방식
- 후진(역방향) 오류 수정(BEC; Backward Error Correction) : 데이터 전송 과정에서 오류가 발생하면 송신 측에 재전송을 요구하는 방식
- 자동반복 요청 방식(ARQ)의 종류
- Stop-and-Wait ARQ : 한 개의 프레임을 전송하고, 수신 측으로부터 ACK 및 NAK 신호를 수신할 때까지 정보 전송을 중지하고 기다리는 방식
- Go-back-N ARQ : 데이터 프레임을 연속적으로 전송하는 과정에서 NAK를 수신하게 되면, 오류가 발생한 프레임 이후에 전송된 모든 데이터 프레임을 재전송하는 방식
- Selective Repeat ARQ : 연속적으로 데이터 프레임을 전송하고 에러가 발생한 데이터 프레임만 재전송하는 방식
D. 네트워크 계층(3 계층)
- 다양한 길이의 패킷을 네트워크들을 통해 전달하고, 그 과정에서 전송 계층이 요구하는 서비스 품질(QoS)을 위한 수단을 제공하는 계층
1. 네트워크 계층 프로토콜
- IP(Internet Protocol) : 송수신 간의 패킷 단위로 데이터를 교환하는 네트워크에서 정보를 주고받는 데 사용하는 통신 프로토콜
- ARP(Address Resolution Protocol) : IP 네트워크상에서 IP 주소를 MAC 주소(물리주소)로 변환하는 프로토콜
- RARP(Reverse Address Resolution Protocol) : IP 호스트가 자신의 물리 네트워크 주소(MAC)은 알지만 IP 주소를 모르는 경우, 서버로부터 IP 주소를 요청하기 위해 사용하는 프로토콜
- ICMP(Internet Control Message Protocol) : IP의 동작 과정에서의 전송 오류가 발생하는 경우, 오류 정보를 전송하는 것울 목적으로 사용하는 프로토콜
- IGMP(Internet Group Message Protocol) : 인터넷 그룹 관리 프로토콜은 호스트 컴퓨터와 인접 라우터가 멀티캐스트 그룹 멤버십을 구성하는 데 사용하는 통신 프로토콜
- 라우팅 프로토콜 : 데이터 전송을 위해 목적지까지 갈 수 있는 여러 경로 중 최적의 경로를 설정해주는 라우터 간의 상호 통신 프로토콜
2. IPv4
- 인터넷에서 사용되는 패킷 교환 네트워크상에서 데이터를 교환하기 위한 32비트 주소체계를 갖는 네트워크 계층의 프로토콜
- 32비트 길이, 8비트씩 4부분
- IPv4 주소체계
- 8비트씩 4부분으로 나뉜 10진수
- IPv4의 클래스 분류
- A 클래스 : 가장 높은 단위의 클래스, 1~126 범위의 IP 주소를 가짐 / 0.0.0.0 ~ 127.255.255.255
- B 클래스 : 두 번째로 높은 단위의 클래스, 첫 번째 단위의 세 숫자는 128~191 가운데 하나 / 128.0.0.0 ~ 191.255.255.255
- C 클래스 : 최하위의 클래스, IP 구성에서 첫 번째 단위의 세 숫자는 192~223 가운데 하나 / 192.0.0.0 ~ 223.255.255.255
- D 클래스 : 멀티캐스트 용도로 예약된 주소 / 224.0.0.0 ~ 239.255.255.255
- E 클래스 : 연구를 위해 예약된 주소 / 240.0.0.0 ~ 255.255.255.255
- 서브네팅
- IP 주소 고갈문제를 해결하기 위해 원본 네트워크를 여러 개의 네트워크로 분리하는 과정
- 서브네팅 종류
- FLSM(Fixed-Length Subnet Masking)
- 서브넷의 길이를 고정적으로 사용
- 한 대역을 동일한 크기로 나누는 방식
- VLSM(Variable Length Subnet Masking)
- 서브넷의 길이를 가변적으로 사용
- 한 대역을 다양한 크기로 나누는 방식
- FLSM(Fixed-Length Subnet Masking)
3. IPv6
- 인터넷 프로토콜 스택 중 네트워크 계층의 프로토콜, 버전 6 인터넷 프로토콜로 제정된 차세대 인터넷 프로토콜
- IPv4의 문제점을 해결하기 위한 128비트 주소체계를 갖는 프로토콜
- 16비트씩 8부분으로 나뉜 16진수
4. IPv4에서 IPv6로 전환 방법
- 듀얼 스택 : IP 계층에 두 가지의 프로토콜이 모두 탑재되어 있고 통신 상대방에 따라 해당 IP 스택을 선택하는 방법
- 터널링 : IPv6 망에서 인접한 IPv4 망을 거쳐 다른 IPv6 망으로 통신할 때 IPv4 망에 터널을 만들고 IPv4에서 사용하는 프로토콜로 캡슐화하여 전송하는 방법
- 주소 변환 : IPv4 망과 IPv6 망 사이에 주소 변환기를 사용하여 서로 다른 네트워크상의 패킷을 변환하는 방법
5. IP 통신 방식
- 멀티캐스트 프로토콜 : 인터넷에서 같은 내용의 데이터를 여러 명의 특정한 그룹의 수신자들에게 동시에 전송할 수 있는 프로토콜
- 유니캐스트 프로토콜 : 고유 주소로 식별된 하나의 네트워크 목적지에 1:1로 트래픽 또는 메시지를 전송하는 프로토콜
- 브로드캐스트 프로토콜 : 하나의 송신자가 같은 서브 네트워크상의 모든 수신자에게 데이터를 전송하는 프로토콜
- 애니캐스트 프로토콜 : 하나의 호스트에서 그룹 내의 가장 가까운 곳에 있는 수신자에게 데이터를 전달하는 프로토콜
6. 라우팅 프로토콜(3 계층)
- 데이터 전송을 위해 목적지까지 갈 수 있는 여러 경로 중 최적의 경로를 설정해 주는 라우터 간의 상호 통신 규약
- 내부 라우팅 프로토콜(IGP; Interior Gateway Protocol)
- 동일한 AS 내의 라우팅에 사용되는 프로토콜
- RIP
- AS(Autonomous System) 내에서 사용하는 거리 벡터 알고리즘에 기초하여 개발된 라우팅 프로토콜
- 벨만-포드 알고리즘
- 15홉 제한
- OSPF
- 규모가 크고 복잡한 TCP/IP 네트워크에서 RIP의 단점을 개선하기 위해 자신을 기준으로 링크 상태 알고리즘을 적용하여 최단 경로를 찾는 라우팅 프로토콜
- 다익스트라 알고리즘
- 라우팅 메트릭 지정
- 외부 라우팅 프로토콜(EGP; Exterior Gateway Protocol)
- 서로 다른 AS 간 라우팅 프로토콜, 게이트웨이 간의 라우팅에 사용되는 프로토콜
- BGP(Border Gateway protocol)
- AS 상호 간에 경로 정보를 교환하기 위한 라우팅 프로토콜
- 경로-벡터 알고리즘
E. 전송 계층(4 계층)
- 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해주면서 종단 간의 사용자들에게 신뢰성 있는 데이터를 전달하는 계층
1. TCP(Transmission Control Protocol)
- 인터넷 프로토콜 스위트의 핵심 프로토콜 중 하나, IP와 함께 TCP/IP로 불림
- 전송 계층에 위치하면서 LAN이나 인트라넷, 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟을 안정적으로 순서대로 에러 없이 교환할 수 있게 해주는 프로토콜
- TCP 특징
- 신뢰성 보장 : 패킷 손실, 중복, 순서 바뀜 등이 없도록 보장
- 연결 지향적 특징 : 같은 전송계층의 UDP가 비연결성인 것과는 달리 TCP는 연결 지향적
- 흐름 제어 : 송신 및 수신 속도를 일치시킴
- 혼잡 제어 : 네트워크 혼잡 시 송신율 감속
2. UDP(User Datagram Protocol)
- 비연결성, 신뢰성이 없으며, 순서화되지 않은 데이터그램 서비스를 제공하는 전송 계층의 통신 프로토콜
- UDP 특징
- 비신뢰성 : 메시지가 제대로 도착했는지 확인하지 않음
- 순서화되지 않은 데이터그램 서비스 제공 : 수신된 메시지의 순서를 맞추지 않음
- 실시간 응용 및 멀티캐스팅 가능 : 빠른 요청과 응답이 필요한 실시간 응용에 적합
- 단순 헤더 : 헤더는 고정 크기의 8바이트만 사용
F. 세션 계층(5 계층)
- 응용 프로그램 간의 대화를 유지하기 위한 구조를 제공, 처리하기 위해 프로세스들의 논리적인 연결 담당
1. 세션 계층의 프로토콜
- RPC(Remote Procedure Call) : 별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에서 함수나 프로시저를 실행할 수 있는 프로세스 간 통신에 사용되는 프로토콜
- NetBios(Network Basic Input/Output System) : 응용계층(7 계층)의 애플리케이션에게 API를 제공하여 상호 통신할 수 있도록 해주는 프로토콜
G. 표현 계층(6 계층)
- 애플리케이션이 다루는 정보를 통신에 맞는 형태로 만들거나, 하위 계층에서 온 데이터를 사용자가 이해할 수 있는 형태로 만드는 역할 담당
- 데이터 형식 설정, 부호 교환, 압축, 암-복호화 수행
1. 표현 계층의 프로토콜
- JPEG : 이미지를 위해 만들어진 표준 규격
- MPEG : 멀티미디어를 위해 만들어진 표준 규격
H. 응용 계층(7 계층)
- 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행
- 여러 가지 프로토콜 개체에 대해 사용자 인터페이스 제공
1. 응용 계층의 프로토콜
- HTTP(HyperText Transfer Protocol) : 텍스트 기반의 통신규약으로 인터넷에서 데이터를 주고받을 수 있는 프로토콜
- FTP(File Transfer Protocol) : TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 파일을 전송하기 위한 프로토콜
- SMTP(Simple Mail Transfer Protocol) : 인터넷에서 TCP 포트 번호 25번을 사용하여 이메일을 보내기 위해 사용되는 프로토콜
- POP3(Post Office Protocol Version 3) : 원격 서버로부터 TCP/IP 연결을 통해 이메일을 가져오는 데 사용하는 프로토콜
- IMAP(Internet Messaging Access Protocol) : 원격 서버로부터 TCP/IP 연결을 통해 이메일을 가져오는 데 사용하는 프로토콜
- Telnet : 인터넷이나 로컬 영역에서 네트워크 연결에 사용되는 네트워크 프로토콜
- SSH(Secure Shell) : 강력 보안 제공, 서로 연결되어 있는 컴퓨터 간 원격 명령 실행이나 쉘 서비스 등을 수행, 공개키로 접속, 데이터 암호화
- SNMP(Simple Network Management Protocol) : TCP/IP의 네트워크 관리 프로토콜, 라우터나 허브 등 네트워크 장치로부터 정보를 수집, 관리
iii. 네트워크 전달 방식
A. 패킷 교환 방식
- 작은 블록의 패킷으로 데이터를 전송하며 데이터를 전송하는 동안만 네트워크 자원을 사용
- X.25 : 통신을 원하는 두 단말장치가 패킷 교환망을 통해 패킷을 원활히 전달하기 위한 통신 프로토콜
- 프레임 릴레이 : ISDN을 사용하기 위한 프로토콜, ITU-T에 의해 표준으로 작성됨
- ATM : 비동기 전송모드라고 하는 광대역 전송에 쓰이는 스위칭 기법
B. 서킷 교환 방식
- 네트워크 리소스를 특정 사용층이 독점하도록 하는 통신 방식
iV. 네트워크 구조
A. 애드 혹 네트워크(Ad-hoc)
- 노드들에 의해 자율적으로 구성되는 기반 구조가 없는 네트워크
- 기지국이나 액세스 포인트와 같은 기반 네트워크 장치를 필요로 하지 않는 네트워크
B. 네트워크 설치 구조
1. 버스(Bus)형 구조
- 하나의 네트워크 회선에 여러 대의 노드가 멀티 포인트로 연결된 구조 형태
2. 트리(Tree)형 구조
- 각 노드가 계층적으로 연결되어 있는 구성 형태로 나뭇가지가 사방으로 뻗은 형태
3. 링(Ring)형 구조
- 모든 노드가 하나의 링에 순차적으로 연결된 형태
4. 스타(Star)형 구조
- 각 단말 노드가 허브라는 네트워크 장비에 점 대 점으로 연결된 형태
C3. 기본 개발 환경 구축하기
iii. 응용 시스템 개발 인프라 구축
A. 개발환경 인프라 구축 개요
1. 개발환경 인프라 구성 방식
- 온프레미스(On-premise) 방식
- 외부 인터넷망이 차단된 상태에서 인트라넷 망만을 활용하여 개발환경을 구축하는 방식
- 데이터와 정보의 외부 유출이 민감할 경우 해당 장비를 자체 구매하고 특정 공간에 개발환경 구축
- 클라우드(Cloud) 방식
- 아마존, 구글, MS 등 클라우드 공급 서비스를 하는 회사들의 서비스를 임대하여 개발환경을 구축하는 방식
- 해당 장비를 초기 구매하지 않기 때문에 투자비용이 적고 구축시간 빠름
- 하이브리드 방식
- 온프레미스+클라우드
2. 개발환경 인프라 구성 장비
- 스토리지 시스템 유형
- DAS(Direct Attached Storage) : 하드 디스크와 같은 데이터 저장 장치를 호스트 버스 어댑터에 직접 연결하는 스토리지
- NAS(Network Attached Storage) : 서버와 저장 장치를 네트워크로 연결하여 구성하는 스토리지
- SAN(Storage Area Network) : 서버와 스토리지를 저장 장치 전용 네트워크로 상호 구성하여 고가용성, 고성능, 확장성을 보장하고 데이터를 블록 단위로 관리하는 스토리지
가장 먼저, 챕터 3 대부분 내용을 버렸다.
그 중에 인프라 구성과 스토리지 시스템에 대한 건 왠지 모르게 출제될 거 같아서 챙겼다.
점점 시험일이 다가오는 만큼 급해지기도 하지만 최대한 전략적으로 접근하고 싶어서 선택과 집중을 하는 중이다.
아직 가장 중요한 프로그래밍 언어 활용 과목을 핸들링 하지 못한 상태이기 때문에 더 급한 것도 있다.
그렇기 때문에 마지막으로 짧막하게 남은 열두 번째 과목인 패키징도 유기할 생각이다.
나오면 한 문제 정도가 되겠고, 출제 경향이 유기하라고 소리치고 있다.
항상 말하지만 그것 말고도 중요한게 많고, 아직 전부 다 암기하지 못 했기 때문에 계획을 잘 세워야 한다.
일단 마찬가지로 모든 내용을 암기하면 좋겠지만 그렇지 못할 수 있기 때문에 중요한 것을 추려내야하는데
세번 째로 많은 문제가 출제되는 과목이기 때문에 거르기가 쉽지 않다.
이번엔 반대로 그나마 외우기 어렵고 덜 중요한 내용을 꼽자면
명령어
무선랜 표준
정도가 될 것 같다.
명령어는 기본적으로 알고 있는 것만 챙기고, 무선랜 표준은 암기 자체가 어렵기 때문에 틀린다는 생각으로 진행하는 편이 좋을 듯 하다.
시험 준비가 참 어려운 게, 기출 문제는 재출제 되지 않는 경향이 심하기 때문에 어떤 걸 깊게 공부해야할 지 감이 안잡힌다.
진짜 전부 다 암기하고 이해하면 좋겠지만 천재가 아닌 이상 단기간에 그러기 쉽지 않다.
그나마 다행인건 20문제 중에 프로그래밍과 SQL 작성 문제가 거의 절반이 넘는 것이 다행이고, 기출 문제 근처의 개념이 조금씩 나온다는 게 한 줄기 빛이다…
일단 남아있는 프로그래밍 언어 활용 과목을 정리하고 나서 최대한 많은 유형의 언어 문제와 SQL 문제를 풀어보자.
그리고 지금까지 정리된 내용과 참고 노션 페이지 등을 활용하여 암기장을 만들고, 암기하자.