ThLee
ThLee의 기록장
ThLee
전체 방문자
오늘
어제
  • 분류 전체보기 (137)
    • 정보처리기사 (13)
    • 알고리즘&문제 (5)
    • 인공지능 (4)
    • 자연어처리(NLP) (6)
    • 파이썬 (24)
    • 앱인벤터 강좌 (21)
    • 리눅스 (4)
    • 프로젝트 (1)
    • (App)톡분석AI (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 어플
  • AI
  • 블록코딩
  • 정보처리기사 실기 정리
  • 정보처리기사 실기
  • 파이썬
  • 정보처리기사 정리
  • 블로그
  • 앱인벤터 무료
  • 정처기
  • 앱인벤터
  • Python
  • 넘파이
  • 딥러닝
  • 인공지능
  • 판다스
  • 파이썬 넘파이
  • 앱인벤터 강좌
  • 정보처리기사
  • 앱인벤터 블로그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ThLee

ThLee의 기록장

[정보처리기사] 실기 정리 ( 3 / 3 )
정보처리기사

[정보처리기사] 실기 정리 ( 3 / 3 )

2022. 5. 3. 22:10
728x90

● SW 개발 보안

개발 과정에서 지켜야할 보안 활동
  • SW 개발 보안 생명주기
    • 요구사항 명세 -> 설계 -> 구현 -> 테스트 ->유지보수

● SW 개발 보안 3대 요소

  • 기밀성(Confidentiality) : 인가된 사용자에게만 접근이 허용
  • 무결성(Integrity) : 시스템 내의 정보는 오직 인가된 사용자만 수정할 수 있음(결점이 있으면 안됨)
  • 가용성(Availability) : 인가받은 사용자는 시스템 내의 정보와 자원을 언제라도 사용할 수 있음

● DoS 공격

시스템을 악의적으로 공격해서 해당 시스템의 자원을 부족하게 만들어, 원래 의도된 용도로 사용하지 못하게 하는 공격 

● DoS 공격 종류

(플러딩 : 패킷을 다른 노드로 전송하는 것)

  • SYN 플러딩 
    • 서버의 동시 가용 사용자수를 SYN 패킷만 보내 점유하여, 다른 사용자가 서버를 사용 불가능하게 하는 공격
  • UDP 플러딩
    • 대량의 UDP 패킷을 만들어 임의의 포트 번호로 전송하여, 응답 메시지를 생성하게 하여 지속하게 자원을 고갈시키는 공격
  • 스퍼프/스머핑
    • 출발지 주소를 대상의 IP로 설정하여 네트워크 전체에게 ICMP Echo패킷을 직접 브로드캐스팅하여 마비시키는 공격
  • 죽음의핑(PoD)
    • ICMP 패킷을 정상적인 크기보다 아주 크게 만들어 전송하여 정상적인 서비스를 못하도록 하는 공격
  • 랜드어택
    • 출발지 IP와 목적지 IP를 갖게하여 가용성을 침해하는 공격
  • 티어드롭
    • IP패킷의 재조합 과정에서 잘못된 정보로 인해 수신 시스템이 문제를 발생하도록 하는 공격
  • 봉크/보잉크
    • 프로토콜의 오류 제어를 이용한 공격

● DDoS

여러 대의 공격자를 분산 배치하여 동시에 동작하게함으로써 특정 사이트를 공격하는 기법

●  DDoS 공격 도구

  • Trinoo 
    • 많은 소스로부터 통합된 UDP flood 서비스 거부 공격을 유발하는 데 사용되는 도구
  • Tribe Flood Network
    • 많은 소스에서 하나 혹은 여러개의 목표 시스템에 대해 서비스 거부 공격을 수행할 수 있는 도구
  • Stacheldraht
    • 분산 서비스 거부 에이전트 역할을 하는 리눅스 및 Solaris 시스템용 멀웨어 도구

● DoS와 DDoS의 차이

1. DoS는 직접 공격, DDoS는 공격하도록 지시.
2. DoS는 한 사람이 공격, DDoS는 여러 사람(감염 호스트)이 공격

● DRDoS

공격자는 출발지 IP를 공격대상 IP로 위조하여, 다수의 반사 서버로 요청 정보를 전송, 공격 대상자는 반사 서버로부터 다량의 응답을 받아서 서비스 거부(DoS)가 되는 공격

● 세션 하이재킹

TCP의 세션 관리 취약점을 이용한 공격, 케빈 미트닉이 사용

● 애플리케이션 공격기법

  • HTTP GET 플러딩
    • 과도한 Get 메시지를 이용하여 웹 서버의 과부하를 유발시키는 공격
  • Slowloris
    • HTTP Get 메서드를 사용하여 헤더의 최종 끝을 알리는 개행 문자열을 전송하지 않고, 대상 웹 서버와 연결상태를 장시간 지속시키고, 연결자원을 모두 소진시키는 서비스 거부 공격
  • RUDY
    • 요청 헤더의 Content-Length를 비정상으로 크게 설정하여 메시지 바디 부분을 매우 소량으로 보내 계속 연결 상태를 유지시키는 공격
  • Slow HTTP Read DoS
    • 다수 HTTP 패킷을 지속적으로 전송하여 웹서버의 연결상태가 장시간 지속, 연결자원을 소진시키는 서비스 거부 공격
  • Hulk DoS
    • 공격자가 웹 페이지 주소를 지속적으로 변경하면서 다량으로 Get 요청을 발생시키는 서비스 거부 공격
  • Hash DoS
    • 많은 수의 파라미터를 POST방식으로 웹서버로 전달하여 다수의 해시 충돌을 발생시켜서 자원을 소모시키는 서비스 거부 공격

● 네트워크 공격

(스푸핑 : 다른 사람인 것처럼 위장하여 추적을 피하는 해킹 방법)

  • 스니핑
    • 공격대상의 데이터만 몰래 들여다보는 수동적 공격 기법
  • 네트워크 스캐너, 스니퍼
    • 네트워크 하드웨어, 소프트웨어 구성의 취약점을 파악을 위해 공격자가 취약점을 탐색하는 공격 도구
  • 패스워드 크래킹
    • 사전 크래킹 : ID와 PW가 될수 있는 단어를 파일로 만들어 대입하여 크랙하는 공격 기법
    • 무차별 크래킹 : 무작위로 패스워드 자리에 대입하여 패스워드를 알아내는 공격 기법
    • 패스워드 하이브리드 공격
    • 레인보우 테이블 공격
  • IP 스푸핑 
    • 침입자가 인증된 컴퓨팅 시스템인것 처럼 속여서 인증된 호스트의 IP주소로 위조하여 공격하는 기법
  • ARP 스푸핑
    • 공격자가 특정 호스트의 MAC 주소를 자신의 MAX 주소로 위조한 ARP Reply를 만들어 희생자에게 지속적으로 전송
  • ICMP Redirect 공격
    • 스니핑 시스템을 네트워크에 존재하는 또다른 라우터라고 알림으로써, 패킷의 흐름을 바꾸는 공격기법
  • 트로이 목마

● 버퍼 플로우 공격

메모리에 할당된 버퍼 크기를 초과하는 양의 데이터를 입력하여 프로세스의 흐름을 변경시켜서 악성 코드를 실행하는 공격기법

● 백도어

허가받지 않고 시스템에 접속하는 권리, 정상적인 인증절차를 우회하는 기법

● 보안 관련 용어

  • 스피어 피싱
    • 발송 메일의 본문 링크나 첨부된 파일을 클릭하도록 유도하여 사용자의 개인정보를 탈취하는 공격
  • 스미싱
    • SMS(문자)를 이용하여 개인 비밀정보를 요구하거나 휴대폰 소액 결제를 유도하는 피싱 공격
  • 큐싱
    • QR코드를 통해 악성 앱을 내려받도록 유도하여 금융 정보 등을 빼내는 공격
  • 봇넷
    • 악성 프로그램이 감염되어 있는 컴퓨터들이 네트워크로 연결된 형태
  • APT 공격
    • 다양한 수단을 통한 지속적이고, 지능적인 맞춤형 공격
  • 공급망 공격
    • SW개발사의 네트워크에 침투하여 악의적 코드를 삽입, 서버 배포하여 사용자가 설치 또는 업데이트시에 자동적으로 감염되도록 하는 공격
  • 제로데이 공격
    • 보안 취약점이 발견되어 널리 공표되기전에 해당 취약점을 악용하여 이루어지는 보안 공격
  • 웜
    • 스스로 복제하여 네트워크 등의 연겨을 통하여 전파하는 악성소프트웨어 프로그램
  • 악성 봇
    • 해커의 명령에 의해 원격에서 제어 또는 실행이 가능한 프로그램 또는 코드
  • 사이버 킬체인
    • 공격형 방위시스템, APT 공격방어 분석 모델
  • 랜섬웨어
    • 대상자의 파일을 암호화하여 돈을 요구하는 공격
  • 이블 트윈
    • 핫스팟에 연결한 무선 사용자들의 정보를 탈취하는 무선 네트워크 공격

● 서버 인증의 기능

스니핑 방지(SSL인증서 설치), 피싱 방지, 데이터 변조 방지, 기업 신뢰도 향상(기업 인증)

● 인증 기술의 유형

  • 지식지식 인증 : ID / PW
  • 소지기반 인증 : 공인인증서, OTP
  • 생체기반 인증 : 홍채, 얼굴, 지문
  • 특정기반 인증 : 서명, 몸짓

● 접근 통제 기법

  • 식별 : 자신이 누구라고 시스템에 밝히는 행위
  • 인증 : 주체의 신원을 검증하기 위한 활동
  • 인가 : 인증된 객체에게 접근을 허용하는 활동
  • 책임추적성 : 주체의 접근을 추적하고 행동을 기록하는 활동

● 서버 접근 통제 유형

  • 임의적 접근 통제(DAC)
    • 신분에 근거하여 객체에 대한 접근을 제한하는 방법
  • 강제적 접근 통제(MAC)
    • 주체가 갖는 접근 허가 권한에 근거하여 객체에 대한 접근을 제한하는 방법
  • 역할 기반 접근 통제(RBAC)
    • 중앙 관리자가 조직 내 맡은 역할에 기초하여 자원에 대한 접근을 제한하는 방법

● 접근 통제 보호 모델

  • 벨-라파듈라 모델(BLP)
    • 미 국방부지원 보안 모델, 보안 요소 중 기밀성을 가종하며, 강제적 정책에 의해 접근 통제하는 모델
    • No Read Up : 보안수준이 낮은 주체는 보안 수준이 높은 객체를 읽을수 없다
    • No Write Down : 보안수준이 높은 주체는 보안 수준이 낮은 객체에 기록할 수 없다
  • 비바 모델
    • 무결성을 보장하는 최초 모델
    • No Read Down : 높은 등급의 주체는 낮은 등급의 객체를 읽을 수 없다
    • No Write Up : 낮은 등급의 주체는 높은 등급의 객체를 수정할 수 없다

● 암호 알고리즘

데이터의 무결성 및 기밀성 확보를 위해 정보를 쉽게 해독할 수 없는 형태로 변환하는 기법
  • 양방향 방식 
    • 대칭키 암호방식(개인키)
    • 비대칭키 암호방식(공개키)
  • 단방향 해시함수 방식
    • MDC, MAC

● 대칭키 암호방식

암호화와 복호화 키가 같은 알고리즘
  • 블록 암호방식
    • 고정 길이의 블록을 암호화하여 반복하는 알고리즘
    • SEED : 블록 크기는 128bit, 키 길이는 128, 256
    • ARIA : 블록 크기는 128bit, 키 길이는 128, 192, 256
    • DES : 블록 크기는 64bit, 키 길이는 56bit
    • AES : 블록 크기는 128bit, 키 길이는 128, 192, 256
  • 스트림 암호방식
    • 매우긴 주기의 난수열열을 발생시켜 평문과 더불어 암호문을 생성하는 방식
    • RC4

● 비대칭키 암호방식

  • 공개키와 개인키가 있음
  • RSA
  • 디피-헬만

● 일방향 암호방식

임의 길이의 정보를 입력받아, 고정된 길이의 암호문(해시값)을 출력하는 암호방식
  • MAC
    • 키를 사용하는 메시지 인증 코드로 메시지의 무결성과 송신자의 인증 보장 
  • MDC
    • 키를 사용하지 않는 변경 감지 코드로 메시지의 무결성 보장

● 대칭키 암호화 알고리즘

  • DES : 1975년 IBM 개발, 대칭키 기반
  • SEED : 1999년 한국인터넷진흥원(KISA) 개발
  • AES : 2001년 미국 표준기술 연구소(NIST) 개발
  • ARIA : 2004년 국가정보원과 산학연구협회가 개발
  • IDEA : DES 대체, 스위스 연방기술기관 개발
  • LFSR : 선형함수로 계산되는 구조로 되어있는 스트림 암호화 알고리즘

● 비대칭키 암호화 알고리즘

  • 디피-헬만 : 최초의 공개키 알고리즘
  • RSA : 1977년 MIT 개발
  • ElGamal : 1984년 ElGamal 개발
  • ECC : 1985년 RSA 대안으로 개발

● 해시 암호화 알고리즘

  • MD5 : MD4 개선한 암호화 알고리즘
  • SHA-1 : 1993년 NSA에 미국 정부 표준 지정
  • SHA-256/384/512 : 256bit의 해시값을 생성하는 해시함수
  • HAS-160 : 국내 표준 서명 알고리즘
  • HAVAL : 메시지를 1024bit 블록으로 나눔

● IPSec

무결성과 인증을 보장하는 인증 헤더와 기밀성을 보장하는 암호화를 이용한 IP보안 프로토콜

● SSL/TLS

클라이언트와 서버간의 웹데이터 암호화, 상호인증 및 전송시 데이터 무결성을 보장하는 보안 프로토콜

● S-HTTP

웹상에서 네트워크 트래픽을 암호화하는 방법

● 시큐어 코딩 가이드

설계 및 구현 단계에서 해킹 등의 공격을 유발할 가능성이 있는 잠재적인 보안 취약점을 사전에 제거하고, 외부 공격으로부터 안전한 소프트웨어를 개발하는 기법

● 입력 데이터 검증 및 표현 취약점

  • XSS
    • 검증되지 않는 외부 입력 데이터가 포함된 웹페이지를 사용자가 열람함으로써 웹페이지에 포함된 부적절한 스크립트가 실행되는 공격
  • 사이트 간 요청 위조(CSRF)
    • 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격
  • SQL 삽입
    • 악의적인 SQL구문을 삽입, 실행시켜 데이터베이스의 접근을 통해 정보를 탈취하거나 조작하는 공격

● 보안 점검 항목

  • 보안 기능
    • 인증
    • 접근제어
    • 기밀성
    • 암호화
    • 권한관리
  • 에러 처리
  • 세션 통제
  • 코드 오류
  • 캡슐화
  • API 오용

● 네트워크 보안 솔루션

  • 방화벽
  • 웹 방화벽(WAF)
  • 네트워크 접근제어(NAC)
    • 단말기에 내부 네트워크에 접속을 시도할 때, 이를 제어하고 통제하는 기능을 제공하는 솔루션
  • 침입 탐지 시스템(IDS)
    • 네트워크에 발생하는 이벤트를 모니터링하고, 보안정책 위반 행위를 실시간으로 탐지하는 시스템
  • 침입 방지 시스템(IPS)
    • 네트워크에 대한 공격이나 침입을 실시간적으로 차단하고, 유해트래픽에 대해 능동적으로 조치하는 시스템
  • 무선 침입 방지 시스템(WIPS)
  • 통합 보안 시스템(UTM)
    • 다양한 보안 장비의 기능을 하나의 장비로 통합하여 제공하는 시스템
  • 가상사설망(VPN)
    • 인터넷과 같은 공중망에 인증, 암호화, 터널링 기술을 활용해 마치 전용망을 사용하는 효과를 가지는 보안 솔루션

● 시스템 보안 솔루션

  • 스팸 차단 솔루션
  • 보안 운영체제(Secure OS)

● 소프트웨어 개발 보안테스트 유형

  • 정적 분석
  • 동적 분석

● 비즈니스 연속성 계획(BCP)

각종 재해, 장애, 재난으로부터 위기관리 기반으로 재해복구, 업무복구 및 재개, 비상계획 등을 통해 비즈니스 연속성을 보장하는 체계

 


● 애플리케이션 테스트

애플리케이션에 잠재되어 있는 결함을 찾아내는 행위

● 애플리케이션 테스트 원리

  • 완벽한 테스팅은 불가능
    • 결함을 줄일 수는 있으나, 결함이 없다고 증명할 수 없다
  • 파레토 법칙
    • 전체 80%가 전체 원인의 20%에서 일어나는 현상
  • 살충제 패러독스
    • 동일한 테스트를 반복하면 더이상 결함이 발견되지 않는 현상
  • 정황 의존성
    • 소프트웨어 성격에 맞게 테스트 실시
  • 오류-부재의 궤변
    • 요구사항을 만족하지 못한다면, 결함이 없다고 해도 좋은 것은 아니다

● 프로그램 실행 여부에 따른 분류

  • 정적 테스트
    • 테스트 대상을 실행하지 않고, 구조를 분석하여 논리성을 검증하는 테스트
      • 리뷰
      • 정적 분석
  • 동적 테스트
    • 소프트웨어를 실행하는 방식으로 테스트를 수행하며, 결함을 검출하는 테스트
      • 화이트박스 테스트
      • 블랙박스 테스트
      • 경험기반 테스트

● 화이트박스 테스트

원시 코드의 논리적인 모든 경로를 테스트하여 테스트 케이스를 설계하는 방법(구조 검사)

● 화이트박스 테스트 유형

(커버리지 : 테스트케이스가 얼마나 충족되었는지 나타내는 지표)

그림문제 나올수 있음!

  • 구문(문장)커버리지 : 프로그램 내의 모든 명령문을 적어도 한 번 수행하는 커버리지
  • 결정 커버리지 : 결정 포인트 내의 전체 조건식이 적어도 한번은 참과 거짓의 결과가 되도록 수행되는 커버리지
  • 조건 커버리지 : 결정 포인트 내의 각 개별 조건식이 적어도 한번은 참과 거짓의 결과가 되도록 수행하는 커버리지
  • 조건/결정 커버리지 : 전체 조건식&개별 조건식 모두 참 한번, 거짓 한번 결과가 되도록 수행하는 커버리지
  • 변경 조건/결정 커버리지 : 개별 조건식이 다른 개별 조건식에 영향을 받지 않고, 전체 조건식에 독립적으로 영향ㅇ르 주도록 하는 커버리지
  • 다중 조건 커버리지 : 결정 조건 내 모든 개별 조건식의 모든 가능한 조합을 100%보장하는 커버리지
  • 기본 경로 커버리지 : 수행 가능한 모든 경로를 테스트 하는 기법
  • 제어흐름 테스트 : 프로그램 제어 구조를 그래프 형태로 나타내어 내부 로직을 테스트하는 기법
  • 데이터흐름 테스트 : 제어 흐름 그래프에 사용현황 추가한 테스트 기법

● 블랙박스 테스트

사용자의 요구사항 명세를 보면서 수행하는 테스트(기능 검사)

● 블랙박스 테스트 유형

  • 동등 분할 테스트
    • 입력 데이터의 영역을 유사한 도메인별로 유효값/무효값을 그룹핑하여 대표값 테스트 케이스를 도출하는 테스트 하는 기법
  • 경계값 분석 테스트
  • 결정 테이블 테스트
  • 상태 전이 테스트
  • 유스케이스 테스트
  • 분류 트리 테스트
  • 페어와이즈 테스트
  • 원인-결과 그래프 테스트
  • 비교 테스트

● 테스트 시각에 따른 분류

  • 검증 : 개발 과정을 테스트, 개발자 시점
  • 확인 : 결과를 테스트, 사용자 시점

● 테스트 목적에 따른 분류

  • 회복 테스트
    • 시스템에 고의적으로 실패를 유도하고, 정상적으로 복구하는지를 테스트하는 기법
  • 안전 테스트
    • 불법적인 소프트웨어가 접근하여 시스템을 파괴하지 못하도록, 소스코드 내의 보안적인 결함을 미리 점검하는 테스트 기법
  • 성능 테스트
    • 시스템이 응답하는 시간, 특정 시간내에 처리하는 업무량, 사용자 요구에 시스템이 반응하는 속도 등을 측정하는 테스트 기법
      • 부하 테스트 : 부하를 증가시켜, 시스템의 임계점을 찾는 테스트
      • 강도 테스트 : 임계점 이상의 부하를 가하여 비정상적인 상황에서의 처리 테스트
      • 스파이크 테스트 : 짧은 시간에 사용자가 몰릴때, 시스템의 반응 측정 테스트
      • 내구성 테스트 : 오랜 시간 동안 시스템에 높은 부하를 가하는 테스트
  • 구조 테스트
    • 시스템의 내부 논리경로, 소스 코드의 복잡도를 평가하는 테스트 기법
  • 회귀 테스트
    • 시스템의 변경 도는 수정된 코드에 새로운 결함이 없음을 확인하는 테스트 기법
  • 병행 테스트
    • 변경된 시스템과 기존 시스템에 동일한 데이터를 입력 후, 결과를 비교하는 테스트 기법

● 테스트 종류에 따른 분류

  • 명세기반 테스트(블랙박스 테스트)
  • 구조기반 테스트(화이트박스 테스트)
  • 경험기반 테스트(블랙박스 테스트)

● 테스트케이스

사용자의 요구사항을 정확하게 준수했는지를 확인하기 위해 설계된 테스트 항목에 대한 명세서

● 테스트오라클

테스트 결과가 올바른지 판단하기 위해 사전에 정의된 참 값을 대입하여 비교하는 기법

● 테스트오라클 종류

  • 참 오라클
    • 모든 입력값에 대하여 기대하는 결과를 제공하는 오라클
  • 샘플링 오라클
    • 특정한 몇 개의 입력값에 대해서만 기대하는 결과를 제공해주는 오라클
  • 휴리스틱 오라클
    • 특정 입력값에 올바른 결과를 제공하고, 나머지 값들에 대해서는 추정으로 처리하는 오라클
  • 일관성 오라클
    • 애플리케이션 변경이 있을 때, 수행 전과 후의 결과값이 동일한지 확인하는 오라클

● 테스트 레벨

함께 편성되고 관리되는 테스트 활동의 그룹

● 테스트 레벨 종류

  • 단위 테스트
  • 통합 테스트
  • 시스템 테스트
  • 인수 테스트

● 테스트 단계

  • 단위 테스트 -> 통합 테스트 -> 시스템 테스트 -> 인수 테스트

● 인수 테스트

  • 사용자 인수테스트
  • 운영상의 인수테스트
  • 계약 인수테스트
  • 규정 인수테스트
  • 알파 테스트
    • 개발자의 장소에서 사용자와 개발자가 함께하는 테스트
  • 베타 테스트
    • 사용자의 실제 환경에서 테스트

● 테스트 시나리오

테스트 수행을 위한 여러 테스트 케이스의 집합, 케이스의 동작 순서를 기술한 문서이며, 테스트를 위한 절차를 명세한 문서

● 단위 테스트

모듈을 테스트

● 목(Mock) 객체 생성 프레임워크

  • 더미 객체
  • 테스트 스텁
  • 테스트 드라이버
  • 테스트 스파이
  • 가짜 객체

● 통합테스트

모듈을 결합하여 하나의 시스템으로 완성시키는 과정에서의 테스트

● 통합 테스트 수행방법 간 비교

  • 빅뱅 테스트
    • 모든 모듈을 동시에 통합 후 테스트 수행
    • 드라이버/스텁 없이 실제 모듈로 테스트
  • 하향식 테스트
    • 스텁 필요
  • 상향식 테스트
    • 드라이버 필요
  • 샌드위치 테스트
    • 상위는 하향식, 하위는 상향식 테스트
    • 스텁 + 드라이버 필요

● 테스트 자동화 도구

테스트 작업을 스크립트 형태로 구현함으로써, 쉽고 효율적인 테스트를 수행할 수 있는 도구

● 테스트 자동화 도구 유형

  • 정적 분석도구
    • 만들어진 애플리케이션을 실행하지 않고 분석하는 도구
  • 테스트 실행도구
    • 테스트를 위해 작성된 스크립트를 실행하고, 스크립트 언어를 사용하여 테스트를 실행하는 도구
  • 성능 테스트도구
    • 가상의 사용자를 생성하고 테스트를 수행하여 목표를 달성했는지 확인하는 도구
  • 테스트 통제도구
    • 테스트 계획 및 관리, 테스트 수행, 결함 관리 등을 수행하는 도구
  • 테스트 하네스도구
    • 테스트가 실행될 환경을 시뮬레이션하여 컴포넌트 및 모듈이 정상적으로 테스트되도록 하는 도구

● 테스트 하네스 구성요소

  • 테스트 드라이버
  • 테스트 스텁
  • 테스트 슈트
  • 테스트 케이스
  • 테스트 시나리오
  • 테스트 스크립트
  • 목 오브젝트

● 결함 분석 방법

  • 구체화
    • 결함의 원인을 찾기 위해 결함을 발생시킨 입력값, 테스트 절차, 테스트 환경을 명확히 하는 방법
  • 고립화
    • 입력값, 테스트 절차, 테스트 환경 중 어떤 요소가 결함 발생에 영향을 미치는지 파악하는 방법
  • 일반화
    • 결함 발생에 영향을 주는 요소를 최대한 일반화 시키는 방법

● 테스트 커버리지

주어진 테스트케이스에 의해 수행되는 소프트웨어 테스트 범위를 측정하는 테스트 품질 측정 기준

● 테스트 커버리지 유형

  • 기능기반 커버리지
    • 전체 기능을 모순으로 설정하고, 실제 테스트가 수행된 기능의 수를 측정하는 방법
  • 라인 커버리지
    • 전체 소스 코드의 라인수를 모순으로 테스트 시나리오가 수행한 소스 코드의 라인수를 측정하는 방법
  • 코드 커버리지
    • 소스 코드의 구문, 조건, 결정 등의 구조 코드 자체가 얼마나 테스트되었는지를 측정하는 방법

● 결함 심각도별 분류

  • 단순 결함 : 미관상 안좋음
  • 경미한 결함 : 표준위반
  • 보통 결함 : 사소한 기능 오작동
  • 주요 결함 : 기능 장애
  • 치명적 결함 : 데이터 손실

● 결함 우선순위

  • 낮음
  • 보통
  • 높음
  • 결정적

● 애플리케이션 성능 측정 지표

  • 처리량
  • 응답 시간
  • 경과 시간
  • 자원 사용률

● 데이터베이스 성능 저하 원인

  • 데이터베이스 락(DB Lock)
  • 불필요한 데이터베이스 패치(DB Fetch)
  • 연결 누수
  • 부적절한 커넥션 풀 크기
  • 확정 관련

● 배드 코드

  • 외계인 코드 : 아주 오래되거나 참고문서 또는 개발자가 없어 유지보수가 어려운 코드
  • 스파게티 코드 : 소스 코드가 복잡하게 얽힌 모습, 정상작동은 하지만 코드의 작동을 파악하기 어려운 코드

● 클린 코드

  • 가독성
  • 단순성
  • 의존성 최소
  • 중복성 제거
  • 추상화

● 리팩토링

기능의 변경 없이, 코드를 보완하는 기법

 

● 운영체제(OS)

  • 종류
    • 윈도우
    • 유닉스
    • 리눅스
    • 맥
    • 안드로이드

● 메모리 관리 기법

  • 최초 적합(First-fit)
  • 최적 적합(Best-fit)
  • 최악 적합(Worst-fit)

● 프로세스 상태

  • 생성 
  • 준비
  • 대기
  • 실행
  • 완료

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

  • 선점형 스케줄링 : 우선순위가 높은 프로세스부터 스케줄링
    • 라운드로빈 : 프로세스는 같은 크기의 CPU 시간을 할당
    • SRT : 가장 짧은 시간이 소요되는 프로세스를 먼저 수행
    • 다단계 큐 : 여러개의 큐를 이용하여 상위단계 작업에 의한 하위단계 작업이 선점
    • 다단계 피드백 큐 : 큐마다 서로 다른 CPU시간 할당량을 부여(FIFO + 라운드로빈 혼합형)
  • 비선점형 스케줄링 : 프로세스가 작업 종료 전까지 다른 프로세스가 작업을 못하는 스케줄링
    • 우선순위 : 프로세스별 우선순위에 따라 CPU 할당
    • 기한부 : 작업들이 명시된 기한 내에 완료되도록 계획
    • FCFS : 먼저 큐에 도착한 놈이 먼저 할당
    • SJF : 가장 짧은 작업부터 수행, 평균대기 시간 최소화, 기아현상 발생
    • HRN : 대기중인 프로세스 중 현재 응답률이 가장 높은것을 선택, 기아현상 최소화

● 가상화

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

● 클라우드 컴퓨팅

인터넷을 통해 가상화된 컴퓨터 시스템 리소스 제공

● 클라우드 컴퓨팅 유형

  • 인프라형 서비스(IaaS) : 자원을 클라우드로 제공하는 서비스
  • 플랫폼형 서비스(PaaS) : 개발, 실행, 관리할 수 있게 플랫폼을 제공하는 서비스
  • 소프트웨어형 서비스(SaaS) : 클라이언트를 통해 접속해서 소프트웨어 서비스 형태로 이용하느 ㄴ서비스

● 네트워크

원하는 정보를 수신자 또는 기기에 정확하게 전송하기 위한 기반 인프라
  • WAN
  • LAN

● OSI 7계층(물데네전세표응)

응용 계층 사용자와 네트워크 간 응용 서비스 연결 및 데이터 생성 -HTTP
-FTP
데이터 호스트
표현 계층 데이터 형식 설정, 부호교환, 암복호화 -JPEG
-MPEG
세션 계층 -송수신 간의 논리적인 연결
-연결접속, 동기제어
-RPC
-NetBIOS
전송 계층 -송수신 프로세스 간의 연결
-신뢰성 있는 통신 보장
-데이터 분할, 재조립, 흐름제어, 오류 제어, 혼잡 제어
-TCP
-UDP
세그먼트 L4 스위치
네트워크 계층 단말기 간 데이터 전송을 위한 최적화된 경로 제공 -IP
-ICMP
패킷 라우터
데이터링크 계층 -인접 시스템 간 데이터 전송 및 전송 오류 제어
-동기화,오류제어,흐름제어,회선제어
-HDLC
-PPP
프레임 브리지, L2 스위치
물리 계층 0과1로 비트정보를 회선에 보내기 위한 전기적 신호 변환 RS-232C 비트 허브, 리피터
  • 허브 : 하나의 네트워크로 수신된 정보를 여러 대의 컴퓨터로 송신하기 위한 장비
  • 리피터 : 디지털 신호를 증폭시켜주는 역할
  • 브리지 : LAN을 연결해주는 장치
  • L2 스위치 : MAC주소 기반으로 빠르게 전송시키는 데이터링크 계층의 통신장치
  • L4 스위치 : 4계층에서 네트워크 단위들을 연결해주는 통신 장비
  • 라우터 : 최적의 경로를 찾아주는 장비
  • 게이트웨이 : 프로토콜을 서로 다른 통신망에 접속할 수 있게 해주는 장치

● 프로토콜 3요소

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

● 네트워크 프로토콜

컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고받는 양식과 규칙의 세계

● 데이터링크 계층 프로토콜(2계층)

  • HDLC : 점대점 방식이나 다중방식 통신에 사용되며, 동기식 비트 중심
  • PPP(Point-to-Point Protocol) : 네트워크 분야에서 두 통신 노드 간의 직접적인 연결
  • 프레임 릴레이
  • ATM : 53바이트 셀 단위로 전달하는 비동기식 시분할 다중화 방식의 패킷형 전송 기술

● 네트워크 계층 프로토콜(3계층)

  • IP : 송수신 간의 패킷 단위로 데이터를 교환하는 네트워크에서 정보를 주고 받는데 사용
  • ICMP : IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜
  • IGMP : 그룹 멤버쉽을 구성하는데 사용하는 프로토콜
  • ARP : IP주소를 MAC주소(물리주소)로 변환하는 프로토콜
  • RARP : MAC주소를 IP주소로 역변환하는 프로토콜
  • 라우팅 프로토콜 : 최적의 경로를 찾아주는 프로토콜

● IPv4

  • 32bit
  • 8bit x 4 
  • 0 ~ 255 
  • 유니캐스트, 멀티캐스트, 브로드캐스트

● IPv4 클래스 분류

  • A 클래스 : 0 ~ 127 
  • B 클래스 : 128 ~ 192
  • C 클래스 : 193 ~ 223
  • D 클래스 : 224 ~ 239
  • E 클래스 : 연구를 위해 예약된 주소

● IPv6

  • 128bit
  • 16bit x 8으로 나눈 16진수
  • 유니캐스트, 멀티캐스트, 애니캐스트

● IPv4 -> IPv6 전환 방법

  • 듀얼스택
  • 터널링
  • 주소변환방식

● 라우팅 프로토콜

  • 내부 라우팅 프로토콜(IGP)
    • RIP : AS(자율시스템)내에서 사용하는 거리벡터 알고리즘에 기초하여 개발된 내부 라우팅 프로토콜
    • OSPF : 자신을 기준으로 링크상태 알고리즘을 적용하여 최단 경로를 찾는 라우팅 프로토콜
  • 외부 라우팅 프로토콜(EGP)
    • BGP : AS(자율시스템)상호 간에 경로 정보를 교환하기 위한 라우팅 프로토콜

● TCP

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

● UDP

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

● 표현계층 프로토콜(6계층)

  • JPEG : 이미지 
  • MPEG : 멀티미디어(비디오,오디오)

● 응용계층 프로토콜(7계층)

  • HTTP : 텍스트 기반의 통신규약, 하이퍼텍스트를 빠르게 교환하기 위한 프로토콜
  • FTP : 파일 전송을 위한 프로토콜
  • SMTP : 이메일 전송 프로토콜
  • POP3 : 이메일 받는 프로토콜
  • IMAP : 이메일 받는 프로토콜
  • Telnet : 로컬 영역에서 네트워크 연결에 사용되는 프로토콜
  • SSH(Secure Shell) : 서로 연결되어 있는 컴퓨터 간 원격 명령 실행이나 쉘 서비스 등을 수행
  • SNMP : 라우터나 허브 등 네트워크 장치로부터 정보를 수집 및 관리

● 패킷교환 방식

작은 블록의 패킷으로 데이터를 전송하여 데이터를 전송하는 동안만 네트워크 자우너을 사용하도록 하는 통신 방식

● 패킷 교환 방식 기술

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

● 서킷 교환 방식

네트워크 리소스를 특정 사용층이 독점하도록 하는 통신 방식
ex) 영상, 비디오

● 애드 혹 네트워크 

노드들에 의해 자율적으로 구성되는 기반 구조가 없는 네트워크

● 개발환경 인프라 구성 방식

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

'정보처리기사' 카테고리의 다른 글

[정보처리기사] SQL 문법 종합 정리  (0) 2022.05.06
[정보처리기사] 정처기 헷갈리는 단어 정리  (0) 2022.05.06
[정보처리기사] 구성요소, 프로세스(절차) 모음  (0) 2022.05.04
[정보처리기사] 실기 정리 ( 2 / 3 )  (0) 2022.05.03
[정보처리기사] 실기 정리 ( 1 / 3 )  (0) 2022.05.02
    '정보처리기사' 카테고리의 다른 글
    • [정보처리기사] 정처기 헷갈리는 단어 정리
    • [정보처리기사] 구성요소, 프로세스(절차) 모음
    • [정보처리기사] 실기 정리 ( 2 / 3 )
    • [정보처리기사] 실기 정리 ( 1 / 3 )
    ThLee
    ThLee
    # 포트폴리오 https://thleewave.notion.site/ThLee-1fef9e057dbf40d5b7b851ab0abccf36?pvs=4 #Github - https://github.com/git-ThLee #IoT 스타트업 -Full-stack -2021.01~2021.07 -사용기술 : fluterr, arduino, node.js #코딩학원 강사 - 2019.11 ~ 진행중 - 언어 : python, 블록 코딩 - 플랫

    티스토리툴바