[정보처리기사 실기 정리] 11. 응용 SW 기초 기술 활용

전현준·2024년 4월 21일
1

정보처리기사 실기

목록 보기
12/12
post-thumbnail

11-1. 운영체제의 특징


1. 운영체제 종류

(1) 운영체제의 개념

  • 사용자가 하드웨어를 쉽게 사용할 수 있도록 인터페이스를 제공해주는 소프트웨어

  • 한정된 시스템 자원을 효과적으로 사용, 관리 및 운영함으로 편리성 제공

  • 컴퓨터 시스템과 사용자 간의 인터페이스 기능 담당

  • 운영체제 특징

    • 사용자 편리성 : 한정된 자원을 효과적으로 사용할 수 있도록 관리 및 운영
    • 인터페이스 : 컴퓨터 시스템과 사용자를 연결함
    • 스케줄링 : 다중 응용 프로그램 환경에서, 자원 분배를 위한 스케줄링 담당
    • 자원 관리 : CPU, 메모리 공간, 기억장치, 입출력 장치등의 자원 관리
    • 제어 기능 : 입출력 장치와 사용자 프로그램을 제어
  • 운영체제 커널

    • 쉘 : 사용자가 입력 시킨 명령어 라인을 읽어, 시스템 기능을 실행시킴
    • 커널 : 부팅될 때 주기억 장치에 적재된 후, 상주하며 실행, OS 핵심 기능의 집합
      • 커널의 기능
        • 프로세스 관리 : 프로세스 스케줄링 및 동기화 관리 담당
        • 기억장치 관리 : 프로세스에게 메모리 할당 및 회수 관리 담당
        • 주변장치 관리 : 입, 출력 장치 스케줄링 및 전반적인 관리
        • 파일 관리 : 파일 생성과 삭제, 변경, 유지 담당

(2) 운영체제

  • 윈도우
    • GUI 제공
    • 선점형 멀티태스킹 방식 : 여러 프로그램을 실행, 운영체제가 작 작업의 CPU 이용 시간 제어
    • 자동감지 기능 제공 : 하드웨어를 설치 했을 때 자동 감지
    • OLE 사용 : 개체를 현재 작성 중인 문서에 자유롭게 연결 또는 삽입, 편집
  • 유닉스
    • 대화식 운영체제 기능 : 프롬프트, 명령 기반 대화식 운영체제
    • 다중 작업 기능 제공 : 다수의 작업에 대해 CPU가 여러 작업을 동시에 처리 가능
    • 다중 사용자 기능 제공 : 여러 대의 단말을 연결하여, 여러 사람이 동시에 각각의 작업 수행
    • 이식성 제공 : 90%이상 C언어로 되어있고, 모듈화, 다른 하드웨어 기종으로 쉽게 이식 가능
    • 계층적 트리 구조 파일 시스템 제공 : 통합적 파일 관리 용이
    • 리눅스 운영체제
      • 오픈 소스 기반, 유닉스 기반, 데비안, 우분투, 페도라 등..
      • 유닉스와의 동일한 특징을 가진다
    • 맥 운영체제
      • 유닉스 기반으로 개발한 GUI 운영체제
    • 안드로이드 운영체제
      • 휴대 전화를 비롯한 장치를 위한 운영체제를 제공
      • 리눅스 기반, 자바와 코틀린, 런타임 라이브러리, SDK 제공

(3) 운영체제 발달 과정

  • 1세대 (일괄 처리 시스템) : 한번에 하나의 작업만 처리 가능
  • 2세대
    • 시분할 시스템 : 사용자들의 프로그램을 번갈아가며 처리
    • 다중 처리 시스템 : 한 대에 둘 이상의 CPU를 이용하여 병렬 처리
  • 3세대 (범용 시스템) : 메모리에 적재되어 실행되는 프로그램에 따라 다른 용도로 사용
  • 4세대 (분산 처리 시스템) : 서로 다른 장소에 위치한 컴퓨터 시스템에 분산시켜 상호 협력

2. 운영체제 기본 명령어 활용

(1) 운영체제 제어

  • CLI : Command Line Interface
  • GUI : Graphic User Interface

(2) 윈도우 운영체제의 기본 명령어

💡 윈도우 명령어

  • ATTRIB : 파일 속성을 표시하거나 바꿈
  • CALL : 한 프로그램에서 다른 프로그램 호출
  • CHKDSK : 디스크 검사하고 상태 보고서 표시
  • COMP : 두개 이상의 파일을 비교
  • DISKPART : 디스크 파티션 속성을 표시하거나 구성
  • ERASE / CLS / CD / EXIT

(3) 리눅스 / 유닉스 계열의 기본 명령어

💡 리눅스 명령어

  • 시스템 관련
    • uname -a : 시스템의 모든 정보를 확인
    • uname -r : 운영체제의 배포버전 출력
    • uptime : 시스템 가동 시간과 현재 사용자 수, 평균 부하량 확인 명령어
    • cat
  • 사용자
    • id : 로그인명, id, 그룹 id 등을 출력하는 명령어
    • last : 모든 사용자의 로그인과 로그아웃의 대한 명령어 표시
    • who : 현재 접속 사용자 정보 표시
  • 파일 처리 : ls / pwd / rm / cp / mv / cd
  • 프로세스
    • ps / kill / pmap : 프로세스 ID를 기준으로 메모리 맵 정보 출력
  • 파일권한 : chmod / chown
  • 네트워크
    • ifconfig
    • host : 도메인은 알고 있는데 ip 주소를 모르거나, 그 반대
  • 압축 : tar / gzip
  • 검색 : grep / find
  • 파일 이동 : cp / rsync : 로컬 또는 원격에 파일과 디렉토리 복사 후 동기화
  • 디스크 사용
    • df : 마운트된 하드디스크의 남은 용량 확인
    • du : 파일 사이즈를 KB 단위로 보여주는 명령어
  • 리눅스 / 유닉스 운영체제의 파일 접근 권한 관리
    • User, Group, Other / rwx
    • 접근 권한 변경 (chmod) chmod 664 a.txt : User (읽기, 쓰기) / Group (읽기, 쓰기) / Other (읽기) chmod a+w a.txt : 모든 사용자에게 쓰기 권한 부여 chmod u=rwx a.txt : User에게 읽기, 쓰기, 실행 권한 부여

3. 운영체제 핵심 기능 파악

(1) 메모리 관리 기법

  • 프로그램의 실행이 종료될 때까지 메모리를 가용한 상태로 유지 및 관리
  • 메모리 관리 기법
    • 반입 기법 : 주기억장치에 적재 시기 결정
    • 배치 기법 : 메모리 적재 위치 결정
    • 할당 기법 : 메모리 적재 방법 결정
    • 교체 기법 : 메모리 교체 대상 결정

  • 메모리 배치 기법초적악 : 초저녁의 악당 👿
    • 최초 적합 : 프로세스를 첫번째 공간에 할당하는 방식
    • 최적 접합 : 가용 공간 중 가장 크기가 비슷한 공간 선택, 프로세스 적재
    • 최악 적합 : 가용 공간 중 가장 큰 공간에 할당

  • 메모리 할당 기법
    • 연속 할당 기법 : 프로세스를 주기억 장치에 연속으로 할당하는 기법
    • 분산 할당 기법 : 프로세스를 여러 조각으로 나누어 분산하여 배치
      • 페이징 : 가상기억 장치를 일정하게 분할한 공간에 프로세스 적재
      • 세그멘테이션 : 가상기억 장치를 가변적인 크기로 나누고, 메모리 할당
      • 페이징/세그멘테이션 혼용

  • 메모리 교체 기법
    • 어떤 프로세스를 제거할지 결정하는 기법, 새 페이지를 할당하기 위함

    • 페이지 부재 : 프로세스를 새로 적재할 때, 주기억장치에 없을 경우 페이지 부재 발생

      💡 교체 기법 유형

      • FIFO (First in First Out): 선입 선출
      • LRU (Least Recently Used) : 가장 오랫동안 사용되지 않은 페이지 선택 후 교체
      • LFU (Least Frequently Used) : 참조 횟수가 가장 적은 페이지 선택 후 교체
      • OPT (OPTimal Replacement) : 앞으로 가장 오랫동안 사용하지 않을 페이지 교체
      • NUR (Not Used Recently) : 가장 최근에 사용하지 않은 페이지
      • SCR (Second Chance Replacement) : 페이지마다 참조 비트를 두고 FIFO 기법을 이용
        • 참조 비트가 0일 경우 교체 수행

  • 메모리 단편화
    • 내부 단편화 : 분할된 공간에 프로세스를 적재한 후 남은 공간, 페이징 기법 사용시 발생
      • 해결 방안
        • 슬랩 할당자 : 페이지 프레임을 할당받아 공간을 작은 크기로 분할, 할당, 해제
        • 통합 : 인접한 단편화 영역을 찾아 하나로 통합
        • 압축 : 메모리의 모든 단편화 영역을 하나로 압축
    • 외부 단편화 : 할당된 크기가 프로세스 크기 보다 작아서 사용하지 못하는 공간
      • 세그멘테이션 사용시 발생
      • 해결 방안
        • 버디 메모리 할당 : 메모리를 2^n 크기로 분할하여 메모리 할당
        • 통합 : 인접한 단편화 영역을 찾아 하나로 통합
        • 압축 : 메모리의 모든 단편화 영역을 하나로 압축

  • 페이징 기법의 문제 및 해결방안

    • [문제점] 스레싱 : 지속적으로 페이지 부재 발생, 페이지 교체 시간이 더 많아짐
    • [해결방안]
      • 워킹 세트 : 프로세스가 많이 참조하는 페이지들의 집합을 주기억장치에 상주, 교쳬 🔽
      • 페이지 부재 빈도 : 페이지 부재 비율에 따라 페이지 프레임 개수 조절
  • 지역성 : 주 기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 특성

    • 프로세스가 집중적으로 사용하는 페이지를 알아내는 기법

      💡 지역성의 유형

      • 시간 지역성 : 최근 사용되었더 기억장소들이 집중적으로 액세스하는 현상
      • 공간 지역성 : 일정 위치의 페이지를 집중적으로 액세스
      • 순차 지역성 : 순차적으로 액세스 되는 현상

(2) 프로세스 관리

  • 실행중인 프로그램을 의미

  • 프로세스 상태

    • 생성(Create) : 프로세스가 생성된 상태
    • 준비(Ready) : CPU를 할당 받을 수 있는 상태
    • 실행(Running) : CPU를 할당 받아 동작중인 상태
    • 대기(Waiting) : I/O 등으로 인해 대기 리스트에서 대기중인 상태
    • 완료(Complete) : 프로세스가 종료된 상태
  • 프로세스 상태 전이

    • 디스패치 : 준비 상태에 있는 프로세스 중 실행될 프로세스를 선정, Ready → Running

    • 타이머 런 아웃 : 실행중인 프로세스가 지정된 시간이 초과하면, Running → 준비 로 전이됨

    • 블록 : 입출력이나 기타 사건이 발생하면, Running → Waiting 상태로 전이됨

    • 웨이크 업 : 입출력이 종료되면 Waiting → Ready


  • 프로세스 스케줄링

    • 프로세스 사이의 우선순위를 관리하는 작업

    • 스케줄링은 처리율과 CPU 이용률을 증가, 오버헤드, 응답시간, 반환시간, 대기시간 최소화

    • 프로세스 스케줄링 유형
      - 선점형 스케줄링 : 우선순위에 따라 현재 프로세스를 중단 시키고, 새 프로세스 할당 가능
      - 비선점형 스케줄링 : 프로세스가 CPU를 할당 받으면, 새 프로세스는 CPU 점유가 불가능

      💡 선점형 스케줄링 유형

      • SRT (Shortest Remaining Time First) : 가장 짧은 시간이 소요되는 프로세스 수행
      • 다단계 큐 (MLQ) : 여러개의 큐를 이용하여 상위 단계 작업이 선점하는 방식
      • 다단계 피드백 큐 (MLFQ) : 새로운 프로세스는 높은 우선순위 할당, 실행 시간이 길어지면 점점 낮은 우선순위 큐로 이동
      • 라운드 로빈 : 동일한 크기의 CPU 시간 할당, 처리 완료 못하면 다음 프로세스 실행

      💡 비선점형 스케줄링

      • 우선순위
      • 기한부 : 명시된 시간이나 기한 내에 완료
      • HRN : 대기 중인 프로세스 중, 현재 응답률이 가장 높은 것을 선택
      • FCFS : 준비 큐에 도착한 순서대로 (FIFO)
      • SJF : 준비 큐에 있는 것들 중 실행 시간이 가장 짧은 것 선택
  • 프로세스 관리-교착상태
    • 교착상태 : 두 개 이상의 프로세스가 특정 자원 할당을 무한정 대기하는 상태
    • 교착 상태 발생 조건
      • 상호 배제 : 프로세스가 자원을 배타적으로 점유, 다른 프로세스 자원 사용 불가
      • 점유와 대기 : 한 프로세스가 자원을 점유하면서, 또 다른 자원 요청 대기
      • 비선점 : 한 프로세스가 점유한 자원에 대해 다른 프로세스가 선점 불가
      • 환형 대기 : 두개 이상의 프로세스 간 자원의 점유와 대기가 하나의 원형 구성
    • 교착상태 해결 방법
      • 예방 : 상호 배제를 제외한 나머지 교착상태 발생 조건을 부정하는 방안
      • 회피
      • 발견 : 시스템의 상태를 감시 알고리즘 통해 교착상태 검사
      • 복구 : 교착상태가 없어질 때까지 프로세스를 순차적으로 kill


11-2. 네트워크 기초 활용하기


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

(1) 네트워크 개념

  • 네트워크는 원하는 정보를원하는 수신자 또는 기기에 정확하게 전송하기 위한 인프라

(2) OSI 7계층

  • 계층을 지날 때마다 각 헤더가 붙음.

💡 OSI 7계층

  • 어플리케이션 : 사용자와 네트워크 간 응용서비스 연결
  • 표현 : 데이터 형식 설정, 부호 교환, 암, 복호화, 압축
  • 세션 : 송수신 간의 논리적인 연결, 연결 접속, 동기제어
  • 전송 계층 : 송수신 프로세스 간 연결, 데이터 분할, 재조립, 흐름 제어, 오류 제어
  • 네트워크 : 단말기 간 데이터 전송을 위한 최적화된 경로 제공
  • 데이터 링크 : 인접 시스템 간 데이터 전송, 전송 오류 제어
  • 물리 : 0과 1의 비트 정보를 회선에 보내기 위해 전기적 신호로 변환

(3) 통신망

  • 근거리 통신망 (LAN) : 전송 거리가 짧은 학교, 연구소, 병원 등의 건물 내부에서 사용
  • 무선랜 통신망 (WLAN) : 유선 LAN과 무선 단말 사이를 무선주파수를 이용, 전송하는 네트워크
  • 원거리 통신망 (WAN) : 국가망 또는 각 국가의 공중 통신망을 상호 접속시킴

💡 원거리 통신망 연결 기술

  • 전용 회선 방식 : 통신 사업자가 사전에 계약을 체결한 주체들끼리만 데이터 교환
  • 회선 교환 방식 : 물리적 전용선을 활용하여, 데이터 전달 경로를 통해 데이터 전달
  • 패킷 교환 방식 : 전체 메세지를 패킷을 잘라서 보내는 방식
  • 전송 매체 접속 제어(MAC)

    💡 전송 매체 접속 제어 방식

    • CSMA/CD (반송파 감지 다중 접속/충돌 탐지) : 현재 채널이 사용중인지 체크 후사용
    • CSMA/CA (반송파 감지 다중 접속/충돌 회피) : 충돌 회피하기 위해 임의 시간 대

(4) 네트워크 장비

  • 1계층 장비
    • 허브 : 하나의 네트워크로 수신된 정보를 여러대 컴퓨터로 송신

    • 리피터 : 디지털 신호를 증폭시켜 주는 역할


  • 2계층 장비
    • 브리지 : 두개의 LAN을 서로 연결해주는 통신망 연결 장치
    • L2 스위치 : 느린 전송 속도를 보완, 목적지 MAC 주소 기반으로 빠르게 전송
      • Store and Forwarding 방식 : 데이터 전부 받은 후 다음 처리
      • Cut Through 방식 : 데이터 목적지 주소만 확인 후 바로 전송
      • Fragment Free 방식 : 프레임의 앞 64바이트만 읽어 에러 처리, 목적지 포트로 전송
    • NIC : 컴퓨터 내에 설치되어 외부 네트워크를 도와주는 장치
    • 스위칭 허브 : 스위치 기능을 가진 허브
      • 스위치 장비의 주요 기술요소
        • VLAN : Virtual Local Area Network (논리적으로 LAN구성, 성능 향상)
        • STP : 무한 루프 현상을 막기 위해, 1개의 경로로만 통신하는 프로토콜
  • 3계층 장비
    • 라우터 : LAN과 LAN을 연결, 최적 경로 지정, 데이터를 원하는 목적지까지 전송하기 위함

    • 게이트웨이 : 서로 다른 통신망에 접속할 수 있게 해주는 장치

    • L3 스위치 : 라우터처럼 최적 경로를 설정해서 데이터 패킷 전송

    • 유무선 인터넷 공유기 : 여러 대의 컴퓨터가 하나의 인터넷 라인 공유

    • 망 스위칭 허브 : 광역 네트워크를 커버하는 스위칭 허브


  • 4계층 장비
    • L4 : 4계층에서 네트워크 단위 연결, TCP/UDP 수행. 포트포워딩 기능 제공

2. 네트워크 프로토콜 파악

(1) 프로토콜

  • 프로토콜 개념
    • 서로 데이터 교환을 원활히 하기 위한 표준화된 통신 규약, 심리학자 톰 마릴씨 : 기술적은어
    • 데이터 처리 기능, 제어 기능, 관리적 기능
  • 프로토콜 기본 3요소
    • 구문 : 데이터 형식, 코딩, 신호 레벨 등의 규정
    • 의미 : 제어 정보로 조정과 에러 처리 규정
    • 타이밍 : 속도 조절과 순서 관리 규정

(2) 네트워크 프로토콜 개념

  • 전달 방식, 통신 방식, 자료의 방식, 오류 검증 방식 등 규정

💡 프로토콜 개념

  • 단편화 : 전송이 가능한 작은 블록으로 나눔
  • 재조립 : 단편화되어 온 조각들을 원래 데이터로 복원
  • 캡슐화 : 상위 계층의 데이터에 각종 정보를 추가하여 하위 계층으로 보내는 기법
  • 연결 제어 : 데이터 전송량이나 속도 제어하는 기법
  • 오류 제어 : 전송 중 잃어버리는 데이터오류가 발생한 데이터를 검증
  • 동기화 : 송신과 수신 측의 시점을 맞춤
  • 다중화 : 하나의 통신 회선에 여러 기기들이 접속 가능
  • 주소 지정 : 송신과 수신지의 주소 부여, 정확한 데이터 전송 보장

(3) 데이터 링크 계층 (2계층)

  • 노드 간의 회선 제어, 흐름제어, 오류 제어 기능을 수행하는 계층

  • 데이터 링크 계층 프로토콜

    • HDLC : 동기식 비트 중심의 데이터 링크 프로토콜
      • 진짜 작년 2회차에 나왔는데 안나오겠지,,
    • PPP (Point-to-Point): 두 통신 노드 간의 직접적인 연결
    • 프레임 릴레이 : 데이터 프레임들의 중계기능과 다중화 기능 수행
    • ATM : 53 바이트 셀 단위로 전달하는 비동기식 시불할 다중화 방식
  • 데이터 링크 계층의 오류 제어

    • 오류 제어 개념 : 데이터 전송 시 감쇠, 왜곡, 잡음에 의해 생성된 오류를 검출
    • 오류 제어 종류 : 전진 (순방향) 오류 수정 방식, 후진 (역방향) 오류 수정 방식
      • 전진 (순방향) 오류 수정 : 검출된 오류를 재전송 요구 없이 스스로 수정
        • 해밍 코드 방식 : 직접 오류 수정, 1비트 오류 수정 가능
        • 상승 코드(부호) 방식 : 여러 개 비트 오류가 있더라도, 순차적 디코딩으로 모두 수정
      • 후진 (역방향) 오류 수정 : 오류 발생하면 송신 측에 재전송 요구함
        • 패리티 검사 : 7~8개의 비트로 구성, 패리티 비츠 추가하여 오류 검출
        • CRC : 다항식을 통해, 오류 검사, 집단 오류를 해결하기 위한 방식
        • 블록합 검사 : 이차원(가로/세로) 패리티 검사 방식
        • 자동반복 요청 방식 : 신뢰성 있는 데이터 전달을 위해, 재전송을 기반, 에러제어
  • ARQ (Automatic Repeat Request) 종류

    • Stop-and-Wait ARQ : 한 개의 프레임 전송, ACK, NAK 대기함. 한번에 한개씩 패킷 전송
    • Go-back-N ARQ : 데이터 프레임 연속적 전송, NAK 수신하면, 오류가 발생한 프레임 이후 모든 데이터 프레임 재전송
    • Selective Repeat ARQ : 연속적으로 데이터 프레임 전송, 에러 발생 시 그 데이터만 재 전송

(4) 네트워크 계층 (3계층)

  • 패킷을 네트워크들을 통해 전달, 전송 계층이 요구하는 서비스 품질 (QoS)를 위한 수단 제공

  • 라우팅, 패킷 포워딩, 인터 네트워킹 등을 수행

  • 네트워크 계층 프로토콜

    • IP : 네트워크에서 정보를 주고받는 데 사용하는 통신 프로토콜
    • ARP : IP 주소를 MAC 주소로 변환하는 프로토콜
    • RARP : MAC 주소를 통해 IP 주소를 요청하기 위해 사용하는 프로토콜
    • ICMP : 오류 정보를 전송하는 목적으로 사용하는 프로토콜, 8바이트 헤더, 가변 길이 데이터
    • IGMP : 멀티캐스트 그룹 멤버십을 구성하는 데 사용하는 통신 프로토콜, 화상회의, IPTV
    • 라우팅 프로토콜 : 여러 경로 중 최적의 경로를 설정해주는 통신 프로토콜
    • NAT : 사설 IP를 공인 IP로 바꿔주는 네트워크 주소 변환 기술
  • IPv4 : 32비트 주소체계를 갖는 네트워크 계층의 프로토콜

    • 헤더 : 각종 제어정보를 담고 있는 부분, 옵션 미지정시 최소 20바이트 이상
    • 주소 : Network 주소와 Host 주소를 구분하는 서브넷 마스크
    • 서브네팅 : IP 주소 고갈 문제를 해결하기 위해, 원본 네트워크를 여러개의 네트워크로 분리
      • 네트워크 ID / 서브넷 ID / 호스트 ID
      • 호스트 IP : 모두 0으로 채우고 / 브로드 캐스트 IP는 : 모두 1로 채우는 기법
      • FLSM : 서브넷의 길이를 고정적으로 사용
      • VLSM : 서브넷의 길이를 가변적으로 사용

💡 서브넷 계산하기
192.168.1.0/24 를 FLSM 방식을 이용하여 9개의 서브넷으로 나눔,
7번째 서브 네트워크의 가능한 IP 주소는?

1. 2진수로 변경한다
11000000.10101000.00000001.00000000

2. 필요한 서브넷 개수로 구간을 나눈다. 9개면 4개의 비트로 구성, 16개 보장되어야함
11000000.10101000.00000001.0000 0000
| ——— 네트워크 ID————|서브넷| 호스트|

3. 7번째 서브넷을 찾는다. 0000 부터 시작함
- 11000000.10101000.00000001.01100000 → 호스트 IP
- 11000000.10101000.00000001.01101111 → 네트워크 IP

4. 두가지를 제외한 구간을 찾는다.
- 11000000.10101000.00000001.01100001 → 192.168.1.97
- 11000000.1010.1000.00000001.01101110 → 192.168.1.110

  • IPv6 : IPv4의 주소 고갈, 보안성, 이동성 지원의 문제 해결, 128비트 주소체계

    • IP 주소의 확장 : 128비트로 확장
    • 이동성 : 물리적 위치에 제한 받지 않고, 같은 주소를 유지
    • 인증 및 보안 기능 : 패킷 출처 인증과 데이터 무결성 및 비밀 보장 기능
    • 개선된 QoS : 흐름 레이블 개념 도입, 특별한 처리를 통해 높은 품질의 서비스 제공
    • Plug & Play : IPv6 네트워크에 접속하는 순간, 자동적으로 네트워크 주소 할당
    • Ad-hoc 네트워크 지원 : 자동으로 네트워크 환경 구성 가능
    • 단순 헤더 적용 : 40바이트의 고정 크기의 단순 헤더 사용, 확장 헤더도 가능
    • 실시간 패킷 추적 가능 : 흐름 레이블을 사용, 패킷의 흐름 실시간 제공
  • IPv6 주소체계

    • 16 비트 단위로 구분, 앞 64비트는 네트워크 주소, 뒤 64비트는 인터페이스 주소
    • 0 생략 가능 → 2001:0D88:0000:0000:0000:0000:1428:57ab2001:0D88::1428:57ab
  • IPv4 → IPv6

    • 듀얼 스택 : IP 계층에 두가지 프로토콜 모두 탑재, 통신에 따라 해당 IP 스택 선택
      • DNS가 두 IP 주소 유형을 모두 지원, 프로토콜 스택 수정으로 인한 과다한 비용
    • 터널링 : IPv4 망에 터널을 만들고, 캡슐화하여 IPv6 망으로 통신
      • 여러 표준화 활동 존재, 다양한 기술 표준 제안, 구현 복잡
    • 주소 변환 : IPv4 망과 IPv6 사이에 주소 변환기를 사용하여 다른 네트워크 상 패킷 변환
      • 고가의 주소 변환기 필요

  • IP 통신 방식

    • 멀티캐스트 프로토콜 = 멀티캐스트 라우팅 프로토콜 + 그룹관리 프로토콜 (IGMP)
    • 유니캐스트 프로토콜 : 1:1로 트래픽 또는 메세지 전송
    • 브로드캐스트 프로토콜 : 같은 서브 네트워크상 모든 수신자에게 데이터 전송
    • 애니캐스트 프로토콜 : 가장 가까운 곳에 있는 수신자에게 데이터를 전달하는 프로토콜
  • 라우팅 프로토콜 (3계층)

    • 데이터 전송을 위해 목적지까지 갈 수 있는 여러 경로 중 최적의 경로 설정
    • 내부 라우팅 프로토콜 (IGP) : 동일한 AS 내에 라우팅에 사용하는 프로토콜
      • RIP : 벨만-포드 알고리즘, 15홉 제한, UDP 사용, 30초 마다 정보 공유
      • OSPF (Open Shortest Path First) : 다익스트라 알고리즘 사용(변경이 발생했을 때만)
        • 멀티캐스팅 지원, 홉 카운트 무제한
      • 라우팅 알고리즘 : 목적지 까지 최적 경로를 산출하기 위한 법칙
        • 거리 벡터 알고리즘 : 벨만-포드 알고리즘
        • 링크 상태 알고리즘 : 링크 상태 정보를 트리로 구성하는 라우팅 알고리즘
    • 외부 라우팅 프로토콜 (EGP) : 서로 다른 AS 간 사용하는 라우팅 프로토콜
      • BGP : 경로 정보를 교환하기 위한 라우팅 프로토콜
        • 가장 짧은 경로를 경로 벡터 알고리즘을 통해 선정, 라우팅 비용 ⬆️

(5) 전송 계층 (4계층)

  • 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해주면서,

  • 종단 간 사용자들에게 신뢰성 있는 데이터 전달하는 계층

  • TCP

    • 신뢰성 보장
    • 연결 지향적 특징
    • 흐름제어 : 송신 전송률, 수신 처리율 속도를 일치시킴
    • 혼잡 제어 : 혼잡제어 기법을 사용하여 송신율 감속
  • UDP

    • 비신뢰성 : 확인 응답 없음
    • 순서화되지 않은 데이터그램 서비스 제공 : 수신된 메세지의 순서가 없음
    • 실시간 응용 및 멀티캐스팅 가능
    • 단순 헤더 : 고정 크기 8바이트만 사용 (TCP는 20바이트)

(6) 세션 계층 (5계층)

  • 응용 프로그램 간의 대화를 유지하기 위한 구조 제공, 프로세스들의 논리적 연결 담당
  • TCP/IP 세션 연결의 설정과 해제, 세션 메세지 전동 기능
  • 세션 계층의 프로토콜
    • RPC : 원격 프로시저 호출, 다른 주소 공간에서 함수나 프로시저 실행
    • NetBIOS : 어플리케이션 프로그램에게 API 제공

(7) 표현 계층 (6계층)

  • 데이터를 사용자가 이해할 수 있는 형태로 만드는 역할 담당
  • 데이터 형식의 설정, 부호 교환, 압축, 암.복호화 수행
  • 표현 계층 프로토콜
    • JPEG : 이미지를 위해 만들어진 규격
    • MPEG : 멀티미디어를 위해 만들어진 규격

(8) 응용계층 (7계층)

  • 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행

💡 응용 계층의 프로토콜

  • HTTP : 80
  • FTP : 20, 21
  • SMTP (이메일) : 25
  • POP3 (TCP/IP 연결을 통해 이메일을 가져옴, 동기화 X) : 110
  • IMAP (TCP/IP 연결을 통해 이메일을 가져옴, 동기화 O) : 143
  • Telnet (네트워크 연결에 사용되는 프로토콜) : 23
  • SSH (원격 명령 실행, 쉘 서비스, 원격 접속) : 22
  • SNMP (네트워크 관리, 라우터나 허브 등 네트워크 장치로 부터 정보 수집) : 161
  • DNS (호스트 → 네트워크 주소) : 53
  • DHCP (IP 주소 동적 할당, 관리) : 67, 68
  • HTTPS (HTTP의 보완 강화) : 443

3. 네트워크 전달 방식

(1) 패킷 교환 방식

  • 작은 블록의 패킷으로 데이터 전송, 네트워크 자원을 사용하도록 하는 통신 방식

  • WAN을 통해 데이터를 원격 전송

  • X.25 : 패킷 교환망을 통해 패킷을 원활히 전달

    • 고정된 대역폭, 패킷 사용, 1~3 계층 담당, 송수신 신뢰성, 성능 저하 (오버헤드)
  • 프레임 릴레이 : ISDN을 사용하기 위한 프로토콜

    • 유연한 대역폭, 기능 단순화, 1~2 계층 담당, 가격이 저렴
  • ATM : 비동기 전송 모드라고 하는 광대역 전송에 쓰이는 스위칭 기법

    • 53바이트 쉘 단위로 전달하는 비동기식 시분할 다중화 방식
    • ATM 계층
      • AAL : 패킷을 작은 조각인 셀로 전송, 원래의 데이터로 재조합
      • ATM 계층 : 셀과 셀 전송 역할 담당, 가상 회선의 연결 및 해제, 혼잡 제어
      • 물리 계층 : 물리적 전송 매체를 처리하는 역할 담당
  • 패킷 교환 방식의 종류

    • 데이터그램 방식 : 연결 경로를 확립하지 않고, 각각의 패킷을 순서에 무관하게 독립적 전송
      • 헤더를 붙여 개별적으로 전달하는 비연결형 교환 방식
    • 가상 회선 방식 : 패킷이 전송되기 전에 송, 수신 스테이션 간의 논리적인 통신 경로 설정
      • 목적지 호스트와 미리 연결 후 통신, 연결형 교환 방식

(2) 서킷 교환 방식

  • 네트워크 리소스를 특정 사용층이 독점하도록 하는 통신 방식
    • 전송 보장 : 네트워크를 독점적으로 사용
    • 서킷 확보 작업 : 서킷을 확보하기 위한 작업 진행, 실 데이터 전송

4. 네트워크 구조

(1) 애드 혹 네트워크

  • 노드들에 의해 자율적으로 구성되는 기반 구조가 없는 네트워크
  • 기지국이나 엑세스 포인트와 같은 기반 네트워크 장치를 필요로 하지 않는 네트워크
  • 무선 인터페이스를 사용하여 서로 통신

(2) 네트워크 설치 구조

  • 버스형 구조
    • 장점 : 구조 단순, 설치 용이, 노드 추가 삭제 용이
    • 단점 : 노드를 무분별하게 추가하면 네트워크 성능 저하, 특정 부분 고장 시 전체 영향
  • 트리형 구조
    • 장점 : 허브만 준비되어 있으면 많은 단말 노드 쉽게 연결 가능
    • 단점 : 허브가 고장이 나면 연결된 단말 노드의 네트워크 제한
  • 링형 구조 : 모든 노드가 하나의 링에 순차적으로 연결
  • 성형 구조 : 중앙 허브에 연결하는 구조

(3) 다중화기

  • 하나의 회선을 통해 일정한 시간이나 주파수로 나누어 전송하는 장비
    • 주파수 분할 다중화 : 하나의 주파수 대역폭을 다수의 작은 대역폭으로 분할 후 전송
    • 시간 분할 다중화 : 회선의 대역폭을 일정 시간으로 분할하여 전송
    • 코드 분할 다중화 : 정해진 주파수 대역에 서로 다른 코드를 사용하여 동일한 주파수로 접속



11-3. 기본 개발환경 구축


1. 개발 인프라 구축

(1) 개발환경 인프라 구축 개념

  • 개발 프로세스를 지원하고 향상시키기 위해 필요한 기반이나 환경 구축

  • 개발 환경 인프라 구축 방식

    • 온 프레미스 방식 : 외부 인터넷 차단, 인트라넷망만 활용
    • 클라우드 방식 : 클라우드 공급 서비스를 하는 회사들의 서비스를 임대하여 개발환경 구축
    • 하이브리드 방식 : 온프레미스와 클라우드 방식 혼용
  • 개발 환경 인프라 구축 장비

    • DAS : 하드 디스크와 같은 데이터 저장 장치를 직접 연결
    • NAS : 서버와 저장장치를 네트워크로 연결하여 구성
    • SAN : 서버와 스토리지를 저장 장치 전용 네트워크로 구성, 고가용성, 고성능 보장
  • RAID : 다수의 저장장치를 배열로 구성

    • RAID 0 : 두개 이상의 디스크에 패리티 없이 분산하여 구성
    • RAID 1 : 두개 이상의 디스크에, 패리티가 없이 미러링하여 구성
    • RAID 2 : 오류정정부호(ECC) 기록하는 전용 하드 디스크 구성 실제 데이터 4개, ECC 3개
    • RAID 3 : 데이터는 바이트 단위 스트라이핑 형태로 구성, 패리티 정보는 전용 디스크에 저장
    • RAID 4 : 데이터는 블록 단위 스트라이핑 형태로 구성, 패리티 정보는 전용 디스크에 저장
    • RAID 5 : 패리티가 모든 디스크에 나뉘어 저장함
    • RAID 6 : 패리티 정보가 두번 독립적으로 분산되어 저장함

(2) 클라우드 기반 개발 인프라 구축

  • 가상화 : 물리적인 리소스를 여러개 보이게 하는 기술

    • 가상화를 통해 서버의 가동률을 60~70% 이상으로 올릴 수 있음
  • 가상화의 종류

    • 플랫폼 가상화 : 독립된 환경을 만들어 낸 것처럼 보여주는 기법
    • 리소스 가상화 : 독립된 하드웨어에서 소프트웨어가 실행되는 것 처럼 활용
  • 가상화 기술요소

    • 컴퓨팅 가상화 : 컴퓨터 리소스를 가상화하여 논리적 단위로 리소스 활용
    • 스토리지 가상화 : 스토리지를 논리적으로 활용할 수 있는 기술
    • I/O 가상화 : 서버와 I/O 디바이스 사이에 위치하는 미들웨어 계층
    • 컨테이너 : 컨테이너화 된 어플리케이션들이 단일 운영체제 상에서 실행되도록 해주는 기술
    • 분산처리 기술 : 계산 문제나 대용량의 데이터를 처리하고 저장하는 기술
    • 네트워크 가상화 : 중계 장치(라우터, 스위치)의 가상화를 통한 가상 네트워크 지원

(3) 클라우드 컴퓨팅

  • 사설 클라우드 : 기업 또는 조직 내부에서 보유하고 있는 컴퓨팅 자원 사용

  • 공용 클라우드 : 클라우드 서비스 제공 업체에서 다중 사용자를 위한 클라우드 제공

  • 하이브리드 클라우드 : 사설 클라우드와 공용 클라우드 모두 사용하는 클라우드

  • 클라우드 서비스 유형

    • IaaS : 서버, 스토리지 같은 시스템 자원을 클라우드로 제공
    • PaaS : 어플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼
    • SaaS : 소프트웨어 및 관련 데이터는 중앙에 호스팅, 클라이언트를 통해 접속
profile
백엔드 개발자 전현준입니다.

2개의 댓글

comment-user-thumbnail
2024년 4월 23일

잘보고있어요~ 감사합니다

1개의 답글

관련 채용 정보