그냥 게임개발자

11장 응용 SW 기초 기술 활용 본문

나만의 정처기 공부

11장 응용 SW 기초 기술 활용

sudoju 2022. 4. 28. 23:59

 

Chapter01 운영체제의 특징

■ 운영체제(OS: Operating System) : 사용자가 컴퓨터의 하드웨어를 쉽게 사용할 수 있도록 인터페이스를 제공해주는 소프트웨어

 

운영체제는 크게 인터페이스(쉘) + 커널의 구조

  • 커널(Kernel) : 운영체제의 핵심이 되는 기능들이 모여 있는 컴퓨터 프로그램

■ 운영체제 종류 : 윈도즈, 유닉스, 리눅스, 맥, 안드로이드

  • 윈도즈 : MS-DOS의 멀티태스킹 기능과 GUI 환경을 제공하는 마이크로소프트사가 개발한 운영체제
    • 윈도즈 운영체제 특징(지선자오)
      • GUI 제공 : 키보드 없이 마우스로 아이콘이나 메뉴 선택
      • 선점형 멀티태스킹 방식 제공 : 동시에 여러 개의 프로그램 실행, 각 작업 CPU 이용 시간 제어
      • 자동감지 기능 제공 : 하드웨어 설치 필요한 시스템 환경을 자동으로 구성
      • OLE 사용 : 개체를 현재 작성 중인 문서에 자유롭게 연결 또는 편집 가능
  • 유닉스 : 데니스 리치와 켄 톰슨 등이 함께 벨 연구소를 통해 만든 운영체제 90%이상 C언어
  • 리눅스 : 유닉스 기반으로 개발, 소스코드가 공개된 오픈 소스 기반 운영체제

리눅스/유닉스 운영체제 파일 접근제어

  • 명령어 : chmod
  • 접근 권한 유형 : User, Group, Other
  • 파일 접근 모드 : R = 4, W = 2, X = 1
  • 접근 권한 변경 : ex) chmod go-w a.text, chmod 467 a.text
  •  

■ 메모리 관리 기법(반배할교)

  • 반입 기법 : 메모리 적재 시기 결정(when)
  • 배치 기법 : 메모리 적재 위치 결정(Where)
  • 할당 기법 : 메모리 적재 방법 결정(How)
  • 교체 기법 : 메모리 교체 대상 겨정(Who)

■ 메모리 배치 기법

  • 최초 적합(First-fit) : 프로세스가 적재될 수 있는 가용 공간 중에서 첫 번째 분할에 할당하는 방식
  • 최적 적합(Best-fit) : 가용 공간 중에서 가장 크기가 비슷한 공간을 선택하여 프로세스를 적재하는 방식
  • 최악 적합(Worst-fit) : 프로세스의 가용 공간들 중에서 가장 큰 공간에 할당하는 방식

■ 프로세스 상태(생준실대완)

  • 생성(Create) 상태 : 사용자에 의해 프로세스가 생성된 상태
  • 준비(Ready) 상태 : CPU를 할당받을 수 있는 상태
  • 실행(Running) 상태 : 프로세스가 CPU를 할당받아 동작 중인 상태
  • 대기(Waiting) 상태 : 프로세스 실행 중 입출력 처리 등으로 인해 CPU를 양도하고 입출력 처리가 완료까지 대기 리스트에서 기다리는 상태
  • 완료(Complete) 상태 : 프로세스가 CPU를 할당받아 주어진 시간 내에 완전히 수행을 종료한 상태

■ 프로세스 상태 전이

 

  • 디스패치(Dispatch) : 준비 상태에 있는 여러 프로세스 중 실행될 프로세스를 선정하여 CPU 할당
    • 프로세스는 준비 상태에서 실행상태로 전이
  • 타이머 런 아웃(Timer Run Out) : CPU를 할당받은 프로세스는 지정된 시간이 초과되면 스케줄러에 PCB저장, CPU 반납 후 다시 준비상태로전이
    • 프로세스는 실행 상태에서 준비 상태로 전이
  • 블록(Block) : 실행 상태에 있는 프로세스가 지정된 할당시간을 초과하기 전에 입출력이나 기타 사건이 발생하면 CPU를 스스로 반납, 입출력이 완료될 때까지 대기
    • 프로세스는 실행 상태에서 준비 상태로 전이
  • 웨이크 업(Wake-up) : 어느 순간에 입출력이 종료되면 대기 상태의 프로세스에게 입출력 종료 사실을 wait & signal 등에 의해 알려주고 준비상태로 전이
    • 프로세스는 대기 상태에서 준비상태로 전이

프로세스 스케줄링 : CPU를 사용하려고 하는 프로세스들 사이의 우선순위를 관리하는 작업

프로세스 스케줄링 주요 용어

  • 서비스 시간 : 프로세스가 결과를 산출하기까지 소요되는 시간
  • 응답시간 : 프로세스들이 입력되어 서비스를 요청, 반응하기 시작할 때까지 소요되는 시간
  • 반환시간 : 프로세스들이 입력되어 수행하고 결과를 산출하기까지 소요되는 시간
    반환시간 = 대기시간 + 수행시간
  • 대기시간 : 프로세스가 프로세서에 할당 대기까지 큐에 대기하는 시간
  • 평균 대기시간 : 프로세스가 대기 큐에서 대기하는 평균시간
  • 종료시간 : 요구되는 프로세싱 타임을 모두 수행하고 종료된 시간
  • 시간 할당량 : 한 프로세스가 프로세서를 독점하는 것을 방지하기 위해 서비스되는 시간 할당량
  • 응답률 : (대기시간 + 서비스시간) / 서비스 시간, HRN 스케줄링에서 사용 응답률이 높으면 우선순위가 높다고 판단

※ 시분할 시스템(Time Sharing System) : CPU 스케줄링과 다중 프로그래밍을 이용해서 각 사용자들에게 컴퓨터 자원을 시간적으로 분할하여 사용할 수 있게 해주는 대화식 시스템

■ 프로세스 스케줄링의 유형

  • 선점형 스케줄링 : 우선순위가 높은 프로세스가 CPU를 점유하는 스케줄링(SMMR)
    • 라운드 로빈(Round Robbin) : 프로세스는 같은 크기의 CPU 시간 할당
    • SRT(Shortest Remaining Time First) : 가장 짧은 시간이 소요되는 프로세스를 먼저 수행
    • 다단계 큐(Multi Level Queue) : 여러 개의 큐를 이용하여 상위단계 작업에 의한 하위단계 작업이 선점
    • 다단계 피드백 큐(Multi Level Feedback Queue) : 큐마다 서로 다른 CPU시간 할당량을 부여, FIFO + 라운드 로빈 스케줄링 기법 혼합
  • 비선점형 스케줄링 : 한 프로세스가 CPU를 할당 받으면 작업 종료 전까지 다른 프로세스는 CPU 점유 불가능한 스케줄링(우기 HFS)
    • 우선순위(Priority) : 프로세스별 우선순위에 따라 CPU 할당
    • 기한부(Deadline) : 작업들이 명시된 기한 내에 완료되도록 계획
    • FCFS(First Come First Service) : 프로세스가 대기 큐에 도착한 순서에 따라 CPU 할당 = FIFO
    • SJF(Shortest Job First) : 가장 짧은 작업부터 수행, 평균 대기 시간 최소화, 기아현상 발생
    • HRN(Highest Resaponse Ratio Next) : 대기중인 프로세스 중 현재 응답률이 가장 높은 것을 선택, 기아 현상 최소화 기법

※ 기아 현상 : 시스템 부하가 많아서 준비 큐에 있는 낮은 등급의 프로세스가 무한정 기다리는 현상

(반종도 대반서)

반환시간 = 종료시간 - 도착시간

대기시간 = 반환시간 - 서비스 시간

 

프로세스 관리-교착상태

  • 교착상태 : 다중 프로세싱 환경에서 두 개 이상의 프로세스가 특정 자원활당을 무한정 대기하는 상태
  • 교착상태 발생 조건(상점비환)
    • 상호 배제 : 프로세스가 자원을 배타적으로 점유하여 다른 프로세스가 그 자원을 사용할 수 없는 상태
    • 점유와 대기 : 한 프로세스가 자원을 점휴하고 있으면서 또 다른 자원을 요청하여 대기하고 있는 상태
    • 비선점 : 한 프로세스가 점유한 자원에 대해 다른 프로세스가 선점할 수 없고 오직 점유한 프로세스만이 해제 가능한 상태
    • 환형 대기 : 두 개 이상의 프로세스 간 자원의 점유와 대기가 하나의 원형을 구성한 상태
  • 교착상태 해결 방법(예회발복)
    • 예방 : 상호 배제를 제와한 나머지 교착상태 발생 조건을 위배하는 방안
    • 회피 : 안전한 상태를 유지할 수 있는 요구만 수락
    • 시스템의 상태를 감시 알고리즘 통해 교착상태 검사
    • 복구 : 교착상태가 없어질 때까지 프로세스를 순차

※ 은행가 알고리즘(Banker's Algorithm) : 사용자 프로세스는 사전에 자기 작업에 필요한 자원의 수를 제시하고 운영체제가 자원의 상태를 감시 안정상태일 때만 자원을 할당

 

가상화 (Virtualization) : 물리적인 리소스들을 사용자에게 하나로 보이게 하거나, 하나의 물리적인 리소스를 여러 개로 보이게 하는 기술

  • 가상화의 종류
    • 플랫폼 가상화 : 하드웨어 플랫폼 위에서 실행되는 호스트 프로그램이 게스트 프로그램을 만들어 마치 독립된 환경을 만들어 낸 것처럼 보여주는 기법
    • 리소스 가상화 : 게스트 소프트웨어 위에서 사용자는 독립된 하드웨어에서 소프트웨어가 실행되는 것처럼 활용하는 기법
  • 가상화 기술요소
    • 컴퓨팅 가상화 : 물리적으로 컴퓨터 리소스를 가상화하여 논리적 단위로 리소스를 활용할 수 있도록 하는 기술
    • 스토리지 가상화 : 스토리지와 서버 사이에 소프트웨어/하드웨어 계층을 추가하여 스토리지를 논리적으로 제어 및 활용할 수 있도록 하는 기술
    • I/O 가상화 : 서버의 I/O 자원을 물리적으로 분리, 케이블과 스위치 구성을 단순화하여 효율적인 연결을 지원하는 기술
    • 컨테이너 : 컨테이너화된 애플리케이션들이 단일 운영체제상에서 실행되도록 해주는 기술
    • 분산처리 기술 : 여러 대의 컴퓨터 계산 및 저장능력을 이용하여 커다란 계산문제나 대용량의 데이터를 처리하고 저장하는 기술
    • 네트워크 가상화 기술 : 물리적으로 떨어져 있는 다양한 장비들을 연결하기 위한 수단으로 중계장치의 가상화를 통한 가상 네트워크를 지원하는 기술

 클라우드 컴퓨팅(Cloud Computing) : 인터넷을 통해 가상화된 컴퓨터 시스템 리소스 제공

클라우드 컴퓨팅 분류(사공하)

  • 사설 클라우드 : 기업 또는 조직 내부에서 보유하고 있는 컴퓨팅 자원을 사용, 내부에 구축되어 운영되는 클라우드
  • 공용 클라우드 : 클라우드 서비스 제공 업체에서 다중 사용자를 위한 컴퓨팅 자원 서비스를 제공하는 클라우드
  • 하이브리드 클라우드 : 기업 또는 조직 내부 자원을 이용한 사설 클라우드와 공용 클라우드를 모두 사용하는 클라우드

클라우드 컴퓨팅 유형 (인플소)

  • 인프라형 서비스(IaaS : Infrastructure as a Service) : 서버, 스토리지 같은 시스템 자원을 클라우드로 제공하는 서비스
  • 플랫폼형 서비스(PaaS : Platform as a Service) : 애플리케이션 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공하는 서비스
  • 소프트웨어형 서비스(SaaS : Software as a Service) : 클라이언트를 통해 접속하여 소프트웨어 서비스 형태로 이용하는 서비스

 

Chapter02 네트워크 게층 구조 파악

 

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

  • 광대역 네트워크(WAN) : LAN에 비해 전송거리가 넓음
  • 근거리 네트워크(LAN) : 한 건물 또는 작은 지역 커버

OSI(Open System Interconnection) 7계층(아파서 티내다 피나다)

  • 응용 계층(Application Layer) : 사용자와 네트워크 간 응용서비스 연결, 데이터 생성
  • 표현 계층(Presentation Layer) : 데이터 형식 설정, 부호 교환, 암/복호화
  • 세션 계층(Session Layer) : 송수신 간의 논리적인 연결
  • 전송 계층(Transport Layer) : 송수신 프로세스 간의 연결
  • 네트워크 계층(Network Layer) : 단말기 간 데이터 전송을 위한 최적화된 경로 제공
  • 데이터링크 계층(Data Link Layer) : 인접 시스템 간 데이터 전송, 전송 오류 제어
  • 물리 계층(Physical Layer) : 0과 1의 비트 정보를 회선에 보내기 위한 전기적 신호 변환

네트워크 장비

  • 1계층
    • 허브 : 여러 대의 컴퓨터를 연결하여 네트워크로 보내거나, 하나의 네트워크로 수신된 정보를 여러 대의 컴퓨터로 송신하기 위한 장비
    • 리피터 : 디지털 신호 증폭 시켜주는 역할
  • 2계층
    • 브리지 : 두 개의 LAN을 서로 연결해주는 통신망 연결장치
    • L2스위치 : 느린 전송속도의 브리지, 출발지에서 들어온 프레임을 목적지 MAC주소 기반으로 빠르게 전송시키는 장치
    • NIC : Network Interface Card의 약자, 외부 네트워크와 접속하여 가장 빠른 속도로 데이터를 주고받을 수 있게 컴퓨터 내에 설치되는 장치
    • 스위칭 허브 : 스위치 기능을 가진 허브
  • 3계층
    • 라우터 : LAN과 LAN을 연결, LAN과 WAN을 연결하기 위한 인터넷 네트워킹 장비
    • 게이트 웨이 : 프로토콜을 서로 다른 통신망에 접속할 수 있게 해주는 장치
    • L3 스위치 : 3계층에서 네트워크 단위들을 연결하는 통신 장비(IP 레이어 스위칭 수행)
    • 유무선 인터넷 공유기 : 여러 대의 컴퓨터가 하나의 인터넷 라인을 공유할 수 있도록 하는 네트워크 장비
    • 망(백본)스위칭 허브 : 광역 네트워크를 커버하는 스위칭 허브
  • 4계층
    • L4 스위치 : 4계층에서 네트워크 단위들을 연결하는 통신장비(TCP/UDP 등 스위칭 수행)

프로토콜(Protocol) : 서로 다른 시스템이나 기기들 간의 데이터 교환을 원활히 하기 위한 표준화된 통신규약

프로토콜 기본 3요소(구의타)

  • 구문(Syntax) : 시스템 간의 정보 전송을 위한 데이터 형식, 코딩, 신호 레벨 등의 규적
  • 의미(Semantic) : 시스템 간의 정보 전송을 위한 제어 정보로 조정과 에러 처리를 위한 규정
  • 타이밍(Timing) : 시스템 간의 정보 전송을 위한 속도 조절과 순서 관리 규정

네트워크 프로토콜(Network Protocol) : 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고받는 양식과 규칙의 체계

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

데이터 링크 계층(Data Link Layer) 프로토콜

  • HDLC(High Level Data Link Control) : 점대점 방식이나 다중방식 통신에 사용, 동기식 비트 중심 프로토콜
  • PPP(Point to Point Ptorocol) : 네트워크 분야에서 두 통신 노드 간의 직접적인 연결
  • 프레임 릴레이(Frame Relay) : 프로토콜 처리를 간략화하여 데이터 처리 속도의 향상 및 전송 지연을 감소시킨 고속 데이터 전송 기술
  • ATM(Asynchronous Transport Mode) : 53바이트 셀 단위로 전달하는 비동기식 시분할 다중화 방식의 패킷형 전송 기술

※ 회선 제어 - 두 개의 스테이션이 동시에 신호를 전송하는 경우 신호 간 충돌이 발생하지 않도록 제어하는 기술

흐름 제어 - 전송 스테이션으로 하여금 전송 데이터의 양을 제한하기 위해서 사용되는 기술

오류 제어 - 하위 두 계층(1, 2계층) 사이에 데이터의 전송 오류를 검출하여 복구하는 기술

 

 

네트워크 계층 프로토콜

  • IP(Internet Protocol) : 송수신 간의 패킷 단위로 데이터를 교환하는 네트워크에서 정보를 주고받는 데 사용
  • ARP(Address Resolution Protocol) : IP네트워크 상에서 IP주소를 MAC주소(물리주소)로 변환하는 프로토콜
  • RARP(Reverse Address Resolution Protocol) : 서버로부터 IP 주소를 요청하기 위해 사용하는 프로토콜
  • ICMP(Internet Control Message Protocol) : IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜
  • IGMP(Internet Group Management Protocol) : 호스트 컴퓨터와 인접 라우터가 멀티캐스트 그룹 멤버십을 구성하는 데 사용하는 통신 프로토콜
  • 라우팅 프로토콜(Routing Protocol) : 데이터 전송을 위해 최적의 경로를 설정해주는 라우터 간의 상호 통신 프로토콜

IPv4 : 인터넷에서 사용되는 패킷 교환 네트워크상에서 데이터를 교환하기 위한 32비트 주소체계를 갖는 네트워크 계층 프로토콜(유멀브)

  • 8비트씩 4부분으로 나뉜10진수
  • 0~255까지 3자리수 표현
  • 유니캐스트, 멀티캐스트, 브로드캐스트

IPv4 클래스 분류

  • A클래스 : 국가나 대형 통신망에 사용(1~127)
  • B클래스 : 중대형 통신망에 사용(128~191)
  • C클래스 : 소규모 통신망에 사용(192~223)
  • D클래스 : 멀티캐스트 용도로 예약된 주소(224~239)
  • E클래스 : 연구를 위해 예약된 주소(240~255)

IPv6 : IPv4의 주소 부족 문제를 해결하기 위해 개발(유멀애)

  • IPv4에 비해 자료 전송속도가 빠름
  • 128비트 주소체계
  • 16비트씩 8개 부분으로 나눈 16진수
  • 유니캐스트, 멀티캐스트, 애니캐스트

IPv4에서 IPv6으로 전환 방법

  • 듀얼 스택
    • 듀얼 스택은 IP 계층에 두 가지(IPv4, IPv6)의 프로토콜이 모두 탑재되어 있고 통신 상대방에 따라 해당 IP 스택을 선택하는 방법
  • 터널링
    • IPv6망에서 인접한 IPv4망을 거쳐 다른 IPv6망으로 통신할 때 IPv4 망에 터널을 만들고 IPv4에서 사용하는 프로토콜로 캡슐화하여 전송하는 방법
  • 주소 변환방식
    • IPv4 망과 IPv6 망 사이에 주소 변환기를 사용하여 서로 다른 네트워크상의 패킷을 변환시키는 방법

멀티캐스트 프로토콜 : 인터넷에서 같은 내용의 데이터를 여러 명의 특정한 그룹의 수신자들에게 동시에 전송

브로드캐스트 프로토콜 : 하나의 송신자가 같은 서브 네트워크상의 모든 수신자에게 데이터를 전송하는 프로토콜

■ 애니캐스트 프로토콜 : 하나의 호스트에서 그룹 내의 가장 가까운 곳에 있는 숫자에게 데이터를 전달하는 전송 기술

라우팅 프로토콜

  • 내부 라우팅 프로토콜(IGP)
    • RIP(Routing Information Protocol) : AS(자율시스템)내에서 사용하는 거리 벡터 알고리즘에 기초하여 개발된 내부 라우팅 프로토콜, 벨만 포드 알고리즘 사용, 최대 홉수 15개로 제한
    • OSPF(Open Shortest Path First) : 자신을 기준으로 링크 상태 알고리즘을 적용하여 최단 경로를 찾는 라우팅 프로토콜, 다익스트라 알고리즘 사용
  • 외부 라우팅 프로토콜(EGP)
    • BGP(Border Gateway Protocol) : AS 상호 간에 경로 정보를 교환하기 위한 라우팅 프로토콜, 경로 벡터 알고리즘 사용

 라우팅 알고리즘 : 목적지까지 최적 경로를 산출하기 위한 법칙

  • 거리 벡터 알고리즘 : 인접 라우터와 정보를 공유하여 목적지까지의 거리와 방향을 결정하는 라우팅 알고리즘
  • 링크 상태 알고리즘 : 링크 상태 정보를 모든 라우터에 전달하여 최단 경로 트리를 구성하는 라우팅 알고리즘

 

TCP(Transmission Control Protocol) : (신연흐흔)

  • TCP 특징 : 신뢰성 보장, 연결 지향적 특징, 흐름 제어, 혼잡 제어

UDP(User Datagram Protocol) :

  • UDP 특징 : 비신뢰성, 순서화되지 않은 데이터그램 서비스 제공, 실시간 응용 및 멀티캐스트 가능, 단순 헤더

세션 계층 프로토콜

  • RPC : 원격 프로시저 호출이라고 불리며, 별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에서 함수나 프로시저를 실행할 수 있는 프로토콜
  • NetBios : 응용계층의 애플리케이션 프로그램에게 API 제공, 상호 통신 가능하게 해주는 프로토콜

표현 계층 프로토콜

  • JPEG : 이미지를 위해 만들어진 표준 규격
  • MPEG : 멀티미디어(비디오, 오디오)를 위해 만들어진 표준 규격

응용계층 프로토콜

  • HTTP(Hyper Text 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) : 서로 연결되어 있는 컴퓨터 간 원격 명령 실행이나 쉘 서비스 등을 수행, Telent보다 강력한 보안 제공
  • SNMP(Simple Network Management Protocol) : 라우터나 허브 등 네트워크 장치로부터 정보를 수집 및 관리

패킷 교환 방식(Packet Switching) : 작은 블록의 패킷으로 데이터를 전송하여 데이터를 전송하는 동안만 네트워크 자원을 사용하도록 하는 통신 방식

  • 활용 : 이메일, 메시지

패킷 교환 방식 기술

  • X.25 : 통신을 원하는 두 단말장치가 패킷 교환망을 통해 패킷을 원활히 전달하기 위한 통신 프로토콜
  • 프레임 릴레이 : ISDN을 사용하기 위한 프로토콜로서 ITU-T에 의해 표준으로 작성
  • ATM(Asynchronous Transfer Mode) : 비동기 전송모드, 광대역 전송에 쓰이는 스위칭 기법

서킷 교환 방식(Circuit Switching) : 네트워크 리소스를 특정 사용층이 독점하도록 하는 통신 방식

  • 활용 : 영상, 비디오

애드 혹 네트워크(Ad-hoc Network) : 노드들에 의해 자율적으로 구성되는 기반 구조가 없는 네트워크

  • 활용분야 : 긴급 구조, 긴급 회의, 전쟁터에서의군사 네트워크 효과

 

Chapter03 기본 개발환경 구축

 

개발환경 인프라 구성 방식

  • 온프레미스(On-Premise) 방식: 외부 인터넷망이 차단된 상태에서 인트라넷망만을 활용하여 개발환경을 구축하는 방식
  • 클라우드(Cloud) 방식 : 클라우드 공습 서비스를 제공하는 회사들(아마존, 구글, MS 등)의 서비스를 임대하여 개발환경을 구축하는 방식
  • 하이브리드(Hybrid) 방식 : 온프레미스와 클라우드 방식을 혼용한 방식

 


오답노트

소프트웨어 테스트 : 개발된 응용 애플리케이션이나 시스템이 사용자가 요구하는 기능과 성능, 사용성, 안정성 등을 만족하는지 확인, 노출되지 않은 소프트웨어 결함을 찾아내는 활동

완벽 테스팅은 불가능 : 무한경로, 무한 입력값으로 인한 테스트의 어려움을 나타내는 원리

테스트 케이스 : 테스트를 위한 설계 산출물로, 응용 소프트웨어가 사용자의 요구사항을 준수하는지 확인하기 위해 설계된 입력값, 실행 조건, 기대 결과로 구성된 테스트 항목의 명세서

테스트 시나리오 : 애플리케이션의 테스트가 되어야 할 기능 및 특징, 테스트가 필요한 상황을 작성한 문서로 하나의 단일 테스트 시나리오가 하나 또는 여러 개의 테스트 케이스를 포함할 수 있다.

테스트 스크립트 : 테스트케이스의 실행 순서를 작성한 문서, 테스트 스텝, 테스트 절차서라고도 한다.

정적 테스트 : 테스트 대상을 실행하지 않고 구조를 분석하여 논리성을 검증하는 테스트

구결조 조견다기제대

조건 커버리지 : 각 분기의 결정 포인트 내의 개별 조건식이 적어도 한 번은 참과 거짓의 결과가 되도록 수행하는 테스트 커버리지

변경 조건 커버리지 : 개별 조건식이 다른 개별 조건식에 영향을 받지 않고 전체 조건식에 독립적으로 영향을 주도록 함으로써 조건/결정 커버리지를 향상시킨 커버리지

제어 흐름 테스트 : 프로그램 제어 구조를 그래프 형태로 나타내어 내부 로직을 테스트 하는 기법

데이터 흐름 테스트 : 제어 흐름 그래프에 데이터 사용현황을 추가한 그래프를 통해 테스트 하는 기법

블랙박스 테스트 : 프로그램 외부 사용자의 요구사항 명세를 보면서 수행하는 테스트

동경결상유분페원비

결정 테이블 : 요구사항의 논리와 발생조건을 테이블 형태로 나열하여 조건과 행위를 모두 조합하여 테스트하는 기법

상태 전이 테스트 : 테스트 대상/시스템이나 객체의 상태를 구분, 이벤트에 의해 어느 한 상태에서 다른 상태로 전이되는 경우의 수를 수행하는 테스트 기법

분류 트리 테스트 : SW의 일부 또는 전체를 트리 구조로 분석 및 표현하여 테스트 케이스를 설계하여 테스트하는 기법

원인-결과 그래프 테스트 : 그래프를 활용하여 입력 데이터 간의 관계 및 출력에 미치는 영향을 분석하여 효용성이 높은 테스트 케이스를 선정하여 테스트하는 기법

비교 테스트 : 여러 버전의 프로그램에 같은 입력값을 넣어서 동일한 결과 데이터가 나오는지 비교해 보는 테스트 기법

회안성 구회병

안전 테스트 : 불법적인 소프트웨어가 접근하여 시스템을 파괴하지 못하도록 소스 코드 내의 보안적인 결함을 미리 점검하는 테스트 기법

성능 테스트 : 사용자의 이벤트에 시스템이 응답하는 시간, 특정 시간 내에 처리하는 업무량. 사용자 요구에 시스템이 반응하는 속도 등을 측정하는 테스트 기법

 

구조 테스트 : 시스템의 내부 논리 경로, 소스 코드의 복잡도를 평가하는 테스트 기법

회귀 테스트 : 오류를 제거하거나 수정한 시스템에서 오류 제거와 수정에 의해 새로이 유입된 오류가 없는지 확인하는 일종의 반복 테스트 기법

병행 테스트 : 변경된 시스템과 기존 시스템에 동일한 데이터를 입력 후 결과를 비교하는 테스트

 

HRN 우선순위 계산식 : (대기시간 + 서비스시간) / 서비스 시간

운영체제 : 사용자가 컴퓨터의 하드웨어를 쉽게 사용할 수 있도록 인터페이스를 제공해주는 소프트웨어

윈도즈 운영체제의 특징(지선자오)

  • GUI 제공/선점형 멀티태스킹 방식 제공/ 자동감지 기능/ OLE 사용

프로세스 스케줄링 주요 언어

  • 서비스 시간 : 프로세스가 결과를 산출하기까지 소요되는 시간
  • 응답시간 : 프로세스들이 입력되어 서비스를 요청하고 반응하기 시작할 때까지 소요되는시간
  • 반환시간 : 프로세스들이 입력되어 수행하고 결과를 산출하기까지 소요되는 시간
  • 대기시간 : 프로세스가 프로세서에 할당 대기까지 큐에 대기하는시간
  • 평균 대기시간 : 프로세스가 대기 큐에서 대기하는 평균시간
  • 시간 할당량 : 한 프로세스가 프로세서를 독점하는 것을 방지하기 위해 서비스되는 시간 할당량

가상화 : 물리적인 리소스들을 사용자에게 하나로 보이게 하거나, 하나의 물리적인 리소스를 여러 개로 보이게 하는 기술

  • 컴퓨팅 가상화 : 물리적으로 컴퓨터 리소스를 가상화하여 논리적 단위로 리소스를 활용할 수 있도록 하는 기술
  • 스토리지 가상화 : 스토리지와 서버 사이에 소프트웨어/하드웨어 계층을 추가하여 스토리지를 논리적으로 제어 및 활용할 수 있도록 하는 기술
  • 컨테이너 : 애플리케이션들이 단일 운영체제 상에서 실행되도록 해주는 기술, 하이퍼바이저 없이 운영체제가 격리된 프로세스로 동작하기 때문에 오버헤드가 낮음
  • 네트워크 가상화 기술 : 물리적으로 떨어져 있는 다양한 장비들을 연결하기 위한 수단

인프라형 서비스(IaaS) : 서버, 스토리지 같은 시스템 자원을 클라우드로 제공

플랫폼형 서비스(PaaS) : 애플리케이션 개발, 실행, 관리할 수 있게 하는 플랫폼 제공

소프트웨어형 서비스(SaaS) : 클라이언트를 통해 접속하여 소프트웨어 서비스 형태로 이용

 

선점형 스케줄링 : 우선순위가 높은 프로세스가 CPU를 점유하는 스케줄링

 

라운드 로빈 : 프로세스는 같은 크기의 CPU시간을 할당, 프로세스가 할당된 시간 내에 처리완료를 못하면 준비 큐 리스트의 가장 뒤로 보내지고, CPU는 대기 중인 다음 프로세스로 넘어가는 알고리즘

SRT : 가장 짧은 시간이 소요되는 프로세스를 먼저 수행하고 남은 처리시간이 더 짧다고 판단되는 프로세스가 준비 큐에 생기면 언제라도 프로세스가 선점되는 알고리즘

다단계 큐 : 작업들을 여러 종류 그룹으로 분할, 여러 개의 큐를 이용하여 상위 단계 작업에 의한 하위단계 작업이 선점 당하는 알고리즘

 

SJF : 프로세스가 도착하는 시점에 따라 그 당시 가장 적은 서비스 시간을 갖는 프로세스가 종료 시까지 자원을 점유하는 알고리즘

기아 현상 : 시스템 부하가 많아서 준비 큐에 있는 낮은 등급의 프로세스가 무한정 기다리는 현상

에이징 : 오랫동안 기다린 프로세스의 우선순위를 높여주는 기법

 

 

스파이크 테스트 : 짧은 시간에 사용자가 몰릴 때 시스템의 반응 측정 테스트

내구성 테스트 : 오랜 시간 동안 시스템에 높은 부하를 가하여 시스템 반응 테스트

경험 기반 테스트 : 유사 소프트웨어나 유사 기술 평가에서 테스터의 경험을 토대로 한 직관과 기술 능력을 기반으로 수행하는 테스트 기법

리뷰 : 소프트웨어의 다양한 산출물에 존재하는 결함을 검출하거나 프로젝트의 진행 상황을 점검하기 위한 활동

정적 분석 : 도구의 지원을 받아 정적 테스트를 수행하는 방법으로 자동화된 도구를 이용하여 산출물의 결함을 검출하거나 복잡도를 측정하고 유형에는 코딩 표준부합, 코드 복잡도 계산, 자료 흐름 분석 등이 있다.

테스트 커버리지 : 프로그램의 테스트 수행 정도를 나타내는 값,  테스트 수행의 완벽성을 측정하는 도구, 테스트 케이스에 의해 수행되는 소프트웨어 테스트 범위를 측정하는 테스트 품질 측정 기준

순환복잡도 : 맥케이브가 만들었으며, 제어 흐름의 복잡한 정보를 정량적으로 표시하는 기법

탐색적 테스트 : 테스트 스크립트 또는 테스트 케이스를 문서로 작성하지 않고 경험에 바탕을 두고 탐색적으로 기능을 수행해 보면서 테스트 하는 기법으로 구성요소는 테스트 차터, 시간 제한, 노트, 회고가 있다.

오류 추정 : 개발자가 범할 수 있는 실수 추정, 이에 따른 결함이 검출되도록 테스트 케이스를 설계하여 테스트하는 기법

테스트 오라클 : 테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참 값을 입력하여 비교하는 기법

에뮬레이션 : 한 컴퓨터가 다른 컴퓨터처럼 똑같이 작동하도록 소프트웨어나 마이크로 프로그래밍을 사용하는 기법

하향식 통합 : 메인 제어 모듈로부터 아래 방향으로 제어의 경로를 따라 이동하면서 테스트를 진행, 메인 제어 모듈에 통합되는 하위 모듈과 최하위 모듈은 깊이 우선 또는 너비 우선 방식으로 통합하는 방식

깊이 우선 : 루트 노드에서 시작해서 다음 분기로 넘어가기 전에 해당 분기를 완벽하게 탐색하는 방법

너비 우선 : 루트 노드에서 시작해서 인접한 노드를 먼저 탐색하는 방법

테스트 결함 관리 : 단계별 테스트 수행 후 발생한 결함의 재발 방지와 유사 결함 발견 시 처리 시간 단축을 위해 결함을 추적하고 관리하는 활동

구체화 : 결함의 원인을 찾기 위해 결함을 발생시킨 입력값, 테스트 절차, 테스트 환경을 명확히 파악하는 방법

결함 등록 : 테스터가 테스터 절차를 실행하여 발견한 결함을 분석 후 구체화, 고립화, 일반화한 결함으로서 보고된 상태로 결함 보고서에 기록되어 결함 추적의 대상이 된 상태

결함 할당 : 결함을 수정할 개발자가 결정되고 그 개발자에게 결함 해결이 요구된 상태

결함 추이 분석 : 테스트 완료 후 발견된 결함의 결함 관리 측정 지표의 속성값들을 분석 향후 애플리케이션의 어떤 모듈 또는 컴포넌트에서 결함이 발생하지를 추정하는 작업

결함 에이징 분석 : 등록된 결함에 대해 특정한 결함 상태의 지속시간을 측정하여 분석하는 기법

결함 추세 분석 : 테스트 진행 시간의 흐름에 따른 결함의수를 측정하여 결함 추세를 분석하는기법

처리량 : 애플리케이션이 주어진 시간에 처리할 수 있는 트랜잭션의 수로 웹 애플리케이션의 경우 시간당 페이지 수로 표현

■ OSPF : 다익스트라 알고리즘을 이용한 대규모 네트워크에 적합한 링크 상태 라우팅 프로토콜

ICMP : IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜

OSI 7계층 개념 다시 읽기

 

패킷 교환 방식

  • 데이터 그램 방식 : 헤더에 붙어서 개별적으로 전달하는 비연결형 교환 방식
  • 가상회선 방식 : 목적지 호스트와 미리 연결 후 통신하는 연결형 교환 방식

 

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

패킷 교환 프로토콜

  • X.25 - 통신을 원하는 두 단말장치가 패킷 교환망을 통해 패킷을 원활히 전달하기 위한 통신 프로토콜
  • 프레임 릴레이 : ISDN을 사용하기 위한 프로토콜 ITU-T에 의해 표준으로 작성
  • ATM : 비동기 전송 모드, 광대역 전송에 쓰이는 스위칭 기법

UDP 특징 : 비신뢰성, 순서화되지 않은 데이터그램 서비스 제공, 실시간 응용 및 멀티캐스팅 가능, 단순 헤더

IPv6 특징 : IP 주소 확장, 이동성, 인증 및 보안 기능, 개선된 QoS지원, Plug&Play 지원, Ad-Hoc 네트워크 지원, 단순 헤더 적용, 실시간 패킷 추적 가능

 

거리 벡터 알고리즘 : 인접 라우터와 정보 공유하여 목적지까지의 거리와 방향을 결정하는 라우팅 프로토콜 알고리즘(벨만 포드 알고리즘 사용)

링크 상태 알고리즘 : 링크 상태 정보를 모든 라우터에 전달하여 최단 경로 트리를 구성하는 라우팅 프로토콜 알고리즘(다익스트라 알고리즘 사용)

 

프로토콜 : 서로 다른 시스템에 있는 두 개체 간의 데이터 교환을 원활히 하기 위한 일련의 통신규약

유닉스 : 데니스 리치와 켄 톰슨 등이 함께 벨 연구소를 통해 만든 운영체제 90%이상이 C언어

chown : 파일이나 디렉터리의 소유자, 소유 그룹 수정 명령어

chmod : 특정 파일 또는 디렉터리의 퍼미션 수정 명령어

 

 

클라우드 컴퓨팅 : 인터넷을 통해 가상화된 컴퓨터 시스템 리소스 제공

프로세스 관리 : CPU와 데이터를 송수신하는 상황에서 현재 메모리 사용 부분, 메모리 입출력 순서, 메모리 공간 확보 등 수행 프로세스에 대한 종합적인 관리 기법

 

브리지 : 두 개의 근거리 통신망(LAN)을 서로 연결해주는 통신망 연결장치(2계층)

 

네트워크 프로토콜 : 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계

  • 연결 제어 - 데이터의 전송량이나 속도를 제어
  • 오류 제어 - 전송 중 잃어버리는 데이터나 오류가 발생한 데이터 검증
  • 동기화 - 송신과 수신 측의 시점을 맞춤

TCP 특징 - 신뢰성 보장 / 연결 지향적 특징 / 흐름 제어 / 혼잡 제어

UDP 프로토콜 : 비연결성이고, 신뢰성이 없고 순서화되지 않는 데이터그램 서비스를 제공하는 전송 계층의 통신 프로토콜이다.

 

L2 스위치

  • Store and Forwarding : 데이터를 전부 받은 후 다음 처리를 하는 방식
  • Cut Through : 데이터의 목적지 주소만 확인 후 바로 전송 처리하는 방식
  • Fragment Free : 프레임의 앞 64바이트만을 읽어 에러를 처리하고 목적지 포트로 전송하는 방식

 

패킷 교환 방식 : 컴퓨터 네트워크와 통신의 방식 중 하나로 작은 블록 단위로 데이터를 전송, 데이터를 전송하는 동안만 네트워크 자원을 사용하도록 하는 통신 방식

 

 

ATM 3계층

  • AAL - 패킷을 작은 조각인 셀로 전송한 후 다시 조립하여 원래의 데이터로 복원하는역할
  • ATM - 셀과 셀 전송 역할
  • 물리 - 물리적 전송 매체를 처리하는 역할

서킷 교환 방식 - 네트워크 리소스를 특정 사용층이 독점하도록 하는 통신 방식

IGRP - RIP 의 문제점 개선을 위해 시스코에서 개발, 네트워크 상태를 고려하여 라우팅

BGP - 규모가 큰 네트워크의 상호 연결

 

거리 벡터 알고리즘 : 인접 라우터와 정보 공유하여 목적지까지의 거리와 방향을 결정하는 라우팅 프로토콜 알고리즘

 

개발환경 인프라 구성 방식

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