7단원 : 애플리케이션 테스트 관리
테스트 종류
- 애플리케이션 테스트 : 결함 찾아내는 행위 또는 절차
- 검증 테스트 : 개발자 입장에서 테스트
- 확인 테스트 : 사용자 입장에서 테스트
- 기본 원리
- 파레토 법칙 :20~80결함 집중, 일부에 집중됨
- 살충제 패러독스 : 동일한 TC로 여러번 테스트하다보면 결함이 더이상 발견되지 않음
- 오류-부재의 궤변 : 결함이 없어도 유구사항 만족 못하면 품질 높은 것 아님
- 테스트 기반에 따른 테스트
- 명세 기반 테스트 : 동등 분할, 경계값 분석
- 구조 기반 테스트 : 구문기반, 결정기반, 조건기반
- 경험 기반 테스트 : 에러 추정, 체크리스트, 탐색적 테스팅
- 목적에 따른 테스트
- 회복 테스트 : 여러가지 결함을 주고 복구되는지 확인
- 안전 테스트 : 침입으로부터 보호하는지 확인
- 강도 테스트 : 과부하
- 성능 테스트 : 응답시간, 처리량 테스트
- 구조 테스트 : 논리경로, 복잡도 평가
- 회귀 테스트 : 변경 또는 수정시 결함 없는지 확인, 이미 테스트된 프로그램의 테스팅을 반복
- 병행 테스트 : 변경후와 변경 전 소프트웨어에 동일한 데이터 입력하고 비교
- 정적 테스트 : 프로그램 실행 X
- 워크스루 : 검토회의전 사전에 요구사항 명세서를 미리 배포하여 사전검토
- 인스펙션 : 작성자를 제외한 검토 전문가들이 요구사항 명세서를 확인하면서 결함발견
- 동적 테스트 : 프로그램 실행
- 화이트 박스 테스트 : 원시코드를 오픈, 모든 논리적 경로를 테스트
- 기초경로검사
- 제어구조검사 : 조건검사, 루프검사, 데이터 흐름검사
- 검증기준
- 분기 검증 기준 = 결정검증기준 : 모든 조건문 True와 False인 경우를 모두 한번씩 수행
- 조건 검증 기준 : 개별 조건식 결과를 확인
- 블랙박스테스트 : 기능 테스트라고도 함. 사용자의 요구사항 명세를 보면서 테스트
- 동치 분할 검사 : 타당한 입력자료와 타당하지 않은 입력 자료 개수를 균등하게 입력
- 경계값 분석 : 조건의 경계값을 테스트
- 원인-효과 그래프 검사 : 입력과 출력 모두를 체계적으로 분석해 효용성이 높은 TC를 선정해 검사
- 오류 예측 검사 : 경험에 의한 검사
- 비교 검사 : 여러버전의 프로그램에 동일한 TC를 제공(병행테스트와 비슷)
- 화이트 박스 테스트 : 원시코드를 오픈, 모든 논리적 경로를 테스트
- 개발 단계에 따른 테스트
- 단위 테스트 : 모듈이나 컴포넌트에 초점을 맞춰 테스트, 구조기반 테스트를 주로 시행
- 통합 테스트 : 단위 테스트가 완료된 모듈들을 결합하여 하나의 시스템으로 완성시키는 과정에서의 테스트
- 비점진적 통합 방식 : 모든 모듈이 미리 결합되어 있는 프로그램 전체를 테스트
- 점진적 통합 방식 : 모듈 단위로 단계적으로 통합
- 하향식 통합 : 상위 모듈에서 하위모듈 방향으로 통합. 제어 모듈의 종속 모듈은 스텁으로 대체
- 상향식 통합 : 하위->상위, 더미 모듈인 드라이버를 작성. 하위 모듈은 클러스터로 결합
- 혼합식 통합 = 샌드위치식 통합 : 하위수준에서는 상향, 상위수준에서는 하향
- 시스템 테스트 : 개발된 소프트웨어가 완벽하게 수행되는가를 점검
- 인수 테스트 : 사용자의 요구사항을 충족하는 지 점검
- 알파 테스트 : 사용자가 개발자 앞에서 행하는 테스트, 통제된 환경
- 베타 테스트 : 실업무를 가지고 사용자가 직접 테스트
- 테스트 케이스
- 테스트 케이스 : 테스트 항목에 대한 명세서, 사용자의 요구사항을 정확하게 준수했는지 확인하기 위한 설계
- 테스트 시나리오 : 테스트 케이스 묶은 집합
- 테스트 오라클 : 사전에 정의된 참값을 대입하여 비교하는 기법
- 참,샘플링,휴리스틱(추정),일관성(변경 있을 때 수행전과 수행 후 결과 값 동일한지 확인)
- 테스트 자동화 도구
- 정적 분석 도구
- 테스트 실행 도구 : 스크립트 언어 사용
- 성능 테스트 도구 : 처리량, 응답시간, 경과시간, 자원사용률 테스트
- JMeter(다양한 프로토콜 지원), LoadUI(Drag&Drop 등 편리성 강화), OpenSTA
- 테스트 통제 도구
- 테스트 하네스 도구 : 애플리케이션 컴포넌트 및 모듈을 테스트 하기 위해 생성된 코드와 데이터
- 드라이버,스텁,슈트,케이스,스크립트,목,오브젝트로 구성
- 결함
- 결함 : 개발자가 설계한 것과 다르게 동작하거나 다른 결과가 발생하는 것
- 결함 상태 추적 : 테스트에서 발견된 결함은 지속적으로 상태 변화를 추적하고 관리
- 분포,추세,에이징을 측정해 추적
- 결함 분류 : 시스템 결함, 기능 결함, GUI 결함, 문서 결함
- 결함 심각도 : High, Medium, Low/Critical, Major, Normal, Minor, Simple
- 결함 우선순위 : Critical, High, Medium, Low/ 즉시해결 , 주의요망, 대기, 개선권고
- 모니터링
- 시스템 모니터링 : 자원 사용량 확인 및 분석 도구
- Scouter, Zabbix
- 복잡도/시간 복잡도
- 빅오표기법
- 순환 복잡도 : 논리적인 복잡도를 측정하기 위한 소프트웨어(맥케이브 순환도, 맥케이브 복잡도 메트릭)
- 시스템 모니터링 : 자원 사용량 확인 및 분석 도구
- 최적화
- 소스코드 최적화 : 클린 코드로 작성하는것
- 클린코드 작성 원칙 : 가독성,단순성,의존성배제,중복성,최소화,추상화
- 나쁜 코드의 예
- 스파게티 코드: 코드로직이 복잡
- 외계인 코드 : 오래되거나 개발자 없어 유지보수 x
- 소스코드 품질 분석 도구
- 정적 분석 도구 : pmd, cppcheck, SonarQube, checkstyle 등
- 동적 분석 도구 : Avalanche, Valgrind 등
- 소스코드 최적화 : 클린 코드로 작성하는것
9단원 : 소프트웨어 개발 보안 구축
- Secure SDLC : SDLC + 보안
- CLASP : SDLC의 초기 단계에서 보안 강화하기 위해 개발된 방법론
- SDL : MS에서 제안한 방법론
- Seven Touchpoints : 모범사례를 SDLC에 통합한 방법론
- 소프트웨어 개발 보안 요소
- 기밀성 : 인가된 사용자에게만 접근 허용, 전송 중 노출되어도 데이터 읽기 불가
- 무결성 : 인가된 사용자만 수정 가능
- 가용성 : 인가된 사용자는 언제든 정보와 자원 사용 가능
- 인증 : 합법적인 사용자인지 확인하는 모든 행위
- 지식 기반, 소유 기반, 생체 기반, 위치 기반, 행위 기반
- 부인 방지 : 소우,수신 사실을 부인할 수 없도록 증거를 제공
- 시큐어 코딩 : 보안 요소를 고려하여 코딩하는 것
- 세션 통제 : 세션의 연결과 연결로 인해 발생하는 정보를 관리하는 것
- 입력 데이터 검증 및 표현 관련 용어
- 경로 순회 : 기호를 악용하여 허가되지 않은 파일에 접근
- 스크립트 : 소프트웨어를 수행하는데 필요한 처리 절차가 기록된 텍스트
- asp, jsp, php
- sql 삽입 : 내부 db서버의 데이터를 유출 및 변조, 관리자 인증을 우회하는 보안 약점
- xss(크로스 사이트 스크립팅) : 악의적인 스크립트를 삽입해 정보를 탈취하거나 비정상적인 기능 수행 유발
- 메모리 버퍼 오버 플로 : 할당된 메모리 범위를 넘어선 위치에서 자료를 읽거나 쓰려고 할 때 유발
- 보안 기능 관련 용어
- HTTPS : HTTP + 암호 통신 규약
- SSL(Secure Sockets Layer) : TCP/IP 계층과 애플리케이션 사이에 위치하여 인증, 암호화, 무결성 보장
- 하드코딩 : 데이터를 코드 내부에 직접 입력
- TOCTOU 경쟁 조건 : 검사 시점과 사용 시점을 고려하지 않고 코딩하는 경우 발생하는 보안 약점
- 널 포인터 역참조 : 널 포인터가 가리키는 메모리 위치에 값을 저장할 때 발생하는 보안 약점
- 스택 가드 : 복귀 주소와 변수 사이에 특정 값 저장 후 그 값이 변경되면 오버플로우 상태로 판단해 실행 중단
- 접근 제어자 : Public -> Protected -> Default -> Private
- 개인 키 암호화 기법 : 동일한 키로 데이터를 암호화-복호화
- 스트림 암호화 방식 : 평문과 동일한 길이의 스트림을 생성해 비트 단위로 암호화, LFSR, RC4
- 블록 암호화 방식 : 한 번에 하나의 데이터 블록을 암호화 하는 방식, DES, SEED, AES, ARIA
- SEED : KISA, 1999년 128비트
- AIRA : 국정원 + 산학연협회, 2004년, AES알고리즘 규격
- DES : 미국 NBS, 1975년, 64비트, 3번 적용한 3DES가 있음
- AES : 미국 NIST, 2001년 128비트, 키길이에 따라 AES-128, AES-192등으로 분류
- 공개 키 암호화 기법 : 공개키로 암호화, 비밀키로 복호화
- RSA : 라이베스트+샤미르+애들먼, 큰 수 소인수분해 하기 어렵다는 점에서 착안
- 해시 : 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환
- SHA시리즈,HAVAL,MD4,MD5,N-NASH,SNEFRU 등
- SHA 시리즈 : 미국 국가 안보국(NSA), NIST 발표, SHA-512까지 발표됨
- MD5 : 1991년 라이베스트가 MD4를 대체하기 위한 고안 512비트
- N-NASH : 일본 NTT에서 발표. 128비트
- SNEFRU : 머클이 1990년 발표. 32비트 프로세스에서 구현 용이하게 할 목적
- TKIP : WEP의 취약성을 보완한 데이터 보안 프로토콜
- 보안 아키텍쳐 : 보안 요소 및 보안 체계를 식별하고 이들 간의 관계를 정의한 구조
- 보안 프레임워크 : 안전한 정보 시스템 환경을 유지하고 보안 수준을 향상시키기 위한 체계, ISO 27001, BS7799 기반
- 방화벽 : 정보 선별, 수용/거부/수정 기능 가진 침입 차단 시스템
- 침입 탐지 시스템
- 오용 탐지 : 이미 입력해둔 공격 패턴을 감지
- 이상 탐지 : 평균적인 시스템 상태를 기준으로 이상함을 감지
- 침입 방지 시스템 : 비정상적인 트래픽을 능동적으로 차단하고 격리하는 보안 솔루션
- 방화벽 + 침입 탐지 시스템
- 데이터 유출 방지(DLP) : 내부 정보의 외부 유출을 방지하는 보안 솔루션
- 웹 방화벽 : SQL 삽입 공격, XSS 등 웹 기반 공격을 방어할 목적으로 만들어쥔 웹서버에 특화된 방화벽
- VPN : 마치 자신의 전용 회선을 사용하는 것처럼 해주는 보안 솔루션
- 암호화된 규격을 통해 인터넷망을 전용선의 사설망을 구축한 것처럼 이용
- NAC : Network Access Control, 내부 pc의 MAC 주소를 IP 관리 시스템에 등록한 후 일관된 보안 기능을 제공
- ESM : Enterprise Security Management, 다양한 장비에서 발생하는 로그 및 보안 이벤트를 통합하여 관리
- AAA: 인증(Authentication), 인가(Authorization), 과금(Accounting)
- 정보보호관리체계(ISMS) : 우리나라는 KISA에서 운영. 정보 자산을 안전하게 보호하기 위한 보호 절차와 대책
- 서비스 거부 공격
- Ping of death : 패킷 크기를 허용 범위 이상으로 전송
- SMURFING : 엄청난 양의 데이터를 집중적으로 보냄(IP,ICMP 특성 악용)
- SYN Flooding : 3-way-handshake를 의도적으로 중단시킴
- TearDrop : Fragment Offset 값을 의도적으로 변경시켜 과부하를 발생시킴
- LAND Attack : 송신,수신 ip 주소를 모두 같게해서 무한하게 응답하게 해서 과부하 발생
- DDOS(분산 서비스 거부) : 좀비PC를 이용해 여러곳에서 분산 공격 시행
- 이용 툴 :Trin00, TFN, TFN2K, Stacheldraht
- 세션 하이재킹 : 클라이언트 사이의 세션 정보를 가로채는 공격 기법
- 3-way-handshake 과정에 끼어드는 TCP 세션 하이재킹이 대표적
- ARP Spoofing : ARP 취약점 이용. 자신의 MAC(물리적 주소)을 공격 대상의 것으로 변조. 패킷을 가로채거나 방해함
- ARP : IP->MAC으로 바꿔주는 프로토콜
- 스니핑 : 네트워크 중간에서 남의 패킷 정보를 도청
- 워터링 홀 : 웹사이트를 사전에 감염
- 키로거 공격 : 키보드 움직임을 탐지
- 랜섬웨어 : 돈 요구하는 등 내부 문서나 파일을 암호화
- 백도어 : 시스템 설계자가 액세스 편의를 위해 시스템 보안을 제거하여 만들어 놓은 비밀 통로
- 탐지 방법 : 무결성검사, 열린포트확인, 로그분석, setUID 파일 검사 등
- 기타용어
- 스미싱 : 문자 메시지를 이용해 사용자의 개인 신용 정보를 빼내는 수법
- 스피어 피싱 : 특정 대상을 선정해 계속 이메일을 발송(스피어 : 작살, 특정개인조준)
- ART : 지능형 지속 위협, 조직적으로 공격하는것
- 무작위 대입 공격(브루트 포스 공격) : 계속 모든 값을 대입
- 큐싱 : QR+피싱
- WEP : 유선급 프라이버시, LAN급의 프라이버시 수준의 무선 랜 보안 프로토콜
- WPA2 : 무선랜 보안 기술 규격(WEP취약성대안)
- EDR : 앤드포인터 영역 모니터링
- TMS : 전사적 IT 인프라에 대한 위협정보를 관리하는 정보보호 통합관리 시스템
- DTLS : SSL/TLS와 유사한 보안 기능, UDP 기반
- 크리덴셜 스터핑 : 이미확보해 놓은 로그인 자격 증명을 다른 계정에 무작위로 대입
- POODLE : TLS 연결을 SSL 3.0으로 낮춰 그 취약점을 이용해 암호문 해독
- DDE : 오피스에서 앱에 데이터 전달하는 프로토콜. 일반 문서로 위장한 악성 코드에 대한 취약점 존재
- 좀비 PC : 악성코드에 감염되어 다른 프록램이나 컴퓨터를 조종하도록 만들어진 컴퓨터로 주로 DDOS공격에 이용
- C&C 서버 : 감염된 좀비 PC에 명령을 내리고 악성 코드를 제어하기 위한 용도로 사용하는 서버
- 봇넷 : 악성 프로그램에 감염되어 악의적인 의도로 사용될 수 있는 다수의 컴퓨터들이 네트워크로 연결된 형태
- 웜 : 자신을 연속적으로 복사하여 시스템의 부하를 높여 시스템을 다운시키는 바이러스
- 제로데이 공격 : 발견된 취약점의 존재 자체가 널리 공표되기도 전에 해당 취약점을 통해 이루어지는 보안 공격으로 공격의 신속성을 의미
- 트로이 목마 : 정상 기능을 하는 프로그램으로 위장하여 프로그램 내에 숨어 있다가 부작용 일으킴
- CC(Common Criteria)인증 : 국제적인 정보보안 평가기준
- 멀버타이징 : 멀웨어 +광고, 온라인 광고를 통해 악성코드를 유포시키는 행위
- 정보공유분석센터(ISAC) : 취약점과 그 대응방안에 대한 정보를 제공하고, 실시간경보및 분석체계운영
- BCP(업무 연속성 계획) : RTO, RPO, 업무 영향 분석(BIA) 실시해 비즈니스 연속성을 보장하기 위한 계획
- 데이터 디들링 : 처리할 자료를 다른 자료와 바꾸서 처리하는 것
- 비트 로커 : 윈도우 전용 볼륨 암호화 기능, TPM+AES-128
- 공급망 공격 : 소프트웨어 공급망에 침투하여 악성코드를 배포
11단원 : 응용 SW 기초 기술 활용
운영체제
- 운영체제(OS) : 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임
- 목적
- 처리능력 향상
- 반환시간 감소
- 사용 가능도 향상
- 신뢰도 향상
- UNIX : 대부분 C언어, 트리구조파일시스템, 1960년대개발, 시분할시스템(Time Sharing System)
- 커널(프로그램과 하드웨어 간 인터페이스 담당), 쉘(시스템과 사용자간 인터페이스 담당)로 구성
- LINUX : 리누스 토발즈 개발
- cat : 파일 내용 표시, cp: 파일 복사, rm : 파일 삭제, find : 파일 찾음, mv :파일 이동
- chown : 파일 소유자와 그룹 변경
- ls : 파일 목록표시
- mkdir : 디렉토리 생성, rmdir : 디렉토리 삭제, cd : 디렉토리 위치 변경, pwd:현재 작업중인 디렉토리 경로 표시
- who : 현재 접속중인 사용자 표시
- kill : PID(프로세스 고유 번호)를 이용하여 프로세스 종료
- killall : 프로세스의 이름을 이용하여 프로세스 종료
- chmod
- 8진법 숫자를 이용한 방법으로 파일 보호 모드 설정
- rwx순(read write x는실행)으로 8진법으로 숫자 변경해서 표현
- 111은 7, 101은 5같은 형식
- chmod 775 a.txt -> a.txt라는 파일에 사용자는 읽쓰실 모두, 그룹은 읽쓰실 모두, 기타사용자에게는 읽기와 실행권한만 부여
기억장치
- 기억 장치 관리(보조기억장치)
- 반입 전략 : 언제 주 기억장치로 프로그램이나 데이터를 적재할 것인지를 결정
- 요구 반입 : 요구할 때 적제
- 예상 반입 : 미리 예상하여 적재
- 배치 전략 : 어디에 위치시킬 것인지를 결정하는 전략
- 최초적합(First Fit) : 빈 영역 중 첫 번째 분할 영역에 배치
- 최적적합(Best Fit) : 빈 영역 중 단편화를 가장 작게 남기는 분할 영역에 배치
- 최악적합(Worst Fit) : 빈 영역 중 단편화를 가장 많이 남기는 분할 영역에 배치시키는 방법
- 반입 전략 : 언제 주 기억장치로 프로그램이나 데이터를 적재할 것인지를 결정
- 주 기억장치 할당 기법 : 주기억장치에 프로그램이나 데이터를 실행시키기 위해 어떻게 할당할 지 결정
- 연속할당기법 : 연속으로 할당
- 단일 분할 할당 : 한순간에는 오직 한명의 사용자만이 주기억장치의 사용자영역을 사용
- 오버레이 기법 : 주기억장치보다 큰 사용자 프로그램을 사용하기 위한 기법
- 스와핑 기법 : 하나의 프로그램 전체를 주기억장치에 할당하여 사용하다가 필요에 따라 다른 프로그램과 교체
- 다중 분할 할당
- 고정 분할 할당 기법 = 정적 할당 기법 : 사용자 영역을 여러개의 고정된 크기로 분할. 각 영역에 할당하여 수행
- 가변 분할 할당 기법 = 동적 할당 기법 : 프로그램을 주기억장치에 적재하면서 필요한 만큼의 크기로 영역을 분할
- 고정 분할 할당 기법의 단편화를 줄이기 위해 사용
- 단일 분할 할당 : 한순간에는 오직 한명의 사용자만이 주기억장치의 사용자영역을 사용
- 분산 할당 : 특정 단위 조각으로 나누어 분산하여 할당. 가상기억장치 사용
- 가상기억장치(Virtual Memory) : 보조기억장치의 일부를 주기억장치처럼 사용하는 것
- 페이징 기법 : 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 주기억장치의 영역에 프로그램 적재 후 실행
- 일정한 크기로 나눈 단위를 페이지라고 하고, 이 페이지 크기로 나누어진 주기억장치 단위를 페이지 프레임 이라고 함, 내부단편화 발생가능
- 페이지 교체 알고리즘
- 페이지 부재가 발생하면 어떤 페이지 프레임을 선택하여 교체할 것인지 결정해야 함
- OPT(Optimal replacement, 최적교체) : 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체. 가장 효율적
- FIFO : 가장 먼저들어와서 가장 오랫동안 있던 페이지 교체
- LRU(Least Recently Use) : 최근 가장 오랫동안 사용하지 않은 페이지를 교체
- LFU(Least Frequently Use) : 사용빈도가 가장 적은 페이지를 교체
- NUR(Not Used Recently) : 최근에 사용하지 않은 페이지를 교체
- 참조비트와 변형비트를 사용해 최근 사용여부를 확인
- SCR(Second Chance Replacement, 2차 기회 교체) : 가장오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위한 기법
- Locality(국부성,지역성,구역성,국소성) : 프로세스 실행 중 주기억장치 참조시 일부 페이지만 집중적으로 참조
- 시간 구역성 : 일정 시간 동안 하나의 페이지를 집중적으로 액세스
- 공간 구역성 : 일정 위치의 페이지를 집중적으로 액세스
- 워킹 셋 이론의 기반
- 워킹 셋 : 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합
- 세그맨테이션 기법 : 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행
- 논리적인 크기로 나눈 단위를 세그먼트라고하고 , 각세그먼트는 고유한 이름과 크기를 가짐
- 외부단편화 발생가능
- 연속할당기법 : 연속으로 할당
프로세스
- 스레싱 : 프로세스의 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상
- 프로세스 : 실행중인 프로그램
- pcb를 가진 프로그램, 실기억장치에 저장된 프로그램, 디스패치가 가능한 단위, 프로시저가 활동중인 것 ..
- PCB(프로세스제어블록) : 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓은 곳
- 프로세스 현재 상태, 포인터,프로세스 고유 식별자, CPU레지스터 정보, 주기억장치 관리 정보, 입출력 상태 정보, 계정 정보
- 프로세스 상태 전이
- 제출 -> 접수 -> (디스크) -> (준비->실행->대기)-> 종료
- 디스패치 : 준비상태에서 실행상태로 전이
- Wake Up : 대기상태에서 준비 상태로 전이
- 스풀링 : 디스크에 입출력 데이터를 일단 저장해 두는 것
- 스레드 : 시스템의 여러 자원을 할당받아 실행하는 프로그램의 단위 또는 프로세스 내 작업 단위
- 경량 프로세스라고도 함.
- 스케줄링 : 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업
- 비선점 스케줄링 : 강제로 못 뺏는 경우
- FCFS(선입선출) : 오는 대로 할당
- SJF : 짧은 것부터 할당, 대기시간은 앞 프로세스의 반환 시간. 반환시간은 프로세스의 대기시간 + 실행시간
- HRN : 우선순위를 부여. 공식은(대기시간+서비스시간)/서비스 시간
- 선점 스케줄링 : 강제로 빼앗을 수 있는 경우
- Round Robin, SRT, 선점 우선순위, 다단계 큐, 다단계 피드백 큐 등
- 비선점 스케줄링 : 강제로 못 뺏는 경우
- 환경 변수 : 시스템 소프트웨어의 동작에 영향을 미치는 동적인 값들의 모임
네트워크
- IP주소
- IPv4 : 8*4 =32 비트로 구성, A~E클래스로 네트워크 부분 길이를 구성
- IPv6 : 16*8 = 총128비트로 구성, 인증성 기밀성 데이터무결성 지원해 보안문제 해결
- 유니캐스트(1:1) 멀티캐스트(1:다) 애니캐스트(가장 가까운 사람 1:1)
- 서브네팅 : 할당된 네트워크 주소를 다시 여러개의 작은 네트워크로 나누어 사용
- 4바이트의 ip주소중 네트워크 주소와 호스트주소를 구분하기 위한 비트를 서브넷 마스크라고함.
- 도메인 네임 : 숫자로 된 ip주소를 사람이 이해하기 쉬운 문자 형태로 변환
- 도메인 네임 -> ip 주소로 변환해 주는 시스템을 dns(domain name system)이라고 함
- OSI 참조 모델
- 물리 : 실제 접속과 절단 등 기계적, 기능적, 절차적 특성
- 데이터링크 : 시스템 간 연결 설정과 유지 및 종료
- 네트워크 : 개방 시스템들 간의 네트워크 연결을 관리하는 기능과 데이터 교환 및 중계
- 전송 : END-TO-END 간의 관령성을 유지, 대화 제어
- 세션 : 송수신 측 간의 관련성을 유지, 대화 제어
- 표현 : 서로 다른 데이터 표현 형태를 갖는 시스템 간의 상호 접속을 위해 필요한 계층
- 코드 변환, 데이터 암호화, 데이터 압축, 구문 검색 기능 수행
- 응용 : 사용자가 OSI환경에 접근할 수 있도록 서비스 제공
- 네트워크 관련 장비
- 라우터 : LAN과 LAN 연결 + 최적 경로 선택. LAN과 WAN을 연결하는 기능도 지원
- 리피터 : 디지털 신호의 장거리 전송을 위해 수신 신호 재생 OR 출력전압 높여 전송
- 허브 : 리피터 역할 포함, 가까운 거리의 컴퓨터들을 연결하는 장치
- 브리지 : LAN과 LAN 연결
- 브리지가 N개일 때 서브넷 구성 시 전송가능한 회선 수는 N(N-1)/2개
- 게이트웨이 : OSI 전 계층의 프로토콜 구조가 다른 네트워크를 연결하는 장치
- 데이터 출입구 역할을 함
- 프로토콜 : 데이터 교환을 원할하게 수행할 수 있도록 표준화 시켜 놓은 통신 규약
- 구문(데이터 형식) , 의미(제어 정보), 시간=타이밍(통신 속도)으로 구성
- 구타를 왜하니 의이그!
- 패킷 교환 방식 : 메시지를 일정한 길이의 패킷으로 잘라서 전송하는 방식
- 가상 회선 방식 : 가상 통신 회선을 미리 설정, 정보 전송 전 제어 패킷에 의해 경로가 설정됨, 패킷 송수신 순서가 같음
- 데이터그램 방식 : 연결 경로 설정 X, 인접한 노드들의 트래픽을 감안해 독립적으로 운반. 전송 경로와 송수신 순서 매번 다름
- TCP/IP : 서로 다른 기종의 컴퓨터들이 데이터를 주고 받을 수 있도록 하는 표준 프로토콜
- TCP : 전송 계층에 해당. 양방향 연결 서비스를 제공. 가상회선방식 기반
- IP : 네트워크 계층 해당. 비연결형 서비스 제공. 데이터 그램 방식 기반
- UDP : 데이터 전송 전에 연결을 설정하지 않는 비연결형 서비스 제공
- 실시간 전송에 유리
- RTCP : RTP(Real-time Transport Protocol) 패킷의 전송 품질을 제어하기 위한 제어 프로토콜
- 세션에 참여한 각 참여자들에게 주기적으로 제어 정보를 전송
- ICMP(internet Control Message Protocol) : IP와 조합, 통신 중에 발생하는 오류 처리 및 전송 경로 변경 등을 위한 제어 메시지 관리
- IGMP(Internet Group Management Protocol) : 멀티캐스트를 지원하는 호스트나 라우터 사이에서 멀티캐스트 그룹 유지를 위해 사용됨
- ARP/RARP
- ARP(Address Resolution Protocol) : IP->MAC(물리적주소)
- RARP(Reverse Address Resolution Protocol) : MAC -> IP
- 네트워크 신기술
- 메시 네트워크 : 대규모 디바이스의 네트워크 생성
- 피코넷 : 여러개의 독립된 통신장치가 통신망 형성
- 애드 훅 네트워크 : 재난 현장 같이 고정된 유선망 구축 불가시 모바일 호스트만 이용해 구성한 네트워크
- 파장 분할 다중화 : 광섬유를 이용한 통신기술. 여러대의 단말기가 동시에 통신회선사용가능
- SDDC(소프트웨어 정의 데이터센터) : 모든 자원을 소프트웨어 조작만으로 관리 및 제어되는 데이터 센터 의미
- LOD(개방형 링크드 데이터): Linked Data와 Open Data의 합성어 . 누구나 사용할 수 있도록 웹 상에서 공개된 연계 데이터
- 개별 URL로 식별하고 각 URL에 링크정보를 부여해 상호 연결 웹을 지향
- IoT : 실세계와 가상 세계의 다양한 사물들을 인터넷으로 서로 연결
- 클라우딩 컴퓨터 : 언제 어디서나 인터넷을 통해 컴퓨터 작업을 수행할 수 있는 가상화된 환경
- USN(유비쿼터스 센서 네트워크) : 각종 센서로 수집한 정보를 무선으로 수집할 수 있도록 구성한 네트워크
- 필요한 모든 것에 RFID를 부착
- 네트워크 구축
- 성형(중앙집중형)
- 링형(루프형)
- 버스형 : 한개의 통신 회선에 여러대의 단말 장치가 연결됨
- 계층형(Tree)
- 망형 : 모든 지점의 컴퓨터와 단말장치를 서로 연결. 노드가 n개일 때 n(n-1)/2개의 회선 필요, 노드 당 n-1개 포트 필요
- 네트워크 분류
- 근거리 통신망 : LAN
- 광대역 통신망 : WAN
- IEEE 802 주요 표준 규격 : 802.3 기억(CSMA/CD 방식 매체 접근 제어 계층 규약)
- IEEE 802.11 : 802.11e 기억(QOS 강화를 위해 mac 지원 기능 채택)
- NAT(Network Address Translation) : 네트워크 주소 변환은 한 개의 정식 ip주소에 대량의 가상 사설 ip주소 할당 및 연결
- 스위치 : 브리지와 같이이 lan과 lan을 연결하여 훨씬 더 큰 lan을 만드는 장치
- l2 스위치 : 일반적으로 부름. mac주소를 기반으로 프레임 전송. 2계층
- l3 스위치 : l2+라우터, ip주소 기반
- l4 스위치 : l3+로드밸런서, ip 및 tcp/udp 기반
- l7 스위치 : ip주소, tcp/udp 포트 정보, 패킹 내용까지 참조하여 세밀하게 로드밸런싱
- 경로제어(Routing) : 전송 경로 중 최적 패킷 교환 경로를 결정
- IGP: 내부 게이트웨이 프로토콜은 하나의 자율 시스템 내의 라우팅에 사용
- RIP : 거리 벡터 라우팅 프로토콜, 밸먼-포트 알고리즘 사용
- OSPF : RIP 단점 해결, 대규모 네트워크, 다익스트라 알고리즘
- EGP : 자율 시스템 간의 라우팅
- BFP : EGP 단점 보완. BFP 라우터들이 연결 될 때에는 전체 경로 제어표(라우팅 테이블)교환. 이후 변화된 정보만 교환
- IGP: 내부 게이트웨이 프로토콜은 하나의 자율 시스템 내의 라우팅에 사용
- 흐름제어 : 송수신 측 사이에 전송되는 패킷의 양이나 속도를 규제
- 정지-대기 : 확인 후 다음 패킷을 전송. 한 번에 하나의 패킷만을 전송
- 슬라이딩 윈도우 : 확인 신호를 이용해 송신 데이터의 양을 조절. 한번에 여러개의 패킷 전송 가능
- 패킷의 최대치 = 윈도우 크기
기타
- SW 관련 신기술
- 블록체인 : P2P네트워크, 디지털 장비에 분산 저장
- 매시업 : 웹에서 제공하는 정보 및 서비스를 이용하여 새로운 SW나 서비스, DB를 만드는 기술
- 서비스지향아키텍처(SOA) : 기업의 SW 인프라인 정보 시스템을 공유와 재사용이 가능한 서비스 단위나 컴포넌트 중심으로 구축하는 정보기술 아키텍처
- SOA기반 애플리케이션 구성 계층 : 표현, 업무 프로세스, 서비스 중간, 애플리케이션, 데이터 저장
- 디지털 트윈 : 현실 속의 사물을 소프트웨어로 가상화한 모델
- 그레이웨어 : 애드웨어나 트랙웨어, 기타 악성코드나 악성 공유웨어처럼 제공자 입장에선 유용, 사용자 입장에선 아닐수도
- 양자 암호 키 분배(QKD) : 양자 통신을 위해 비밀키를 분배하여 관리
- 두 시스템이 각자 양자 암호 키 분배시스템을 설치하여 운용하는 식으로 활용
- 서비스형 소프트웨어(SaaS) : sw의 여러 기능 중에서 사용자가 필요로 하는 서비스만 이용할 수 있도록 한 sw
- 리치 인터넷 애플리케이션(RIA) : 신개념 플래시 웹 페이지 제작 기술(플래시 애니메이션 기술 + 웹 서버 애플리케이션 기술)
- HW 관련 신기술
- 엔 스크린(N-Screen) : n개의 서로 다른 단말기에서 동일한 콘텐츠를 자유롭게 이용할 수 있는 서비스
- 신 클라이언트 PC(Thin Client PC) : HDD나 주변장치 없이 기본적인 메모리만 갖추고 서버와 네트워크로 운용되는 PC
- 서버 기반 컴퓨팅과 관련 깊음
- 엠디스크(M-DISC) : 한번의 기록만으로 자료를 영구 보관할 수 있는 광 저장장치
- 멤스(MEMS) : 초정밀 반도체 제조 기술을 바탕으로 센서, 엑추에이터 등 기계구조를 다양한 기술로 미세 가공하는 초미세장치
- 멤리스터 : 메모리+레지스터, 전류의 방향과 양등 기존의 경험을 모두 기억하는 특별한 소자
- 트러스터존 기술 : 하나의 프로세서 내 일반구역과 보안이 필요한 보안구역으로 분할하여 관리하는 HW기반 보안 기술
- RAID : 2개이상의 하드디스크로 디스크 배열 구성, 데이터 블록을 서로 다른 디스크에 분산 저장하거나 다중화
- RAID 0 : 스트라이핑. 디스크를 병렬로 연결, 하나의 디스크만 손상되어도 전체 디스크파손
- RAID 1: 미러링, 같은 데이터를 다른 디스크에 동일하게 복사
- RAID 2~4 : 하나의 디스크에 오류 정정 부호를 각각 비트/바이트/워드 단위로 저장
- 하나의 디스크가 손상되어도 정상 작동가능. 최소 3개 디스크 필요
- RAID5 : 오류 정정 부호를 여러 디스크에 분산저장
- 마찬가지로 최소 3개디스크 필요. 하나 디스크 손상되어도 정상 작동가능
- RAID6 : 오류 정정 부호를 2개를 여러 디스크에 분산 저장
- 2개의 디스크가 손상되어도 정상 작동 가능. 최소 4개 디스크 필요
- RAID0 : RAID0 영국은 중(중국)복 없는 스트라이핑 세트
- RAID1 : RAID1 일본은 미(미국)러링된 세트로 구성
- RAID2 : ECC를 기록하는 디스크 이용
- RAID3 : 삼바. RAID3(삼)은 바이트(바) 단위로 쪼개져서 세트 구성
- RAID4 : 불사조. RAID4(사)는 블록(블)록단위로 쪼개져서(조) 세트 구성
- RAID5 : 오모. RAID5(오)는 오류 정정 부호를 모(모)든 디스크에 저장. 패리티도 모(모든)디스크 저장
- RAID6 : 육사. RAID6(육)은 모든 RAID단계 중 유일하게 최소 4개(사)이상의 디스크 필요
- Secure OS : 보안 기능을 갖춘 커널을 이식한 보안형 OS
- 보안 커널 : TCB(Trusted Computing Base)를 기반으로 참조 모니터의 개념을 구현하고 집행
- 보안 기능 : 식별 및 인증, 임의적/강제적 접근 통제, 객체 재사용 보호, 완전한 조정 등
- 참조 모니터(Reference Monitor)
- 보호 대상 객체에 대한 접근 통제를 수행하는 추상 머신, 이것을 실제로 구현한 것이 보안커널
- db관련 신기술
- 하둡 : 오픈소스 기반한 분산 컴퓨팅 플랫폼
- 구글 맵리듀스 엔진 사용
- 더그 커팅과 마이크 캐퍼렐라 개발
- 자바 소프트웨어 프레임워크
- 맵리듀스 : 대용량 데이터를 분산처리하기 위한 목적으로 개발된 프로그래밍 모델
- 흩어져 있는 데이터를 연관성 있는 데이터 분류로 묶는 map 작업 수행 후
- 중복 데이터제거 & 원하는 데이터 추출하는 Reduce수행
- 데이터 마이닝 : 대량의 데이터를 분석하여 데이터에 내재된 변수 사이의 상호관계를 규명하여 일정한 패턴을 찾아냄
- 타조 : 아파치 하둡 기반의 분산 데이터 웨어하우스 프로젝트
- OLAP : 다차원으로 이루어진 데이터로부터 통계적인 요약 정보를 분석하여 의사결정에 활용하는 방식
- 브로드 데이터 : 다양한 채널에서 소비자와 상호 작용을 통해 생성된 효율적이고 다양한 데이터
- 하둡 : 오픈소스 기반한 분산 컴퓨팅 플랫폼
- 회복 : DB가 손상되었을 때 손상되기 이전 상태로 복구하는 작업
- REDO : 트랜잭션의 시작과 완료에 대한 기록이 있는 작업들을 재작업
- UNDO : 트랜잭션의 완료 기록은 없는 트랜잭션들이 작업한 변경 내용을 모두 취소
- 연기 갱신 기법 : 실질적인 갱신을 연기. REDO만 가능
- 즉각 갱신 기법 : 트랜잭션이 갱신하면 부분 완료되기 전이라도 실제 DB에 반영. REDO, UNDO 모두 가능
- 병행 제어 : 동시에 실행되는 트랜잭션들이 DB의 일관성을 파괴하지 않도록 트랜잭션간 상호 작용을 제어하는 것
- 로킹 : 액세스 하기전 LOCK(잠금)을 요청해서 Lock이 허락되어야만 그 로킹 단위를 액세스 할 수 있도록 하는 기법
- 주요 데이터 액세스를 상호 배타적으로 함
- 로킹 단위 : 한꺼번에 로킹할 수 있는 객체의 크기
- 로킹 단위가 크면 :로크수가 작아 관리 쉬움. 병행성 수준 낮음
- 로킹 단위가 작으면 : 로크수가 많아 관리 어려움. 병행성 수준 높음
- 교착상태(Dead Lock)은 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다림
- 상호 배제: 한번에 한개의 프로세스만 공유 자원 사용가능
- 점유와 대기 : 하나를 이미 갖고 있으면서 또 하나를 추가로 점유하기 위해 대기하는 프로세스
- 비선점: 사용 끝날 때까지 강제로 뺏기 불가
- 환형 대기 : 대기하는 프로세스들이 원형으로 구성, 점유와 대기 중 앞 혹은 뒤 프로세스 자원을 요구해야 함
- 위의 4가지 조건이 모두 만족해야 한다.
- 해결 방법
- 예방 기법 : 조건 중 하나를 제거함으로써 수행
- 회피 기법 : 주로 은행원 알고리즘이 사용
- 발견 기법 : 교착 상태각 발생했는지 점검
- 회복 기법 : 비선점을 선점으로 바꿔주거나, 교착상태를 일으킨 프로세스를 종료
- 타임 스탬프 순서 : 시간표(Time Stamp)를 부여하여 부여된 시간에 따라 트랜잭션 작업을 수행
- 순서를 정하는 방법 중 가장 보편적
- 로킹 : 액세스 하기전 LOCK(잠금)을 요청해서 Lock이 허락되어야만 그 로킹 단위를 액세스 할 수 있도록 하는 기법
출처
출처 : https://starrykss.tistory.com/1640
'정보처리기사 > 실기' 카테고리의 다른 글
정보처리기사 실기 용어 정리(2,3,4,7) (0) | 2023.04.21 |
---|---|
정보처리기사 - 통합구현 (0) | 2023.04.19 |
정보처리기사 - 11. 응용 SW기초 기술 활용 (1) | 2023.04.19 |
정보처리기사 - 10.프로그래밍 언어 활용 (0) | 2023.04.18 |
정보처리기사 - 9. 소프트웨어 보안 구축 (0) | 2023.04.18 |