정보처리기사 실기 정리 - 1

DSeung·2022년 5월 6일
1

정보처리기사

목록 보기
15/18

ARP, RARP, GARP, ICMP

  • ARP(Address Resolution Protocol) : IP 주소를 이용해 MAC 주소를 알아오는 프로토콜
  • RARP(Reverse Address Resolution Protocol) : MAC 주소에 해당하는 IP 주소를 알아오는 프로토콜
  • GARP(Gratuious ARP) : 송신 IP와 수신 IP가 동일 ARP 요청으로 자신의 존재를 알리는게 목적
  • ICMP(Internet Control Message Protocol) : L3 프로토콜로 같은 L3인 IP가 패킷 전송을 실패 했을 때 이를 알려주는 IP를 보조하는 역할
  • DHCP(Dynamic Host Configuration Protocol) : UDP 기반 프로토콜로 서버가 클라이언트에게 IP 주소를 실시간으로 부여할 수 있다,

데이터베이스 설계

"개논물" 외우기

개념적 설계

DBMS에 독립적인 E-R 다이어그램을 작성하거니 현실 사물이나 대상의 인식을 해서 설계하는 단계

논리적 설계

개념적 설계의 결과물을 물리적 저장장치에 저장할 수 있도록 변환하기 위해 특정 DBMS에서 지원하는 논리적 자료 구조로 변환

물리적 설계

개념적 설계와 논리적 설계로 표현된 구조의 데이터를 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터베이스로 변환


관계형 데이터 베이스 구조

튜플(Tuple)

릴레이션을 구성하는 각각의 행, 속성(Attribute)의 모임으로 구성하며 파일 구조의 레코드와 동일 의미

카디널리티(Cadinality)

속성의 수 = 카디널리티 = 차수

도메인(Domain)

하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자값들의 집합

릴레이션 인스턴스(Relation Instance)

데이터 개체를 구성하고 있는 속성들에 타입이 적용되어 구체적인 데이터를 지닌 것을 말함


서비스 지향 아키텍처(Service Oriented Architecture, SOA)

  • 2000년대 초반에 부각된 아키텍처 스타일로 대용량 분산 시스템 구현에 활용됨
  • 세부 기술은 변했으나 현대의 분산 시스템 아키텍처 사상으로 그대로 반영

관련 기술

  • XML(eXtensible Markup Language)
    SGML의 단순화된 부분집합으로 다른 많은 종류의 데이터를 기술하는 데 사용되며 데이터를 쉽게 주고 받게 하여 HTML의 한계를 극복할 목적으로 만들어짐

  • SGML(Standard Generalized Markup Language)
    문서용 마크업 언어를 정의하기 위한 메타 언어이다, IBM에서 1960년 대에 개발한 GML(Generalized Markup Language)의 후속이며 ISO 표준이다

  • WSDL(Web Services Description Language)
    웹 서비스가 제공하는 서비스에 정보를 기술하기 위한 XML 기반 마크업 언어

  • UDDI(Universal Description, Discovery and Integration)
    웹 서비스에 대한 정보를 게시하고 목록을 제공할 수 있도록 하는 XML 기반의 구조화된 레지스트리

  • SOAP(Simpe Object Access Protocol)
    HTTP 프로토콜을 이용해 XML 기반의 메시지를 교환하는 프로토콜

  • RPC(Remote Procedure Call)
    별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에서 함수나 프로시저를 실행할 수 있게 하는 프로세스 간 통신 기술

  • XML-RPC
    XML 기반의 분산 시스템 통신 방법으로 HTTP를 이용하여 간단하고 이식성 높은 RPC를 말함


소프트웨어 테스트

노출되지 않는 숨어있는 결함을 찾기 위해 소프트웨어를 작동시키는 열련의 행위와 절차

테스트의 일반적인 원리

원리 내용 원인
결함 발견 결함 제거가 아닌 결함의 발견을 목적 Test 본연의 역할 수행
불완전성 완벽한 테스팅은 불가능하다(무한 경로, 무한 입력값, 무한 타이밍 등이 없음) 자원의 한계
정황 의존성 테스트는 테스트 주변에 의한 영향을 받음 외부요소, 심리 요소
초기 집중(요르돈 법칙 = Snowball Effect) 개발 설계시 부터 테스트를 고려, 결함의 조기 발견 및 재유입 방지 품질 비용감소
결합 집중 결함의 80%는 20% 코드에 집중, 결함이 높은 곳에 자원 집중 파레토 법칙
살충제 패러독스 동일한 테스트 전략, 기법을 적용할 시 내성이 생김 테스터의 수동적 자세
오류-부재 궤변 결함이 모두 제거 되었다고해서 품질이 우수하다고 볼 순 없음 SW 요구사항 불만족

테스트 종류

단통시인

테스트 세부내용
단위 테스트(Unit Test, Component Test) 함수, 모듈, 기능 등 세부 단위별로 수행하는 소프트웨어 테스트
통합 테스트(Integration Test) 단위 테스트 이후 단위 간의 결합에 대한 소프트웨어 테스트

- 상향식(Bottom-up) 통합 : 하위 모듈부터 개발한 경우, 상위 모듈 대신에 테스트 드라이버(테스트 하네스)를 이용
- 하향식(Top-Down) 통합 : 상위 모듈부터 개발한 경우, 하위 모듈 대신에 스텁을 이용
- 백본 통합 : 샌드위치 테스트로 특정 모듈을 중심으로 상하위 임시 모듈을 연결하여 테스트, 상향, 하향식 순차 개발이 아닌 중요 기능 중심의 빠른 개발 및 테스트 방식
- 빅뱅 통합 : 상하위 모듈이 모두 개발된 후 드라이버, 스텁 없이 실제 개발된 모듈로 통합 테스트
시스템 테스트(System Test) 개발 프로젝트 범위에서 정의된 시스템 또는 제품의 동작에 대해 수행하는 소프트웨어 테스트로 단위, 통합에서 보지 못한 시스템 전반의 구조적 제약을 찾음

기능 요구사항
- 주로 기능 요구사항을 기준으로 블랙박스 테스트를 수행
- 결정 테이블이나 요구사항 추적표를 이용


비기능 요구사항
- 회복 테스트(Recovery Test) : 유사시 시스템 자동 재초기화, 데이터 회복 등을 수행 확인(Ex: Power off)
- 보안 테스트(Security Test) : 불법적인 침투로부터 기밀성,무결성,가용성을 보호 확인(Ex: SQL Injection, CSRF)
- 강도 테스트(Stress Test) : 비정상적인 값, 양, 빈도 등의 스트레스에 대한 정상 동작 확인(Ex: Overlfow, 부하 테스트)
- 민감도 테스트(Sensitivity Test) : 부적절한 결과를 일으키는 데이터 조합을 검출(Ex: Data Tyep, 경계값 점검)
- 성능 테스트(Performance Test) : 시스템 효율성 진단, 자원 이용, 처리시간 등 성능 확인(Ex: Troughput, TPS)

SRS(Software Requirement Sepecification) : 클라이언트로부터 요구사항을 추출,분석,정제화하여 이를 분류하고 명세화한 문서
RFP(Request for Proposal) : 발주자가 특정 과제의 수행에 필요한 요구사항을 체계적으로로 정리하여 제시함으로써 제안자가 제안서를 작성하는데 도움을 주기 위한 문서
인수 테스트(Acceptance Test) - 알파 테스트 : 통제된 환경, 선별된 사용자가 개발자와 함께 수행하는 테스트
- 베타 테스트 : 실제와 동일한 환경, 사외의 사용자들이 테스트하고 피드백을 받는 방법
설치 테스트(Install Test) - 하드웨어 호환성 - 파일시스템 구성 - 다른 소프트웨어와의 연계

접근방법에 따른 구분

정적 테스트

  • 동료 검토(Peer Review) : 아키텍처를 개발한 프로그래머와 다른 한 두명의 프로그래머가 테스터 또는 검토자 역할을 수행하는 것
  • 워크스루(Walkthroughs) : 계획된 개발자 검토 회의, 비공식 기술적 검토회의
  • 정형 기술 검토 : 소프트웨어가 배포된 후에 결함이 되는 오류들을 프로세스 동안에 발견하는 것
  • 검사(Inspection) : 공식적 검사 회의로 발표자가 개발자가 아니며, 검토 방법 중 가장 공식적인 형태

동적 테스트
소스 코드 열람에 따른 구분

  • 화이트 박스 테스트 : 개발자의 관점에서 요구사항을 단위테스팅 하는 기법이다

    • 기초 경로 검증 : 수행 가능한 모든 경로 검사
    • 문장 검증 : 프로그램의 코드가 전체 다 수행되는지 검증
    • 분기 검증 : 프로그램의 로직에 있는 분기를 최소 한번 실행하게 하는 테스트
    • 조건 검증 : 조건문의 모든 조건식에 만족하는 경우와 만족하지 않은 경우를 검사
    • 데이터 흐름 검증 : 프로그램에서 변수의 정의와 변수 사용의 위치에 초점을 맞추어 검사
    • 루프 검증 : 프로그램의 반복 구조에 초엄을 두어 검사
  • 블랙 박스 테스트 : 소프트웨어 내부 구조나 작동 원리를 모르는 상태에서 동작을 검사

    • 동치 분할 테스트 : 프로그램의 입력 데이터를 여러 분류로 나누어 검사
    • 경계값 분석 : 입력값의 경계값을 중심으로 예외 발생 검사
    • 원인-효과 그래프 기법 : 입력데이터 간의 관계, 출력에 미치는 영향의 분석 그래프 이용
    • 오류 예측 검사 : 테스터의 감각이나 경험, 지식을 통해 에러 케이스 예측
    • 비교 검사 : 테스트 대상과 비교 대상 프로그램에 같은 입력값을 넣어 데이터 비교

테스트 오라클

테스트를 수행한 결과가 참인지 거짓인지를 판단하기 위해서 미리 정의된 참 값을 대입하여 비교하는 기법

유형

  • 참 오라클(True Oracle) : 모든 테스트 케이스의 입력값의 기대한 결과값에 대한 확인, 전수 테스트 가능
  • 샘플링 오라클(Sampling Oracle) : 특정 몇몇 입력 값들에 대해서만 원하는 결과를 제공하는 오라콜, 전수 테스트 불가능, 경계값과 구간별 예상 값 결과 작성이 사용
  • 휴리스틱 오라클(Heuristic Oracle) : 샘플링 오라클에 휴리스틱 입력값을 더하여 처리, 확률이나 직관에 의해 예상 결과 작성
  • 일관된 오라클(Consistent Oracle) : 이전 수행 결과와 현재 수행 결과의 동일성 검증, 회귀테스트 수정 전후의 프로그램 실행 결과 확인 또는 비교시 사용

IPC(프로세스 간 통신, Inter-Process Communication)

프로세스들 사이에 서로 데이터를 주고 받는 행위 또는 그에 대한 방법이나 경로이다.

주요 통신 방법은
파일, 신호, 소켓, 메시지 큐, 파이프, 세마포어, 공유 메모리, 메시지, 메모리 맵 파일 등으로 통신힌다.


EAI(Enterprise Application Integration)

엔터프라이즈의 미들웨어를 인프라로 하여 다양한 이질적 기업환경(애플리케이션, 데이터, 플랫폼 및 네트워크 등)을 통합하여 하나의 시스템으로 관리 운영할 수 있는 유기적 시스템

통합방식

Peer to Peer(Point to Point)

  • 중간 미들웨어 없이 애플리케이션 간 별도 통신으로 연계
  • 솔루션 도입 없이 개발자간 커뮤니케이션으로 구현 가능

Hub & Spoke

  • 단일 접점으로 주변과 연계하는 일종의 중앙집중 방식
  • 모든 데이터가 허브 시스템에 저장되었다가 전달

Messaging Bus (information Bus)

  • 메시지 전송로(버스) 를 통해 데이터가 전달되는 방식
  • 확장성이 뛰어나고 대용량 데이터 처리에 용이
  • 관리가 어렵고 네트워크 부담 증대

Hybrid

  • Hub & Spoke 방식과 Meesage bus 방식의 혼합
  • 그룹 내에서는 Hub & Spoke 방식, 그룹간에는 Messaging Bus 활용

데이터 모델(Data Model)

데이터의 관계, 접근과 그 흐름에 필요한 처리 과정에 관한 추상화된 모델

  • 데이터 모델링 : 주어진 개념으로부터 논리적인 데이터 모델을 구성하는 작업

표현 용어

  • 개체(Entity)
    - 행, 튜플
    • 카디널리티(Cardinality) : 개체의 수
  • 속성(Attribute)
    - 열, 필드
    • 디그리(Degree) : 속성의 수
  • 관계(Relation)

구성 요소

  • 구조(Structure) : 데이터베이스에 표현될 대상으로서의 개체 타입과 개체 타입들간의 관계
  • 연산(Operation) : 저장된 실제 데이터를 처리하는 방법, 데이터를 조작하는 기본 도구
  • 제약조건(Constraint) : 저장될 수 있는 데이터의 논리적인 제약 조건

구분

  • 개념적 데이터 모델 : 현실세계에 대한 인식을 추상적인 개념으로 표현, 대표적으로 ER 다이어그램
  • 논리적 데이터 모델 : 개념 데이터 모델링의 개념 구조를 컴퓨터가 이해할 수 있게 필드, 데이터 타입 등으로 개념적 모델 구현 (관계 모델, 계층 모델, 네트워크 모델로 구분)
  • 물리적 모델 : 하위수준의 데이터 모델로 데이터가 저장되는 방법을 표현

종류

관계형 데이터 모델

  • 표를 이용해 데이터 모델 관계를 정의
  • 데이터 간의 관계를 Key를 통해 구성
  • 1:1, 1:N, N:M 관계를 자유롭게 표현

계층형 데이터 모델

  • 트리 형태의 논리적 구조를 가짐
  • 개체는 트리의 노드로 표현 1:N 대응관계만 존재
  • 개체들간의 Cycle은 허용되지 않음

네트워크형 데이터 모델

  • 망형 모델, 그래프형 모델이라 부름
  • 그래프를 이용해 데이터 논리 구조 표현
  • 상하위 레코드는 N:M 대응 관계
profile
블로그에 글을 쓰고 좋은 건 여기로 공유해서 검색엔진을 쪽쪽 빱니다.

0개의 댓글