포스트

정보처리기사 실기 / 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)
      • 소프트웨어 및 관련 데이터는 중앙에 호스팅되고 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용
      • 주문형 소프트웨어





C2. 네트워크 기초 활용하기


i. 네트워크 계층 구조 파악

A. 네트워크 개념

  • 원하는 정보를 원하는 수신자 또는 기기에 정확하게 전송하기 위한 기반 인프라
  • WAN : 광대역 네트워크
  • LAN : 근거리 네트워크



B. OSI 7계층

  • 국제 표준화 기구인 ISO에서 개발한 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 개방형 시스템 상호 연결 모델
  • OSI 7 계층 특징
계층설명프로토콜전송단위
응용 계층(Application)사용자와 네트워크 간 응용서비스 연결, 데이터 생성HTTP / FTPDATA
표현 계층(Presentation)데이터 형식 설정과 부호교환, 암/복호화JPEG / MPEGDATA
세션 계층(Session)연결 접속 및 동기제어SSH / TLSDATA
전송 계층(Transport)신뢰성 있는 통신 보장TCP / UDPSegment
네트워크 계층(Network)단말기 간 데이터 전송을 위한 최적화된 경로 제공IP / ICMPPacket
데이터 링크 계층(Data Link)인접 시스템 간 데이터 전송, 전송 오류 제어이더넷Frame
물리 계층(Physical)0과 1의 비트 정보를 회선에 보내기 위한 전기적 신호 변환RS-232CBit



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)
        • 서브넷의 길이를 가변적으로 사용
        • 한 대역을 다양한 크기로 나누는 방식


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 문제를 풀어보자.

그리고 지금까지 정리된 내용과 참고 노션 페이지 등을 활용하여 암기장을 만들고, 암기하자.

이 블로그는 저작권자의 CC BY 4.0 라이센스를 따릅니다.