그냥 게임개발자
11장 응용 SW 기초 기술 활용 본문
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 - 규모가 큰 네트워크의 상호 연결
■ 거리 벡터 알고리즘 : 인접 라우터와 정보 공유하여 목적지까지의 거리와 방향을 결정하는 라우팅 프로토콜 알고리즘
■ 개발환경 인프라 구성 방식
- 온프레미스 : 외부 인터넷망이 차단된 상태에서 인트라넷망만을 활용하여 개발환경을 구축
- 클라우드 : 클라우드 공습 서비스를 제공하는 회사들의 서비스를 임대하여 개발환경 구축
- 하이브리드 : 온프레미스와 클라우드 방식 혼용
'나만의 정처기 공부' 카테고리의 다른 글
정보처리기사 오답노트1 (0) | 2022.05.01 |
---|---|
12장 제품 소프트웨어 패키징 (0) | 2022.05.01 |
10장 애플리케이션 테스트 관리 (0) | 2022.04.25 |
9장 소프트웨어 개발 보안 구축 (0) | 2022.04.24 |
8장 서버 프로그램 구현 (0) | 2022.04.17 |