본문 바로가기
휴지통/정보처리기사

오답노트 01

by 신재권 2022. 2. 7.

워크스루

검토 자료를 회의전에 배포하여 사전 검토한 후, 짧은 시간 동안 회의를 진행하는 형태로 리뷰를 통해 오류를 조기에 검출하는데 목적을 둔 검증 기법

블록 코드

코드 설계에서 일정한 일련번호를 부여하는 방식의 코드

CASE의 주요기능 = 컴퓨터 지원 시스템 공학

  1. 소프트웨어 생명 주기 전 단계의 연결
  2. 그래픽 지원
  3. 다양한 소프트웨어 개발 모형 지원

애자일(Agile) 개발 4가지 핵심가치

  1. 프로세스와 도구보다는 개인과의 상호작용에 더 가치를 둠
  2. 방대한 문서보다는 실행되는 SW에 더 가치를 둠
  3. 계약 협상보다는 고객과의 협업에 더 가치를 둠
  4. 계획을 따르기보다는 변화에 반응하는 것을 더 가치를 둠

플랫폼의 성능특성 분석 사용에 측정항목

  1. 응답시간 (Response Time)
  2. 가용성(Availability)
  3. 사용률(Utilization)

소프트웨어 아키텍처

  1. 레이어 패턴 : 시스템을 계층으로 구분하여 구성 (OSI 참조모델)
  2. 클라이언트-서버 패턴 : 하나의 컴포넌트, 다수의 클라이언트 컴포넌트로 구성되는 패턴
  3. 파이프-필터 패턴 : 데이터 스트림 절차의 각 단계를 필터 컴포넌트로 캡슐화하여 파이프를 통해 데이터를 전송하는 패턴 (UNIX 쉘)
  4. 모델 - 뷰 - 컨트롤러 패턴 : 서비 시스템을 3개의 부분으로 구조화하는 패턴
  5. 마스터 - 슬레이브 패턴
  6. 브로커 패턴
  7. 피어 -투-피어 패턴
  8. 이벤트 - 버스 패턴
  9. 블랙보드 패턴
  10. 인터프리터 패턴

코드 정의

데이터를 사용 목적에 따라 식별, 분류, 배열하기 위하여 사용되는 숫자, 문자 또는 기호로 컴퓨터 처리에 효율적인 것을 선정

  1. 순차 코드 : 자료의 발생순, 크기순, 가나다순 등 일정 순서대로 코드
  2. 블록 코드 : 코드화 대상을 미리 파악하여 블록으로 구분 후 그 안에서 순서대로 코드를 부여
  3. 그룹 분류 코드 : 구분 코드를 세분화한 형태로 대분류, 중분류, 소분류 등 각 분류별로 자릿수를 구성
  4. 표의 숫자 코드 : 표현하려는 대상의 의미는 제외하고 수치만을 모아 만든 것으로 대상이 되는 물체의 중량, 면접, 크기 등을 직접 코드에 적용
  5. 십진 분류 코드 : 코드화 대상물을 일정한 소속으로 구분하여 십진수 한자리씩 구분하여 대분류하고, 같은 방법으로 중 분류, 소분류 한 코드
  6. 연산 코드 : 숫자나 문자를 조합해서 나타내는 것으로 어떤 내용을 기억할 수 있도록 표시한 기호 코드
  7. 약자 코드 : 일반적으로 사용해온 단위의 약자를 코드로 조합
  8. 끝자리 분류 코드 : 다른 종류의 코드와 조합해서 사용하며, 코드의 끝에 붙여서 의미를 표현

자료사전 기호 의미

= : 정의

+: 구성, 연결

{} : 반복

** : 주석

[|] : 선택

() : 생략

트랜잭션 처리를 감시/제어 하는 미들웨어

TP monitor

XP(eXtreme Programming)의 5가지 가치

  1. 용기
  2. 단순성
  3. 커뮤니케이션
  4. 피드백
  5. 존중

행위(Behavioral) 다이어그램

  1. 유스케이스 다이어그램
  2. 시퀀스 다이어그램
  3. 커뮤니케이션 다이어그램
  4. 상태 다이어그램
  5. 활동 다이어그램
  6. 상호작용 개요 다이어그램
  7. 타이밍 다이어그램

럼바우 객체지향 분석 절차

객체 모델링 → 동적 모델링 → 기능 모델링

객동기

정형 명세법

수학적 기반/ 모델링 기반

Z, VDM, Petri-Net(모형기반)

CSP, CCS, LOTOS(대수적 방법)

시스템 요구 특성이 정확하고 명세가 간결하다. 명세와 구현이 일치

그러나 이해도가 낮으며 이해관계자의 작성 부담 가중

비정형 명세

상태, 기능 객체 중심 명세법

FSM

Decision Table , ER 모델링

Start chart(SADT)

UseCase : 사용자 기반 모델링

명세 작성이 간편하고 의사전달 방법이 다양하다.

불충분한 명세가능성, 모호성

객체지향 기법 관계

집단화 : is part of: 클래스 간의 구조적인 집약 관계

일반화 : is a : 클래스간의 개념적 포함 관계

캡슐화 : 속성과 메서드를 하나로 묶어서 객체로 구성

추상화 : 공통 성질을 추출하여 슈퍼 클래스로 구성, 분석의 초점이 명확해짐

자료흐름도(Data Flow Diagram)의 구성요소

  1. 프로세스(Process)
  2. 자료 흐름(Data Flow)
  3. 자료 저장소 (Data Store)
  4. 단말 (Terminator)

HIPO(Hierarchy Input Process Output)

하향식 소프트웨어 개발

가시적 도표, 총체적 도표, 세부적 도표

기능과 자료의 의존관계를 동시에 표현 가능

보기 쉽고, 이해하기 쉬움

인터페이스 요구사항 검토(검증) 방법

동료 검토(Peer Review) : 요구사항 명세서 작성자가 요구사항 명세서를 설명하고 이해 관계자들이 설명을 들으면서 결함을 발견

워크스루(Walk Through) : 검토 회의 전, 명세서를 미리 배포하여 사전 검토후에 짧은 검토 회의를 통해 결함 발견

인스펙션(Inspection) :요구사항 명세서 작성자를 제외한 다른 검토 전문가들이 확인하면서 결함 발견

소프트웨어 패키징 도구 활용시 고려사항

암호화 및 보안 고려

편의성을 위한 복잡성 및 비효율성 문제 고려

암호화 알고리즘 적용

EAI 구축 유형 - Hybrid

Hub & Spoke와 Message Bus의 혼합 방식

필요한 경우 한가지 방식으로 EAI 구현 가능

데이터 병목현상을 최소화

중간에 미들웨어를 둔다.

블랙박스 테스트 유형

동치(동등)분할 검사

경계값 분석

원인 - 효과 그래프 검사

오류 예측 검사

비교 검사

화이트박스 테스트 유형

기초 경로 검사

제어 구조 검사

조건 검사, 루프검사, 데이터 흐름 검사

트리순회

전위 순회 : root → 왼 → 오

중위 순회 : 왼 → root → 오

후위 순회 : 왼 → 오 → root

선택정렬

가장 작은 값을 찾아 첫번째 값과 교환

후에 정렬된 값을 제외한 나머지 인덱스 중 가장 작은 값을 찾아 인덱스 교환

소프트웨어 버전 등록 관련 용어

커밋(Commit) : 체크인을 수행할 때 이전에 갱신된 내용이 있는 경우 충돌을 알림

인터페이스 구현 검증 도구

  1. xUnit
  2. STAF
  3. FitNesse
  4. NTAF
  5. Selerium
  6. Watir

ISO/IEC 9126의 기능성

  • 기능성
    • 적합성, 정확성, 성호운용성, 보안성, 준수성
  • 신뢰성
    • 성숙성, 결합허용성, 복구성
  • 사용성
    • 이해성, 학습성, 운용성, 준수성
  • 효율성
    • 시간반응성, 자원효율성, 준수성
  • 유지보수성
    • 분성성, 변경성, 안정성, 시험성, 준수성
  • 이식성
    • 적응성, 설치성, 공존성, 대체성, 준수성

트리

트리의 차수 : 전체 트리에서 가장 큰 차수 (자식 수)

단말 노드 : 자식이 없는 노드

소프트웨어의 형상 관리 역할

형상 관리를 통해 이전 리버전이나 버전에 대한 정보에 접근 가능하여 배포본 관리에 유용

불필요한 사용자의 소스 수정 제한

동일한 프로젝에 대해 여러 개발자 동시 개발 가능

개발 과정의 변경 사항을 관리

법칙

오류의 80%는 전체 20%내에서 발견된다는 법칙 → 파레토 법칙

지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다 - Brooks의 법칙

동일 테스트 케이스로 동일 테스트 반복 시 더 이상 결함이 발견되지 않는 현상 : 살충제 페러독스 Pesticide Paradox

결함을 모두 제거해도 사용자 요구사항을 만족시키지 못하면 해당 소프트웨어는 품질이 높다고 말할 수 없다. : 오류-부재의

brooks, pareto만 기억

빌드 자동화 도구

빌드를 포함하여 테스트 및 배포를 자동화 하는 도구

Ant, Make, Maven, Gradle, Jenkins 등이 있음

Jenkins

  • Java 기반의 오픈소스 형태
  • 서블릿 컨테이너에서 실행되는 서버 기반 도구
  • 친숙한 Web GUI 제공
  • 분산 빌드나 테스트 가능

Gradle

  • Groovy를 기반으로 한 오픈 소스 형태
  • 안드로이드 앱 개발 환경에서 사용
  • 행할 처리 명령들을 모아 태스트(Task)로 만든 후 태스크 단위로 실행

애플리케이션 테스트 유형

  • 상향식 통합 테스트
    • 프로그램의 하위 모듈에서 상위 방향으로 통합하면서 테스트
    • 하나의 주요 제어 모듈과 관련된 종속 모듈의 그룹인 클러스터 필요
    • 상위 모듈 개발이 완료되지 않은 경우 드라이버(Driver)를 사용하기도 함
  • 회귀 테스트(Regression Testing)
    • 이미 테스트된 프로그램의 테스팅 반복
    • 통합 테스트로 인해 변경된 모듈이나 컴포넌트에 새로운 오류가 있는지 확인
  • 빅뱅 테스트
    • 통합 테스트(Integration Test)중 비점진적 통합 방식

검증 검사 기법

동치 분할 검사 : 입력 자료에 초점을 맞춰 케이스를 만들고 검사하는 방법 - 블랙박스 테스트 종류

알파 테스트 : 개발자의 장소에서 사용자가 개발자 앞에서 행하는 테스트 기법 - 인수 테스트 종류

베타 테스트 : 선정된 최종 사용자가 여러명의 사용자 앞에서 행하는 테스트 기법 - 인수테스트 종류

트랜잭션 특징

  1. Durability(연속성, 지속성) : 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 한다.
  2. Isolation(독립성, 격리성) : 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어들 수 없다.
  3. Consistency(일관성) : 시스템이 가지고 있는 고정요소는 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야 한다.
  4. Atomicity(원자성) : 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력

데이터 제약 조건

개체 무결성 제약 조건 : 기본 키를 구성하는 어떤 속성도 Null값이나 중복값을 가질 수 없다.

도메인 무결성 제약 조건 : 주어진 속성 값이 정의된 도메인에 속한 값이어야 한다.

참조 무결성 제약 조건 : 외래키의 값은 Null이거나 참조 릴레이션의 기본키 값과 동일해야 한다.

데이터 베이스의 논리적 설계(데이터모델링)

  • 현실 세계에서 발생하는 자료를 컴퓨터가 이해하고 처리할 수 있는 물리적 저장장치에 저장할 수 있도록 특정 DBMS가 지원하는 논리적 자료구조로 변환시키는 과정
  • 개념 세계의 데이터를 필드로 기술된 데이터 타입과 이 데이터 타입들 간의 관계로 표현되는 논리적 구조의 데이터로 모델화
  • 개념 스키마를 평가 및 정제하고 DBMS에 따라 서로 다른 논리적 스키마를 설계하는 단계(종속적인 논리 스키마)
  • 트랜잭션의 인터페이스 설계
  • 관계형 데이터베이스라면 테이블 설계
  • 특정목표 DBMS에 따른 스키마 설계
  • 스키마의 평가 및 정제

뷰는 자체적으로 인덱스를 가지지 않으므로, 삽입 삭제 수정이 제한적

가상 테이블 , 논리적 독립성 제공

보안 용이

관계대수 연산

셀렉트 : 릴레이션에서 조건을 만족하는 튜플 반환

프로젝트 : 릴레이션에서 주어진 속성들의 값으로만 구성된 튜플 반환

조인 : 공통 속성을 이용해 두개의 릴레이션 튜플들을 연결해 만들어진 튜플 반환

디비전 : R%S : 릴레이션 S의 모든 튜플과 관련있는 릴레이션 R의 튜플 반환

트리거

데이터베이스가 미리 정해놓은 조건이 충족되거나, 특정 테이블에 삽입, 수정 ,삭제 등의 데이터 변경 이벤트가 발생하면 DBMS에서 자동으로 실행되도록 구현한 프로그램

Anomaly(이상)

릴레이션 조작 시 데이터들이 불필요하게 중복되어 예기치 않게 발생하는 곤란한 현상

삽입 이상, 삭제 이상, 갱신 이상

정규화

1NF : 원자값으로 구성

2NF : 부분 함수 종속 제거 ( 완전 함수적 종속 관계)

3NF : 이행 함수 종속 제거

BCNF : 결정자 함수 종속

4NF : 다중값(다치) 종속성 제거

5NF : 조인 종속성 제거

IPv6

128비트의 주소 공간 제공

인증 및 보안 기능을 포함

임의의 큰 크기의 패킷을 주고 받을 수 있다

확장 헤더를 통해 네트워크 기능 확장이 용이

커널

프로세스(CPU 스케줄링) 관리, 기억장치 관리, 파일 관리, 입출력 관리, 프로세스간 통신, 데이터 전송 및 변환 등 여러가지 기능 수행

OSI 7계층

응용계층 : 최종 사용자가 실제로 상호 작용하는 계층, 네트워크 리소스에 대한 엑세스를 허용

세션 계층 : 컴퓨터 간의 세션을 설정, 관리 및 종료하여 적절한 통신을 유지하는 역할을 수행

표현 계층 : 데이터로 작동하는 계층, 주요 기능은 데이터 변환, 암호화 및 압축, 기본적으로 사용하는 응용 계층과 상호작용하여 데이터를 표현 계층으로 보낸다.

데이터 링크 계층 : 흐름제어, 오류제어, 동기화, 순서 제어

쉘 스크립트

who 명령어는 현재 시스템에 로그인한 유저의 목록을 보여준다.

( | ) 파이프 앞의 who 명령어의 출력 결과를 뒤의 grep 명령어로 전달한다.

grep 명령어는 who 명령문의 결과 중 wow 유저가 로그인하면 그 결과를 필터링하여 출력한다.

sleep 명령문 뒤의 숫자(초)만큼 잠시 수행을 대기한다.

do~done 반복문

교착상태 발생의 필요 충분 조건

상호 배제, 점유와 대기, 환형 대기, 비선점

배치 프로그램의 필수 요소

견고함 : 유효하지 않은 데이터의 경우도 처리해서 비정상적인 동작 중단이 발생하지 않아야 한다.

성능 : 주어진 시간 내에 처리를 완료할 수 있어야 하고, 동시에 동작하고 있는 다른 애플리케이션을 방해하지 말아야 한다.

더미 코드

호출 시 로직 없이 응답만 수행하는 모듈

단위 테스트시 아직 미개발된 모듈을 대체하기 위해 사용

응집도

우연적 : 서로 관련없는 요소로만 구성

논리적 : 유사 성격이나 특정 형태로 분리되는 처리 요소들로 모듈 형성

시간적 : 특정 시간에 처리되는 몇개의 기능을 모아 모듈로 구성

절차적 : 모듈이 다수의 관련 기능을 가질 때 모듈안의 구성 요소들이 그 기능을 순차적으로 수행할 경우의 응집도

교환적 : 동일 입출력 사용 시 서로 다른 기능을 수행하는 구성 요소가 모였을 경우

순차적 : 활동을 통해 나온 출력 데이터를 그 다음 활동의 입력 데이터로 사용하는 경우

기능적 : 모든 기능 요소가 단일 문제와 연간되어 수행될 경우

TCP 흐름제어 기법

Slow start : 패킷이 문제없이 도착하면 혼잡 윈도우 크기를 패킷마다 1씩 증가 시켜 한 주기가 지나면 혼잡 윈도우 크기가 2배로 되지만, 혼잡 현상 발생 시 혼잡 윈도우 크기를 1로 줄여버리는 방식

Sliding Window : 한 번에 여러 패킷(프레임)을 전송할 수 있어 전송 효율이 좋은 기법

Stop and Wait : 프레임이 손실되었을 때, 손실된 프레임 1개를 전송하고 수신자의 응답을 기다리는 방식, 한번에 프레임 1개만 전송 가능

Congestion Avoidande(혼잡 방지) : 네트워크 내에서 패킷의 지연이 너무 높아지게 되어 트래픽이 붕괴되지 않도록 패킷의 흐름을 제어하는 트래픽 제어(AMID, Slow start)

HRN(Highest Response-ratid Next) 스케줄링

비선점 스케줄링

우선순위가 높은 것부터 낮은 것으로 순위부여

대기시간 및 서비스 시간 이용

실행시간이 긴 프로세스에 불리한 SJF 보완

대기시간 + 서비스 시간 / 서비스시간 = 우선순위값

스크립트 언어

Javascript

ASP

JSP PHP

Python

basic

논리주소 , 물리주소

논리주소 = (세그먼트번호, 변위값)

물리주소 = ‘세그먼트 시작 주소 + 변위값’

디지털 트윈(Digital Twin)

미국 제네럴 일렉영(GE)이 주장한 개념으로, 컴퓨터에 현실 속 사물의 쌍둥이를 가상화하여 만들고, 현실에서 발생할 수 있는 상황을 컴퓨터로 시뮬레이션함으로써 결과를 미리 예측하는 기술

자산 최적화, 돌발사고 최소화, 생산성 증가 등 설계부터 제조, 서비스에 이르는 모든 과정의 효율성을 향상시킬 수 있는 모델

CMM(Capability Maturity Model) 모델의 레벨

  1. 초기 단계
  2. 관리단계
  3. 정의단계
  4. 정량적 관리 단계
  5. 최적화 단계

Mashup

Mashup은 웹에서 제공하는 정보 및 서비스를 이용하여 새로운 소프트웨어나 서비스, 데이터베이스 등을 만드는 기술이다.

기능점수(Funtion Point) 모형의 비용산정

FP 기능별 가중치 산정 요소

자료 입력(입력 양식)

정보 출력(출력 보고서)

데이터 파일

필요한 외부 루틴과의 인터페이스

스토리지 시스템

DAS (Direct Attached Storage) : 하드디스크와 같은 데이터 저장장치를 호스트버스 어댑터에 직접 연결하는 방식

저장장치와 호스트 기기 사이에 네트워크 디바이스가 있지 말야하고 직접 연결하는 방식으로 구성

NAS(Network Attached Storage) : 서버와 저장장치가 네트워크로 연결된 저장장치

N-SCREEN(앤스크린) : PC - TV - 휴대폰 등 여러 단말기로 같은 콘텐츠로 끊임없이 이용하는 체계

NFC(Near Field Communication, 근접 무선 통신) : 10cm 이내의 가까운 거리에서 다양한 무선 데이터를 주고 받는 통신 기술

Putnam

소프트웨어 생명주기 전 과정 동안 사용될 곡선의 노력 분포를 가정해주는 모형, Rayleigh-Norden 곡선의 노력 분포도를 기초로 한다.

SLIM

Putname 기법 모형을 기초로 개발된 자동화 추정 도구

훈남(Putnam)이 노력(노력분포도)해서 슬림(SLIM)해졌네

SREM

Software Requirements Enginering methdology : TRW사가 우주 국방 시스템 그룹에 의해 실시간 처리 소프트웨어 시스템에서 요구사항을 명확히 기술하도록 할 목적으로 개발한 것으로, RSL과 REVS를 사용하는 자동화 도구이다.(RSL/REVS)

PSL/PSA

미시간 대학에서 개발한 것으로 PSL과 PSA를 사용하는 자동화 도구이다.

HIPO(Hieracgy Input Process Output)

하향식 소프트웨어 개발을 위한 문서화 도구

SADT(Structure Analysis and Design Techique)

SoftTech사에서 개발된 것으로 구조적 요구 분석을 위해 블록 다이어그램을 채택한 자동화 도구

Wm - Bus

무선 미터버스 산업용 무선 프로토콜

Digital Twin

컴퓨터 시뮬레이터(가상화)을 통해 결과를 에측하는 기술

Zigbee

직비, 무선 메시 네트워크의 표준(저거, 저전력)

Data Mining

빅데이터 분석 기술 중 대량의 데이터를 분석하여 데이터 속에 내재되어 있는 변수 사이의 상호관례를 규명하여 일정한 패턴을 찾아내는 기법

무선 네트워크 기술

여러 개의 독립된 통신장치가 UWB(Ultra Wideban)기술 또는 블루투스 기술을 사용하여 통신망을 무선 네트워크 기술→ PICONET

CPM

노드와 간선으로 이루어진 네트워크

임계 경로

작업의 시작 및 종료 구간이 동시에 이루어질 때 가장 오래걸리는 경로

암호화 알고리즘

RSA : MIT의 라이베스트, 샤미르, 애들먼에 의해 제안된 공개키 암호화 알고리즘, 큰 숫자를 소인수분해 하기 어렵다는 것에 기반하여 만들어짐, 공개키와 비밀키 사용

ECC : 오류 정정 코드 메모리

PKI : 공개키 기반 구조

PEM : SSL 인증서 종류

CBD(Component Based Development)

컴포넌트 기반 개발

  • 기존의 시스템이나 소프트웨어를 구성하는 컴포넌트를 조립하여 새로운 응용프로그램을 만드는 소프트웨어 개발 방법론
  • 기존에 있던것들을 활용하기 때문에 생산성 향상, 확장성 용이, 재사용 특징이 있음

Key Logger Attack

컴퓨터 사용자의 키보드 움직임을 탐지해 ID, 패스워드 등 개인의 중요한 정보를 몰래 빼가는 해킹 공격

암호화키

암호화 키를 소스코드 내부에 사용하는 것은 안전하지 않다.

CLASP

Comprehensive, Lightweight Application Security Process, 소프트웨어 개발 생명주기(SDLC) 초기단계에 보안강화를 목적으로 하는 정형화된 프로세스로써, 활동 중심 /역할 기반의 프로세스로 구성된 집합체로, 이미 운영중인 시스템에 적용하기 적합하다.

CWE

Common Weakness Enumeration, 주요 보안 취약점, 보안 문제를 정리하는 프로젝트

PIMS

Personal Information Management System. 개인정보 보호관리체계

Seven Touchpoints

소프트웨어 개발 생명주기(SDLC)의 각 단계에 관련된 7가지의 보안 강화 활동을 개발자에게 집중적으로 관리하도록 요구하여 실무적으로 검증된 개발 보안 방법론

SPICE

소프트웨어의 품질 및 생산성 향상을 위해 소프트웨어 프로세스를 평가 및 개선하는 국제 표준

IEEE 488

단거리 디지털 통신 버스

IEEE 802.5

토큰링에 대한 표준

ISO 14001

모든 산업 분야 및 활동에 적용할 수 있는 환경경영시스템에 관한 국제규격

'휴지통 > 정보처리기사' 카테고리의 다른 글

오답노트 03  (0) 2022.02.11
오답노트 02  (0) 2022.02.08
016. UI 프로토타입 제작 및 검토  (0) 2022.01.02
015. 품질 요구사항  (0) 2022.01.02
014. UI 요구사항 확인  (0) 2022.01.02