728x90

정보처리기사

테스트 레벨

  1. 단위(Unit) 테스트
    : 개발자가 명세서의 내용대로 정확히 구현되었는지 테스트
  2. 통합(Integration) 테스트
    : 단위 테스트를 통과한 컴포넌트 간의 인터페이스를 테스트
    • 빅뱅 테스트: 모든 모듈이 결합된 프로그램 전체가 대상
    • 상향식 테스트: 드라이버(Driver) 사용
    • 하향식 테스트: 깊이 우선 통합법, 넓이 우선 통합법 사용, 스텁(Stub) 사용
    • 혼합식 통합 테스트: : 하위 수준에서는 상향식 통합, 상위수준에서는 하향식 통합 사용하여 최적의 테스트를 지원, 샌드위치(Sandwich)식 통합 테스트 방법
    • 회귀 테스팅(Regression Testing): 통합 테스트가 완료 된 후 변경된 모듈이나 컴포넌트가 있을 경우, 다른 부분에 영향을 미치는 지 테스트하여 새로운 오류 여부를 확인
  3. 시스템(System) 테스트
    : 전체 시스템 또는 제품의 동작에 대해 테스트
    • 기능 요구사항 테스트
    • 비기능 요구사항 테스트
  4. 인수(Acceptance) 테스트
    : 계약상의 요구사항이 만족되었는지 확인
    • 알파 테스트: 개발자 + 사용자
    • 베타 테스트: 사용자

테스트 오라클

: 테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참값을 입력하여 비교하는 기법

  • 종류
    • 참(True) 오라클
    • 샘플링 오라클
    • 휴리스틱 오라클
    • 일관성 검사 오라클

테스트 하네스 도구

  1. 테스트 드라이버: 테스트 대상의 하위 모듈을 호출, 모듈 테스트 수행 후의 결과를 도출
  2. 테스트 스텁: 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구
  3. 테스트 슈트: 테스트 케이스의 집합
  4. 테스트 케이스: 사용자의 요구사항을 정확하게 준수했는지 확인하기 위한 입력 값, 실행 조건, 기대 결과 등으로 만들어진 테스트 항목의 명세서
  5. 테스트 스크립트: 자동화된 테스트 실행 절차에 대한 명세서
  6. 목 오브젝트: 사전에 사용자의 행위를 조건부로 입력해 두면, 그 상황에 맞는 예정된 행위를 수행하는 객체

자료 구조

  1. 비선형: 데이터를 비연속적으로 연결한 자료 구조
    • Tree: 노드(Node)와 노드를 연결하는(Link)로 구성, 사이클을 이루지 않도록 구성한 그래프의 특수한 형태
    • Graph: 노드(N; Node)와 노드를 연결하는 간선(E; Edge)을 하나로 모아 놓은 자료 구조
  2. 선형: 데이터를 연속적으로 연결한 자료 구조
    • Stack: LIFO
    • Queue: FIFO
    • List
      • 선형 리스트: 배열과 같이 연속된 기억 장소에 저장되는 리스트
      • 연결 리스트: 노드의 포인터 부분으로 서로 연결시킨 리스트
    • Deque(Double Ended Queue): 큐의 양쪽 끝에서 삽입과 삭제를 할 수 있는 자료 구조

이진 검색 방법

binary_search

버블 정렬 방법

bubble_sort

트리 순회 방법

tree_tour

소스코드 품질 분석 → Refactoring

  1. Peer Review
  2. WalkThrough
  3. Inspection
    • 계획 → 사전교육 → 준비 → 회의 → 수정(재작업) → 후속조치

형상 관리

: 소프트웨어의 변경사항을 관리하기 위해 개발된 일련의 활동

  • 절차: 식별 → 통제 → 감사 → 기록
  • CCB: 형상 관리 위원회, BaseLine(기준선) 설정의 권한과 관리 기능을 갖는 조직
  • 용어
    용어 설명
    import 맨 처음 프로제트 시작 시 저장소에 등록
    checkout 저장소에서 소스파일 받아오기
    add 새 파일을 만들었을 경우, 관리파일로 추가
    commit 수정한 파일을 저장소에 저장하여 갱신
    update 저장소에 있는 최신 버전으로 자신의 작업공간을 동기화
    diff 이전 개발자가 처음 추가한 파일과 이후 변경된 파일의 차이 확인
    merge 충돌난 파일에 대해 합치는 작업
    trunk 개발 메인 디렉토리
    branch 메인 개발 과정과 별도로 새로운 기능의 테스트와 같이 추가적인 작업을 수행하기 위한 서브 디렉토리

RCS(Revision Control System)

: 동시에 소스를 수정하는 것을 방지하며 다른 방향으로 진행된 개발 결과를 합치거나 변경 내용을 추적할 수 있는 SW 버전 관리 도구

Digital Rights Management

  • 디지털 콘텐츠와 디바이스의 사용을 제한하기 위해 사용하는 접근 제어 기술
  • 구성 요소
    • Clearing House: 사용자에게 콘텐츠 라이센스를 발급하고 권한을 부여해주는 시스템
    • 콘텐츠 제공자(Contents Provider)
    • 패키저(Packager): 콘텐츠를 메타 데이터(데이터의 속성 정보를 설명하는 데이터)와 함께 배포 가능한 형태로 묶어 암호화하는 프로그램
    • 콘텐츠 분배자(Contents Distributor)
    • 콘텐츠 소비자(Customer)
    • DRM 컨트롤러(DRM Controller): 배포된 콘텐츠의 이용 권한을 통제하는 프로그램(멜론 등)
    • 보안 컨테이너(Security Container): 콘텐츠 원본을 안전하게 유통하기 위한 전자적 보안 장치
  • 기술 요소
    • 암호화(Encryption): 콘텐츠 및 라이선스를 암호화
    • 키 관리(key Management): 콘텐츠를 암호화한 키에 대한 저장 및 분배
    • 암호화 파일 생성(Packager): 콘텐츠를 암호화된 콘텐츠로 생성
    • 식별 기술(Identification)
    • 저작권 표현(Right Expression)
    • 정책 관리(Policy Management)
    • 크랙 방지(Tamper Resistance): 크랙(복제가 불가능 하도록 되어있는 파일)에 의한 콘텐츠 사용 방지 기술
    • 인증(Authentication): 라이선스 발급 및 사용의 기준이 되는 사용자 인증

인터페이스 구현 검증

  • 인터페이스 구현 검증 도구와 감시 도구를 이용하여 인터페이스의 동작 상태를 확인
  • 인터페이스 구현 감시 도구
    • APM(애플리케이션의 성능 관리를 위해 접속자, 자원 현황, 장애 진단 등 다양한 모니터링 기능을 제공하는 도구)을 사용해 감시
    • 스카우터(Scouter): 애플리케이션 및 OS 자원에 대한 모니터링 기능을 제공
    • 제니퍼(Jennifer): 애플리케이션의 개발 부터 테스트, 오픈, 운영, 안정화까지, 전 단계에 결쳐 성능을 모니터링하고 분석

인터페이스 구현 검증 도구

: 통합 테스트에서의 테스트 자동화 도구

  • 종류
    • xUnit: 다양한 언어를 지원하는 단위 테스트 프레임워크
    • STAF: 다양한 환경을 지원하는 테스트 프레임워크
    • FitNesse: 웹 기반 테스트케이스를 지원하는 테스트 프레임워크
    • NTAF: FitNesse의 장점인 협업과 STAF의 장점인 재사용 및 확장성을 통합한 NHN(Naver)의 테스트 자동화 프레임워크
    • Selenium: 다양한 브라우저 및 개발 언어를 지원하는 웹 어플리케이션 테스트 프레임워크
    • watir: Ruby를 사용하는 애플리케이션 테스트 프레임워크

화이트/블랙박스 테스트

  • 화이트 박스 테스트: 모듈 내부 소스 코드를 보면서 수행하는 테스트
    • 종류
      • (기본) 경로 커버리지(Base Path Coverage): 수행 가능한 모든 경로 테스트
      • 데이터 흐름 테스트(Data Flow Testing): 프로그램에서 변수의 정의와 변수사용의 위치에 초점을 맞추어 검사
      • 조건 커버리지(Condition Coverage): 각 개별 조건식이 적어도 한 번은 참과 거짓의 결과가 되도록 수행
  • 블랙 박스 테스트: 외부 사용자의 요구사항 명세를 보면서 수행하는 테스트
    • 동등(동치, 균등) 분할 테스트(Equivalence Partitioning Testing): 입력값의 범위를 유사한 특징을 갖는 동등그룹으로 나누고 각 그룹마다 대표값을 선정하는 테스트 기법
    • 경곗값 분석 테스트(Boundary Value Analysis Testing): 경계값을 테스트 케이스로 선정하여 검사
    • 원인-결과 그래프 테스트(Cause-Effect Graphing Testing)
    • 오류 예측 테스트
    • 비교 테스트 (Comparison Testing): 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 테스트

 

 

 

참고 자료

 

흥달쌤

흥달쌤과 함께하는 IT 채널입니다. 정보처리기사 자격증 관련된 강의 및 실무 노하우, 프로그래밍 언어(JAVA, C언어, Python) 특강 등이 진행됩니다. 앞으로 진행 예정인 동영상은 IT 관련된 이야기

www.youtube.com

 

[정보처리기사] 인터페이스 구현 검증 도구 종류

1. 인터페이스 구현 검증 도구 - 인터페이스 동작 상태를 확인하기 위해서 인터페이스 단위 기능과 시나리오 등을 기반으로 하는 통합 테스트가 필요하다. 그리고 통합 테스트는 테스트 자동화

devinus.tistory.com

 

2021 #정보처리기사 필기요약 #2-4. 테스트, 구현

2021년 NCS기반 정처기 필기입니다. 이기적2020과 수제비2021 수험서를 함께 보고 공부한 기록입니다. 참고1. 노랑마킹은 시험에 나온 중요한 부분입니다. 참고2. 주황강조는 약어 혹은 중요한 내용

simuing.tistory.com

 

⭐ 2021 정보처리기사 필기 최종 암기노트(내가 볼거)

2021 정보처리기사 필기 시험이 이틀 앞으로 다가왔습니다. 컴퓨터 관련 자격증 시험이 처음이라, 읽고 이해하는데 시간이 오래 걸려 간신히 1.5회독 하는데만 한 달 반이 걸렸네요 일단 모의고사

y-oni.tistory.com

 

728x90
728x90

정보처리기사

UML 다이어그램

구조적(정적) 다이어그램

  • 객체: 객체 정보
  • 클래스: 클래스의 속성, 함수, 변수 타입으로 구성
  • 패키지: 클래스 다이어그램의 집합
  • 컴포넌트: 컴포넌트끼리의 구조 관계를 표현
  • 배치(Deployment): SW, HW 등을 포함한 시스템의 물리적 구조를 나타냄

행위적(동적) 다이어그램

  • 유스케이스: 사용자 관점에서 바라본 시스템을 표현
    • 관계 종류: 연관, 확장(선택), 포함(필수), 일반화
  • 활동: 시스템 전체의 흐름
  • 상태: 하나의 객체에서 발생하는 활동 변화
  • 순차: 시간의 흐름에 따른 객체 사이의 상호 작용
  • 커뮤니케이션
  • 인터렉션 오버뷰
  • 타이밍

 

미들웨어

: 클라이언트와 서버 간의 통신을 담당하는 소프트웨어

  • DataBase: 데이터베이스와 연결하기 위한 미들웨어(ODBC, JDBC 등)
  • Remote Procedure Call: 원격 프로시저를 로컬 프로시저처럼 호출(원격 데스크톱 등)
  • Message Oriented Middleware: 비동기형 메시지를 전달, 즉각적인 응답보다는 쌓아두고 시간이 있을 때 처리하는 방식
  • Transaction Processing Monitor: 항공기나 철도 예약 업무 등과 같은 온라인 트랜잭션을 처리 및 감시, 빠른 응답속도를 유지해야 할 경우 주로 사용
  • Object Request Broker: 객체지향 미들웨어
  • Web Application Server: 동적인 콘텐츠를 처리하기 위한 미들웨어로, 웹 환경을 구현하기 위해 사용

 

요구사항 분석

  • 기능적 분석: 기능 관련
  • 비기능적 분석: 기능의 성능, 보안, 품질 관련

 

애자일 방법론

: 고객의 요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하면서 개발 과정을 진행

  • eXtreme Programming: 수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상시키는 방법
    • 핵심 가치: 의사소통, 피드백, 존중, 용기, 단순성
  • Scrum: 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 개발 방법론
  • LEAN: 낭비 요소를 제거하여 품질을 향상

구조적 방법론

: 사용자 요구사항을 파악하여 문서화하는 처리 중심의 방법론

  • 종류: Data Flow Diagram, Data Dictionary

정보공학 방법론

: 계획, 분석, 설계, 구축에 정형화된 기법들을 통합 및 적용하는 자료 중심의 방법론

  • Entity-Relationship-Diagram: DB 설계의 표현으로 사용하는 모델링 언어

객체지향 방법론

: 현실 세계의 개체(Entity)를 속성(Attribute)과 메소드(Method)가 결합된 형태의 객체(Object)로 표현

  • UML 표기법: 사물, 관계, 다이어그램(사물과 사물 간의 관계를 용도에 맞게 표현)으로 구성

 

애자일 SW 개발선언

  1. 개인과 상호작용에 더 가치를 둔다.
  2. 실행되는 SW에 더 가치를 둔다.
  3. 고객과 협업에 더 가치를 둔다.
  4. 변화에 반응하는 것에 더 가치를 둔다.

UI

  • 설계 지침: 유연성, 학습성, 유효성, 직관성
  • User Experience: 경험기반 디자인 → UI 생성
  • UI 종류
    • Graphical User Interface: 그래픽 환경을 기반으로 한 마우스를 이용하는 사용자 인터페이스
    • Command Line Interface: 명령어를 텍스트로 입력하여 조작하는 사용자 인터페이스
    • Natural User Interface: 사용자의 움직임을 인식하여 서로 주고받는 정보를 제공하는 사용자 인터페이스
    • Organic User Interface: 현실에 존재하는 모든 사물이 입출력장치로 변화할 수 있는 사용자 인터페이스

EAI ( Enterprise Application Integration )

: 기업에서 운영하는 서로 다른 플랫폼, App간의 정보 전달, 연계, 통합을 위한 솔루션

EAI_유형

객체지향

  • 클래스: 공통 속성을 공유하는 객체들의 집합
  • 캡슐화: 서로 관련성이 많은 데이터들과 연산들을 묶음

 

객체지향 분석의 방법론

  1. Rumbaugh: 가장 일반적으로 사용되는 방법으로 분석 활동을 객체(▶ 객체 다이어그램 활용)/동적(▶ 상태 다이어그램)/기능(▶ DFD) 모델로 나누어 수행하는 방법
  2. Booch: 미시적(Micro) 개발 프로세스와 거시적(Macro) 개발 프로세스를 모두 사용
  3. Jacobson: Use Case를 강조하여 사용
  4. Coad와 Yourdon: E-R다이어그램을 사용
  5. Wirfs-Brock: 분석과 설계간의 구분이 없음

 

모듈과 컴포넌트

  • 모듈: 비슷하거나 연관성 있는 것들로 이루어진 메소드나 클래스의 집합
  • 컴포넌트: 기능의 최소 단위
  • Client-Server 시스템으로 예를 들자면 하나의 서버가 10개의 클라이언트에게 정보를 제공할 때, 모듈은 서버와 클라이언트 2개를 가지지만 컴포넌트는 11개

 

GoF(Gang of Four) 디자인 패턴

생성 패턴(Creational Patterns) 5 : 객체 생성에 대한 패턴

종류 설명
Abstract Factory 구체적인 클래스를 지정하지 않고 관련성을 갖는 객체들의 집합을 생성하거나 서로 독립적인 객체들의 집합을 생성할 수 있는 인터페이스를 제공
Builder 생성 절차는 동일하지만 결과는 다르게 만듦
Factory Method 객체를 생성할 때 필요한 인터페이스 생성
Propotype 원본 객체를 복사하여 새 객체를 생성
SingleTon 오직 하나의 객체만들 생성

구조 패턴(Structural Patterns) 5 : 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴

종류 설명
Adapter 클래스의 재사용성을 높이기 위해 클래스간의 기능을 변환 제공하여 호환성을 확보
Bridge 기능 클래스 계층과 구현 클래스 계층을 분리
Composite 복잡한 객체구조를 표현하여 객체집합 속에 또 다른 객체집합을 갖음
Decorator 새로운 기능이 추가될 때마다 새로운 객체를 만들고, 이전 객체의 기능은 새로운 객체내에서도 그대로 유지, 보장
Facade(퍼싸드) 서브시스템이 복잡할 경우 간단한 인터페이스를 통해 서브시스템의 주요기능을 사용할 수 있도록 함
Fly weight 인스턴스를 가능한 한 공유시켜 불필요한 생성을 하지않도록 함
Proxy 객체접근을 제어

행위 패턴(Behavioral Patterns) 11 : 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴

 

아키텍쳐 패턴의 유형

  1. Layers(계층화) Pattern: 시스템을 계층구조(Layer)로 쌓아둔 전형적 패턴
    • 특정 레이어만 유지보수하여 시스템 개선 가능
  2. Client-Server 패턴:
    • 서버(=1, 항시대기): 자원 제공
    • 클라이언트(=다수): 자원 요청
    • 각자의 기능이 독립적으로 동작
  3. 파이프-필터 패턴: 데이터의 흐름(스트림)의 각 단계를 파이프와 필터로 연결
    • 파이프: 각 단계명
    • 필터: 각 파이프를 통해 넘어온 데이터를 처리하고 캡슐화
    • 재사용성, 확장성이 좋아 다양한 파이프라인 생성 가능
  4. 모델-뷰-컨트롤러 패턴(MVC)
  5. 마스터-슬레이브 패턴:
    • 마스터 컴포넌트가 지시한 일을 여러 슬레이브 컴포넌트가 병렬처리하여 결과를 취합
    • 몇 개의 슬레이브가 고장나도 업무 처리에는 문제가 없음
  6. 피어 투 피어 패턴(P2P): 서버와 클라이언트가 서로 역할을 바꿀 수 있는 형태(torrent)로 두 가지 일을 병렬로 수행하는 멀티스레딩(자원요청/제원제공)이 특징
  7. 이벤트-버스 패턴: 특정 이벤트를 발행하면 해당 채널(버스)를 구독하고 있는 리스너들이 이벤트를 받아서 처리하는 형식
  8. 블랙보드 패턴: 공유데이터를 관리하는 블랙보드에 접근하여 원하는 데이터를 찾는 형식

참고 자료

 

흥달쌤

흥달쌤과 함께하는 IT 채널입니다. 정보처리기사 자격증 관련된 강의 및 실무 노하우, 프로그래밍 언어(JAVA, C언어, Python) 특강 등이 진행됩니다. 앞으로 진행 예정인 동영상은 IT 관련된 이야기

www.youtube.com

 

[정보처리기사] 미들웨어(Middleware) 솔루션 종류

1. 미들웨어의 개념 및 종류 - 미들웨어에서 미들(Middle)과 소프트웨어(Software)의 합성어로, 운영체제와 해당 운영체제에서 실행되는 응용 프로그램 사이에서 운영체제가 제공하는 서비스 이외에

devinus.tistory.com

 

[정보처리기사 실기] EAI의 개념과 종류, ESB의 형태

ㆍ 시스템 인터페이스를 위해 내부, 외부 모듈을 연계하는 방법은 대표적으로 EAI와 ESB 두 가지 방식이 있다. (1) EAI ( Enterprise Application Integration ) - 개념 : 기업에서 운영하는 서로 다른 플랫폼, App

leesteady.tistory.com

 

[정보처리기사] 실기 개념정리 2 - 디자인패턴

안녕하세요 스카이디브입니다. 정보처리기사 실기 시험대비 개념정리 두번째 글입니다. 며칠 전 2021년 정기기사시험 3회 접수가 있었는데요 모두들 성공하셨나요? 저는 항상 접수부터가 고난이

skyjava93.tistory.com

 

728x90