정보처리기사

[정보처리기사 요약정리] PART 2. 소프트웨어 개발 + 기출포함

juble 2024. 10. 19. 14:03

[1. 데이터 입출력 구현]


Chapter01. 논리 데이터 저장소 확인하기


section01. 데이터 모델링 

1. 일반적인 시스템 개발 절차

시스템 개발 절차

 

2. 데이터의 세계

3. 데이터 모델링의 개요

4. 데이터 모델의 분류 

데이터 모델의 분류

 

* 기출문제 - 2020년 2회, 2023년 2회 : 데이터베이스 설계 순서

더보기

02. 다음은 데이터베이스 설계의 순서이다. 빈 칸에 해당하는 설계 순서를 쓰시오.

요구사항 분석 → (      ) → (      ) → (      ) → 구현

 

: 개념적 설계, 논리적 설계, 물리적 설계

2. 데이터베이스 설계 단계를 <보기>에서 골라 순서대로 나열하시오. 

ㄱ. 구현      ㄴ. 요구사항분석      ㄷ. 개념설계      ㄹ. 물리설계      ㅁ. 논리설계
ㄴ → ㄷ → ㅁ → ㄹ → ㄱ

5. 데이터베이스 설계 순서 

  1. 데이터베이스 계획
  2. 요구사항 분석
    • 데이터베이스에 저장된 내용을 정하기 위해 사용자의 요구사항 분석
  3. 개념적 데이터 설계
    • DBMS 독립적 개념 스키마 설계, 트랜잭션 모델링 및 정의
  4. 논리적 데이터 설계
    • 목표 DBMS에 맞는 스키마 설계, 트랜잭션 인터페이스 설계
  5. 물리적 데이터 설계
    • 목표 DBMS에 맞는 물리적 구조 설계, 트랜잭션 세부 설계
  6. 구현

 

* 기출문제 - 2021년 1회 : 데이터 모델링

더보기

02. 다음은 데이터 모델링에 대한 설명이다. 빈 칸 ①~③에 해당하는 용어를 쓰시오.

 데이터 모델링은 정보시스템을 구축하기 위해, 어떤 데이터가 존재하는지 또는 업무가 필요로 하는 정보는 무엇인지를 분석/표현하는 방법을 말한다.
 데이터 모델링은 ( ② ) 데이터 모델링, ( ③ ) 데이터 모델링, ( ① ) 데이터 모델링을 통해 데이터 베이스를 구축하는 일련의 절차를 거쳐 진행된다.
- ( ① ) 데이터 모델링은 특정 DBMS에 의존하는 데이터 형식, 제약조건, 뷰, 인덱스 등을 설정하는 작업으로 결과물로는 테이블 정의서, 제약조건 리스트, 인덱스 명세서 등이 있다.
- ( ② ) 데이터 모델링은 업무의 대상이 되는 실제 데이터에 대해서 서로의 상관관계를 파악하는 작업으로 이를 통한 대표적인 결과물로는 ERD이 있다.
- ( ③ ) 데이터 모델링은 DBMS의 유형에 맞추어 DBMS에 저장될 데이터의 골격(스키마)를 만드는 작업으로 이를 통해 함수종 속성 파악, 논리적 스키마(릴레이션 구조) 등의 결과를 얻을 수 있다.

 

: ① 물리 , ② 개념 , ③ 논리

6. 데이터 모델링 절차

  • 개념적 모델링 : 업무의 대상이 되는 실제 데이터에 대해서 개체 간의 상관 관계를 정확히 표현하는 단계
    • 결과물 : ERD(Entity-Relation Diagram)
  • 논리적 모델링 : 개념적 설계로 만들어진 개념적 구조로부터 특정 DBMS의 유형에 맞추어 DBMS에 저장될 데이터의 골격(스키마)을 만드는 단계
    • 데이터를 정규화(Normalization)하여 모델링하고 규칙과 관계를 완전하고 정확하게 표현한다.  
    • 결과물 : 함수 종속적 파악, 논리적 스키마(릴레이션 구조)
  • 물리적 모델링 : 특정 DBMS에 의존하는 데이터 형식, 제약조건, 뷰, 인덱스 등을 설정하는 단계
    • 반정규화(Renormalization)와 관계의 해제를 통하여 설계와 성능을 고려한 조정을 수행한다. 
    • 결과물 : 테이블 정의서, 제약조건 리스트, 인덱스 명세서

7. 개체-관계 모델의 정의 


* 기출문제 - 2022년 3회 : ERD 기호와 종류 

더보기

06. 다음은 E-R 다이어그램에 대한 설명이다. 빈칸 ①~⑤의 설명에 각각 해당하는 기호를 골라쓰시오.

<E-R 다이어그램>
( ① ) : 관계 집합을 표시한다.
( ② ) : 외래키들을 기본키로 사용하지 않고 일반 속성으로 취급하는 비식별 관계를 연결한다.
( ③ ) : 개체 집합을 표시한다. 개체 집합의 속성으로 기본키를 명세할 수 있다.
( ④ ) : 자신의 개체 속성으로 기본키를 명세할 수 없는 개체 타입이다.
( ⑤ ) : 식별 관계로 개체 집합의 속성과 관계 집합을 연결한다.

 

① ㄴ , ② ㄷ , ③ ㄱ , ④ ㄹ, ⑤ ㅁ

8. ERD(E-R 다이어그램, 개체-관계 다이어그램)

  • 개체-관계 다이어그램(Entity Relationship Diagram)은 여러 가지 기호를 이용해 그래프 형태로 표현한 것이다. 
  • 기호의 종류와 의미

ERD 기호와 의미

 

* 기출문제 - 2023년 1회 : 릴레이션 관련 용어 

더보기

17. 다음 설명에 해당하는 릴레이션 관련 용어를 빈칸 ①, ②, ③에 각각 <보기>에서 골라 쓰시오. 

( ① )  - 테이블의 행(Row)에 해당하며 파일 구조의 레코드(Record)와 같은 의미이다. 
- 한 릴레이션의 튜플들의 값은 모두 상이하며, 튜플 간 순서가 없다. 
( ② )  - 어느 한 시점에 릴레이션이 포함하고 있는 튜플의 집합이다. 
- 릴레이션의 외연(extension)이며 동적인 성질을 갖는다. 
( ③ )  - 튜플의 개수(기수)이다. 

<보기>

ㄱ. 속성      ㄴ. 튜플      ㄷ. 원자값      ㄹ. 디그리      ㅁ. 도메인      ㅂ. 카디널리티      ㅅ. 릴레이션 스킴      ㅇ. 릴레이션 인스턴스
① ㄴ.튜플 , ② ㅇ.릴레이션 인스턴스  , ③ ㅂ.카디널리티

section02. 논리 데이터 저장소 확인

1. 논리 데이터 모델

  • 개념 데이터 모델을 상세화하여 논리적인 데이터 집합, 관리 항목, 관계를 정의한 모델
  • 개체, 속성, 관계로 구성된다. 

(1) 개체(Entity)

  • 자료수집의 대상이 되는 정보 세계에 존재하는 사물

(2) 속성(Attribute)

  • 데이터베이스를 구성하는 가장 작은 논리적 단위
  • 파일 구조상의 데이터 필드(항목)에 해당

2. 관계(Relationship)

  • 속성 관계(Attribute Relationship) : 개체를 구성하고 있는 속성과 속성 사이의 관계
  • 개체 관계(Entity Relationship) : 개체와 개체 사이의 관계

(1) 관계의 종류

  • 일대일(1:1) - 개체 집합 X의 각 원소가 개체 집합 Y의 원소 한 개와 대응한다. 
  • 일대다(1:N) - 개체 집합 X의 각 원소는 개체 집합 Y의 원소 여러 개와 대응하고, 개체 집합 Y의 각 원소는 개체 집합 X의 원소 한 개와 대응한다. 
  • 다대다(N:N) : 개체 집합 X의 각 원소는 개체 집합 Y의 원소 여러 개와 대응하고, 개체 집합 Y의 각 원소도 개체 집합 X의 원소 여러 개와 대응한다. 

3. 관계형 데이터베이스의 특징

  • 대표적인 논리 데이터 모델링 방식
  • 관계형 데이터베이스를 구성하는 개체, 관계를 릴레이션이라는 테이블로 표현한다. 
  • 관계형 데이터베이스에서 테이블이 곧 릴레이션이 된다. 

4. 관계형 데이터베이스의 구성

  1. 릴레이션 스키마 
    • 릴레이션의 이름과 릴레이션의 속성들의 집합
    • 릴레이션의 구조이다. 
  2. 릴레이션 인스턴스
    • 어느 한 시점에 릴레이션이 포함하고 있는 튜플의 집합이다. 

5. 릴레이션(Relation)

  • 릴레이션은 데이터를 테이블의 형태로 표현한 것
  • 릴레이션 스키마와 릴레이션 인스턴스로 구성된다. 
  1. 속성(Attribute)
    • 데이터베이스를 구성하는 가장 작은 논리적 단위
    • 개체의 특성과 상태 등을 기술하며, 파일 구조의 데이터 필드(항목)로 표현된다. 
    • 속성의 수를 디그리(Degree) 또는 차수라고 한다. 
  2. 도메인(Domain)
    • 하나의 속성이 취할 수 있는 같은 타입의 원자(Atomic)값들의 집합
  3. 튜플(Tuple)
    • 릴레이션을 구성하는 각각의 행을 의미한다. 
    • 튜플의 수를 카디널리티(Cardinality) 또는 기수라고 한다. 

section03. 정규화와 이상 현상

1. 정규화와 이상 현상

  1. 정규화(Normalize)
    • 현실 세계의 개체를 컴퓨터 세계에 가장 정확하게 표현할 수 있는 데이터의 논리적 구조를 결정하는 과정
    • 데이터 종속성, 효율적인 데이터 처리, 데이터의 일관성 유지 등의 요구를 충족시키기 위함
  2. 이상(Anomaly) 현상
    • 릴레이션 설계가 잘못되면 데이터가 불필요하게 중복된다. 데이터 중복은 데이터 관리상의 여러 가지 치명적인 문제를 일으키고 릴레이션을 조작할 때 곤란한 현상을 발생시키는 현상
    • 이러한 종속성과 이상 현상을 제거하기 위하여 '정규화'를 통해 효율적인 릴레이션을 구현해야 한다. 

* 기출문제 - 2020년 4회 : 이상 종류

더보기

08. 데이터베이스에서 릴레이션을 처리하는 데 여러 문제를 초래하는 이상 현상 3가지를 쓰시오.

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

2. 이상의 종류 

  1. 삽입 이상
    •  관계 데이터베이스에서 삽입 역시 튜플 단위로 이루어진다. 이때 삽입하는 과정에서 원하지 않는 자료가 삽입된다든지 도는 삽입하는 데 자료가 부족해 삽입이 되지 않아 발생하는 문제점을 삽입 이상이라고 한다. 
  2. 삭제 이상
    • 관계 데이터베이스에서 삭제는 튜플 단위로 이루어진다. 삭제 이상은 테이블에서 하나의 자료를 삭제하고자 하는 경우 그 자료가 포함된 튜플이 삭제됨으로 인해 원하지 않은 자료까지 함께 삭제가 이루어져 발생하는 문제점을 말한다. 
  3. 갱신 이상
    • 관계 데이터베이스의 자료를 갱신하는 과정에서 정확하지 않거나 일부의 튜플만 갱신됨으로 인해 정보가 모호해지거나 일관성이 없어져 정확한 정보의 파악이 되지 않는 현상을 말한다. 

3. 이상의 원인과 해결, 정규화 

  • 속성 간에 존재하는 여러 종속 관계를 하나의 릴레이션에 표현하기 때문에 이상이 발생한다. 
  • 이상이 발생하면 속성 간 종속 관계를 분석하여 여러 개의 릴레이션으로 분해하여 이를 해결하는데, 이 과정을 정규화라고 한다. 

4. 함수적 종속

  • 개체를 구성하는 속성들이 어떤 기준값 속성에 의해 종속되는 현상을 의미
  • 개체를 구성하는 속성 간의 상호 관계로부터 도출되는 제약 조건

* 기출문제 - 2022년 2회 : 함수적 종속성

더보기

14. 다음은 함수종속(Functional Dependency)과 정규화(Normalization)에 대한 설명이다. 설명에 해당하는 용어를 빈칸에 각각 <보기>에서 골라 쓰시오.


 이상(Anomaly)과 함께 관계형 데이터베이스에서 고려해야 할 것 중에 하나가 함수종속(Functional Dependency)이다. 함수종속의 종류로는 ( ① ) Functional Dependency, ( ② ) Functional Dependency, ( ③ ) Functional Dependency 등이 있다. 

 '고객번호', '제품번호', '제품명', '주문량'으로 구성된 <고객주문> 테이블이 있다. <고객주문> 테이블에서는 '고객번호'와 '제품번호'가 조합된 (고객번호, 제품번호)가 기본키이고 다음과 같은 함수종속 관계가 존재한다. 
(고객번호, 제품번호) → 주문량
제품번호 → 제품명
 <고객주문> 테이블에서 '주문량' 속성은 기본키인 '고객번호'와 '제품번호'를 모두 알아야 구분할 수 있다. 이런 경우, '주문량' 속성은 기본키인 '고객번호'와 제품번호'를 모두 알아야 구분할 수 있다. 이런 경우, '주문량' 속성은 기본키에  ( ① ) Functional Dependency 되었다고 한다. 반면, 기본키의 일부인 '제품번호'만 알아도 '제품명'을 알 수 있다. 이와 같은 경우 '제품명'은 기본키에 ( ② ) Functional Dependency 되었다고 한다. 

( ② ) Functional Dependency는 릴레이션에서 한 속성이 기본키가 아닌 다른 속성에 종속이 되거나 또는 기본키가 2개 이상의 복합키(합성키)로 구성된 경우, 이 중 일부 속성에 종속이 되는 경우를 말한다. 2NF는 1NF에서  (  ) Functional Dependency 로 인한 이상의 문제를 해결하이 위해 릴레이션을 분해한 정규형을 말한다. 2NF의 속성들 간에는 (   ) Functional Dependency 관계가 성립하게 된다. 

 3NF는 ( ③ ) Functional Dependency 관계가 성립하지 않도록 하는 것이다. ( ③ ) Functional Dependency란 간접적인 함수 종속관계를 의미한다. 즉, 예를 들어 속성 A가 속성 B를 결정하고, 속성 B는 속성 C를 결정하는 경우, A →C가 성립한다. 아울러 3NF에서는 결정자이면서 후보키가 아닌 것이 존재함에 따라 이상 현상이 발생할 수도 있다. 결정자이면서 모두 후보키이면, 릴레이션 R은 BCNF에 속한다. 
① Full (완전 함수 종속) , ② Partial (부분 함수 종속) , ③ Transitive (이행적 함수 종속)

5. 함수적 종속성(FD, Functional Dependency)

  • 데이터 항목 중 속성 Y가 속성 X에 함수적으로 종속된다는 의미는, 속성 X를 이용하여 속성 Y를 식별할 수 있다는 의미다. 
  • 속성 X는 각각의 데이터값들에 대하여 속성 Y의 값이 오직 하나만 연관되어 있을 때 '속성 Y는 속성 X에 함수적 종속'이라 하며 X→Y라고 표현한다. 
    • 이때 속성 X를 함수의 결정자라고 하고, 속성 Y를 함수의 종속자라고 한다. 
부분 함수 종속
(Partial Functional
Dependency)
릴레이션에서 한 속성이 기본키가 아닌 다른 속성에 종속이 되거나 또는 기본키가 2개 이상 합성키로 구성된 경우 이 중 일부 속성에 종속이 되는 경우
완전 함수 종속
(Full Functional
Dependency)
릴레이션에서 한 속성이 오직 기본키에만 종속이 되는 경우
이행적 함수 종속
(Transitive Functional
Dependency)
릴레이션에서 A, B, C 세 속성 간의 종속이 A → B, B → C일 때, A → C가 성립이 되는 경우

 

* 기출문제 - 2021년 2회, 2024년 1회 : 정규화 과정

더보기

05. 부분 함수적 종속성을 제거하여 완전 함수 종속을 만족하는 정규형이 무엇인지 쓰시오.

제 2정규형 (2NF)

6. 아래 표에서 나타나고 있는 정규형을 작성하시오.

고객아이디 강좌명 강사번호
apple 영어회화 P001
banana 기초토익 P002
carrot 영어회화 P001
carrot 기초토익 P004
orange 영어회화 P003
orange 기초토익 P004
제 3정규형
  • 이 테이블에서 고객아이디 강좌명을 결합하면 고유한 레코드를 식별할 수 있으므로 (고객아이디, 강좌명)이 기본 키가 된다.
  • 그러나 강좌명이 강사번호를 결정하고 있다. 이는 기본 키에 대한 종속 관계가 아니므로 강좌명 → 강사번호와 같은 비이행적 종속을 제거해야 제3정규형을 만족할 수 있다.

6. 정규화(Normalization)

  1. 정규화의 개념
    1. 서로 독립적인 관계는 별개의 릴레이션으로 표현해야 한다. 이렇게 표현된 릴레이션이 어떤 특정의 제약 조건(Constraints)을 만족할 때 그 제약 조건을 요건으로 하는 정규형에 속한다고 말한다. 
    2. 정규화란 함수적 종속성 등의 종속성 이론을 이용해 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어가는 과정이다. 
  2. 정규화의 목적
    1. 어떠한 릴레이션도 데이터베이스 내에서 표현할 수 있게 만든다. 
    2. 정보의 중복을 배제하여 삽입, 갱신, 삭제 이상의 발생을 방지한다. 
    3. 데이터를 삽입할 때 릴레이션을 재구성할 필요성을 줄인다. 
  3. 정규화 과정의 정규화 형태 

비정규 릴레이션

⬇️

원자값이 아닌 도메인을 분해 

1NF ⬇️       

부분 함수 종속 제거

2NF ⬇️       

이행 함수 종속 제거

3NF ⬇️       

결정자나 후보키가 아닌 함수 종속 제거

BCNF ⬇️          

다치 종속성 제거 

4NF ⬇️       

조인 종속

5NF ⬇️       

 


Chapter02. 물리 데이터 설계와 데이터 프로시저 작성하기


section01. 물리 데이터 모델 설계 

1. 논리 데이터 모델 품질 검증 개념

2. 데이터 모델 품질 검증 기준

3. 물리 데이터 모델링 변환 절차 

 

* 기출문제 - 2020년 1회, 2021년 1회, 2024년 2회 : 반정규화

더보기

01. 데이터베이스 모델링 과정 중 비정규화(Denormalization, 반정규화, 역정규화)의 개념을 간략히 서술하시오.

: 데이터베이스 정규화 이후, 성능향상과 개발 편의성 등 정규화 기법에 위배되는 수행 기법

14. 다음 빈칸 ( ) 안에 공통으로 들어갈 가장 적합한 용어를 쓰시오.

- ( )는 시스템의 성능 향상과 개발과 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법을 의미한다.
- ( )란 DB의 성능 향상을 목적으로 정규화를 통해 분할된 테이블을 다시 합치는 과정을 의미한다.
- ( )는 중복성의 원리를 활용하여 데이터 조회 시 성능을 향상시키는 역할을 할 수 있다.

 

: 반정규화 (역정규화, 비정규화)

2. 다음 문제에서 설명하는 용어를 작성하시오.

데이터를 중복시켜 성능을 향상시키기 위한 기법으로 데이터를 중복 저장하거나 테이블을 합치는 등으로 성능을 향상시키지만 데이터 무결성이 저하될 수 있는 기법

 

반정규화, 비정규화, 역정규화

4. 반정규화 

  • 정규화된 엔티티, 속성, 관계에 대해 시스템의 성능 향상과 개발과 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법을 의미한다. 
  • 정규화를 통하여 정합성과 데이터 무결성이 보장되지만, 테이블의 개수가 증가함에 따라 테이블 간의 조인이 증가하여 조회 성능이 떨어질 수 있다. 
  • 즉, 반정규화란 DB의 성능 향상을 목적으로 정규화를 통해 분할된 테이블을 다시 합치는 과정을 의미한다. 
  • 반정규화의 유형
    • 구분 유형 설명
      테이블 분할 수평 분할 레코드 단위로 분할
      수직 분할 컬럼 단위로 분할
      테이블 중복 통계 테이블 추가 DW, OLAP 데이터 용
      진행 테이블 추가 업무 프로세스 상태
      컬럼기반 분할 조회 빈도 기반 고빈도 컬럼 분리
      크기 기반 분할 일정 용량 컬럼 분리 
      컬럼 중복 중복 컬럼 추가 자주 조회되는 컬럼 추가 
      파생 컬럼 추가 연산 결과 별도 저장

 

5. 뷰(View)의 개념

6. 시스템 카탈로그의 개념


section02. 데이터 조작 프로시저 개발


section03. SQL

1. SQL(Structured Query Language)의 개념

  • 관계형 데이터베이스의 표준 질의어이다. 
  • SQL의 종류에는 DDL, DML, DCL이 있다. 
  • ORACLE에서는 DDL, DML, DCL, TCL(Transaction Control Language)로 구분한다. 

 

2. DDL(Data Definition Language, 데이터 정의어)

  • 데이터베이스의 정의/변경/삭제에 사용되는 언어 
  • CREATE : 스키마, 도메인, 테이블, 뷰 정의
  • ALTER : 테이블 정의 변경
  • DROP : 스키마, 도메인, 테이블, 뷰 삭제 

3. DML(Dara Manipulation Language, 데이터 조작어)

  • 데이터의 검색/삽입/삭제/변경에 사용되는 언어
  • 사용자와 DBMS 간의 인터페이스를 제공
  • SELECT : 검색
  • INSERT : 삽입
  • DELETE : 삭제 
  • UPDATE : 갱신

4. DCL(Data Control Language, 데이터 제어어)

  • 데이터 제어 정의 및 기술에 사용되는 언어
  • 불법적인 사용자로부터 데이터를 보호, 무결성 유지, 데이터 복구 및 병행제어를 한다. 
  • GRANT : 데이터베이스 사용자에게 사용 권한 부여
  • REVOKE : 데이터베이스 사용자로부터 사용 권한 취소
  • ROLL : 데이터베이스 사용자의 역할에 관한 권한 부여

5. TCL(Transaction Control Language, 트랜잭션 제어어)

  • 트랜잭션 제어어는 트랜잭션의 DML 작업위를 제어하는 명령어
  • COMMIT : 명령어로 수행된 결과를 실제 물리적 디스크로 저장하고, 명령어로 수행을 완료하였음을 선언
  • ROLLBACK : 명령어로 수행에 실패하였음을 알리고, 수행된 결과를 원상복귀시킴
  • SAVEPOINT : 트랜잭션 작업 중간에 책갈피와 같이 SAVEPOINT를 저장

Chapter03. 데이터 조작 프로시저 최적화하기


section01. 데이터 조작 프로시저 성능 개선


section02. 인덱스(Index)의 개념

* 기출문제 - 2021년 3회 : 인덱스(색인)

더보기

06. 다음 빈칸 (     ) 안에 공통으로 들어갈 가장 적합한 용어를 쓰시오.

파일 구조에는 순차, (      ), 해싱이 있다. 
- 순차 접근 방법은 레코드가 저장되어 있는 물리적 순차를 따른다. 즉, 레코드의 물리적 순서와 논리적 순서가 같게 순차적으로 저장하는 방법이다.
- (      ) 접근 방법은 레코드 접근을 위해 해당 (      )을 찾아, 그 (      )이 가리키는 주소를 따라가서 레코드에 접근할 수 있도록 데이터를 저장하는 데이터 접근 방식이다. (      )은 <값, 주소>의 자료구조로 구성되어 있다.
- 해싱 접근 방법을 이용하는 파일 구조는 (      ) 구조에 의존할 필요 없이 원하는 레코드에 대한 디스크 블록 주소를 레코드의 탐색 값에 대한 함수 계산을 통해 직접 얻을 수 있다.

 

색인 (색인순차, 인덱스)

1. 인덱스(Index)

  • 물리 데이터베이스 설계에서 성능 향상을 위해 테이블의 컬럼과 레코드를 빠르게 식별할 수 있도록 컬럼값과 그 값을 포함하는 레코드의 논리적인 주소를 별도의 저장 구조를 만들어 저장하는 것
  • 인덱스를 이용하면 테이블에 존재하는 데이터 검색 속도를 빠르게 할 수 있다. 
  • 인덱스 파일은 인덱스 엔트리(index entry)라고 하는 레코드로 구성된다. 
  • 파일의 구조 
    • 순차 파일(Sequential File, 순서 파일)
      • 순차 파일은 레코드를 논리적인 처리 순서에 따라 연속된 물리적 공간으로 기록하는 것
    • 직접 파일(Direct File)
      • 파일을 구성하는 레코드를 임의의 물리적 저장공간에 기록하는 것
    • 색인 순차 파일(Indexed Sequential File)
      • 순차 파일과 직접 파일에서 지원하는 편성 방법이 결합된 형태

section03. 데이터베이스 파티셔닝

 


[2. 통합 구현]


Chapter01. 연계 데이터 구성하기


section01. 통합 구현


section02. 연계 데이터 식별 및 표준화


Chapter02. 연계 메커니즘 구성하기


section01. 연계 메커니즘

1. 연계 시스템의 구분

  • 송신 시스템, 중계 서버, 수신 시스템

2. 연계 방식의 종류

  • 직접 연계 - DB Link, DB Connection Pool, JDBC, 화면 링크, API/Open API
  • 간접 연계 - EAI, Web Service/ESB, Socket

 

3. 연계 방식별 비교

4. 연계 메커니즘별 구현 주체, 산출물


section02. 연계 장애 및 오류 처리 구현

1. 연계 장애 및 오류 유형

2. 연계 장애 오류 처리 방안

3. 연계 구간별 오류 발생 시점과 오류 기록

4. 연계 장애 및 오류의 확인과 처리 절차 

5. 연계 데이터 보안

6. 암호화키 형태 분류 

대칭키
(비밀키) 기법
- 암호화, 복호화 할 때 사용하는 키가 동일한 경우 
- 알고리즘 방식 : DES, 3-DES, AES, SEED, ARIA, MASK 등
비대칭키
(공개키) 기법
- 암호화 할 때 사용하는 키와 복호화 할

 

7. 암호화 정보 단위별 분류

  • 블록암호 알고리즘
    • 평문을 블록 단위로 분리하고, 블록마다 암호화 과정을 통하여 고정된 크기의 블록 단위의 암호문을 생성하는 방법 
    •  
      알고리즘 블록 크기 키 길이 라운드 수 구조 대칭키/비대칭
      DES 64비트 56비트 16라운드 Feistel 구조 대칭키
      3-DES 64비트 112/168비트
      (2/3개의 키)
      암호화/복호화/암호화
      (EDE 모드)
      Feistel 구조 대칭키
      AES 128비트 128/192/256비트 10/12/14라운드 SPN 구조 대칭키
      SKIPJACK 64비트 80비트 32라운드 Feistel 변형 구조 대칭키
      IDEA 64비트 128비트 8라운드 Feistel + SPN 구조 대칭키
      SEED 128비트 128비트 16라운드 Feistel 구조 (한국) 대칭키
      ARIA 128비트 128/192/256비트 12/14/16라운드 SPN 구조 (한국) 대칭키
      LEA 128비트 128/192/256비트 24/28/32라운드 SPN 구조 (한국, 경량) 대칭키
      CRYPTON 128비트 0~256비트 12라운드 SPN 구조 대칭키
  • 스트림암호 알고리즘
    • 대칭키 암호의 구조 중 하나로, 유사난수를 연속적(스트림)으로 생성하여 암호화하려는 자료와 결합하는 구조를 가진다. 
    • 하드웨어 구현이 간편하며 속도가 빠르므로 무선 통신 등의 환경에 주로 사용한다. 
    • LFSR : 선형 피드백 시프트 레지스터
    • RC4 : 인터넷 보안 프로토콜에서 널리 사용
    • A5 : GSM 통신에서 사용
  • 공개키암호 알고리즘
    • 소인수 분해 : RSA, Rabin
    • 이산대수 : Diffie-Hellman, DSA, ELGamal
    • 타원곡선 : ECC 
  • 단방향암호 알고리즘
    • MD5 : 빠른 계산 속도, 취약점 발견
    • SHA : NIST(미국 국립표준기술연구소)에 의해 개발된 해시 함수
    • HAS-160 : 한국에서 개발된 해시 함수, KCDSA(디지털서명)에 사용

Chapter03. 내/외부 연계 모듈 구현하기


section01. 내/외부 연계 모듈 구현

1. 모듈 연계 

 

* 기출 문제 - 2021년 1회 : EAI

더보기

04. 기업 내부에서 운영되는 각종 플랫폼 및 애플리케이션 간의 정보전달, 연계, 통합을 가능하게 하는 솔루션이다. Point to Point, Hub&Spoke, Message Bus, Hybrid 등의 데이터 연계 방식을 갖는 소프트웨어 및 정보시스템 아키텍처 프레임워크를 무엇이라 하는지 쓰시오.

: EAI (Enterprise Application Intergration)

* 기출 문제 - 2020년 3회 : EAI 구축 유형 

더보기

 02. 다음은 EAI 구축 유형에 대한 설명이다. ①, ②에 해당하는 유형을 쓰시오.

유형 설명
( ① ) - 중간에 미들웨어를 두지 않고 각 애플리케이션 간 직접 연결
- 솔루션 구매 없이 통합, 상대적 저렴하게 통합 가능
- 변경, 재사용 어려움
( ② ) - 단일 접점이 허브 시스템을 통해 데이터를 전송하는 중앙 집중적 방식
- 모든 데이터 전송 보장, 확장 및 유지보수 용이
- 허브 장애 시 전체 영향 
 
: ① point to point , ② hub&spoke

2. EAI(Enterprise Application Intergration, 기업 애플리케이션 통합)

  1. 정의 
    • 기업 내부에서 운영되는 각종 플랫폼 및 애플리케이션 간의 정보 전달, 연계, 통합을 가능하게 해주는 솔루션
    • 각 비즈니스 간 통합 및 연계성을 증대시켜 효율성을 높일 수 있다.
    • 각 시스템 간의 확장성을 높여 줄 수 있다.
    • 타 시스템에서 필요한 정보를 취득하여 다양한 서비스를 사용자에게 제공할 수 있다.
    • 유형 : Point-to-Point, Hub&Spoke, Message Bus, Hybrid
  2. 유형
    • 유형 설명
      point 
      to
      point
      - 중간에 미들웨어를 두지 않고 각 애플리케이션 간 직접 연결
      - 솔루션 구매 없이 통합, 상대적 저렴하게 통합 가능
      - 변경, 재사용 어려움
      hub
      &
      spoke
      - 단일 접점이 허브 시스템을 통해 데이터를 전송하는 중앙 집중적 방식
      - 모든 데이터 전송 보장, 확장 및 유지보수 용이
      - 허브 장애 시 전체 영향 
      Message
      Bus
      (ESB 방식)
      - 애플리케이션 사이 미들웨어(버스)를 두어 처리
      - 미들웨어를 통한 통합
      - 어댑터가 각 시스템과 버스를 두어 연결하므로 뛰어난 확장성, 대용량 처리 가능
      Hybriid - 유연한 통합 작업이 가능
      - 표준 통합 기술, 데이터 병목 현상 최소화

 

* 기출문제 - 2020년 2회 : SOAP(Simple Object Access Protocol)

더보기

03. 다음 빈 칸에 알맞은 용어를 쓰시오.

 일반적으로 널리 알려진 HTTP, HTTPS, SMTP 등을 통해 XML기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜이다.
(     )은 웹 서비스에서 기본적인 메시지를 전달하는 기반이 되는데, (      ) 에는 몇 가지 형태의 메시지 패턴이 있지만, 보통의 경우 원격 프로시져 호출(Remote Procedure Call:RPC) 패턴으로, 네트워크 노드(클라이언트)에서 다른 쪽 노드(서버)로 메시지를 요청하고, 서버는 메시지를 즉시 응답하게 되는 형식입니다. 즉 (      )는 XML을 이용해서 분산처리 환경에서 정보교환을 쉽게 할 수 있도록 도와준다.
: SOAP, Simple Object Access Protocol

3. ESB(Enterprise Service Bus)

  1. 정의 
    • Web Service, Intelligent Routing, Transformation 기술을 기반으로 SOA(Service Oriented Architecture)를 지원하는 미들웨어 플랫폼
    • 애플리케이션 간의 데이터 변환 및 연계 지원 등을 제공하는 인터페이스 제공 솔루션
    • 애플리케이션 간의 통합 관점으로 EAI와 유사하다고 볼 수 있으나 애플리케이션보다는 서비스 중심으로 통합을 지향하는 아키텍처 또는 기술을 의미
  2. 도입 효과
    • 애플리케이션 통합 및 협업 지원
    • 실시간 기업 기반 제공, 공통 서비스 환경 제공
  3. ESB의 기술 요소 
    • 서비스 통합 : XML, SOAP, WSDL
      • SOAP (Simple Object Access Protocol)
        • 웹에서 HTTP, HTTPS, SMTP 등을 통해 XML기반의 메세지 교환 프로토콜 (REST는 JSON 기반)
        • XML을 이용해서 분산 처리 환경에서 정보 교환을 쉽게 할 수 있도록 도와준다.
        • HTTP를 이용하기 때문에 다른 RPC에 비해 Proxy와 방화벽에 제약을 받지 않고 쉽게 통신이 가능하다. 
        • HTTP뿐만 아니라 다른 전송 프로토콜도 이용할 수 있다. 
        • 플랫폼과 프로그래밍 언어에 독립적이다. 
    • 웹 서비스 보안 프로토콜 : XKMS, XACML, XML 전자서명
    • SOA 지원 : ebXML, BPEL, BPM, BPMN

4. EAI/ESB 비교

 

* 기출문제 - 2020년 1회 : XML

더보기

02. 다음 설명에 부합하는 마크업 언어는 무엇인지 영문 약어로 쓰시오.

  • (    )은 SGML의 단순화된 부분집합으로, 다른 많은 종류의 데이터를 기술하는 데 사용할 수 있다.
  • (    )은 주로 다른 종류의 시스템, 특히 인터넷에 연결된 시스템끼리 데이터를 쉽게 주고 받을 수 있게하여 HTML의 한계를 극복할 목적으로 만들어졌다.
  • (    )은 텍스트 데이터 형식으로 유니코드를 사용해 전 세계 언어를 지원한다.
: XML (eXtensible Markup Language)

5. XML(eXtensible Markup Language)

  • 데이터 통신을 이용해 인터페이스 구현에 사용되는 다목적 마크업 언어이다. 
  • SGML(Stand Generalized Markup Language)의 단순화된 부분집합으로, 다른 많은 종류의 데이터를 기술하는 데 사용할 수 있다. 
  • HTML(웹 페이지 기본 형식) 문법과 웹 브라우저와 호환 문제와 SGML의 복잡성을 해결하기 위해 개발되었다. 
  • 텍스트 데이터 형식으로 유니코드를 사용해 전 세계 언어를 지원한다. 

* 기출문제 - 2021년 1회 : WSDL

더보기

12. 웹 서비스에서 웹 서비스명, 서비스 제공 위치, 서비스 메시지 포맷, 프로토콜 정보 등에 대한 상세 정보를 기술한 파일이며, XML로 기술된 웹 서비스 기술 언어 또는 기술된 정의 파일의 총칭을 무엇이라 하는지 쓰시오.

: WSDL (Web Services Description Language)

6. 웹 서비스(Web Service)

  1. 정의 
    • 네트워크에 분산된 정보를 표준화된 서비스 형태로 공유하는 기술로서, 서비스 지향 아키텍처(SOA) 개념을 실현하는 대표적인 기술
    • SOAP, WSDL, UDDI 등 표준 기술을 이용하여 네트워크에 연결된 다른 컴퓨터 간 상호작용을 위한 서비스 또는 플랫폼을 의미
  2. 필요성
    • SOAP, WSDL, SML 등의 연계 기술의 발달 및 표준화가 정착되었다. 
    • 복잡한 기업 환경, e-Commerce의 유행 등
  3. 구성
    • SOAP (Simple Object Access Protocol)
    • WSDL (Web Services Description Language)
      • 웹 서비스 기술 언어로 웹 서비스가 제공하는 서비스에 대한 정보를 기술하기 위한 XML 기반의 마크업 언어이다.
      • 웹 서비스에서는 저장소로 UDDI를 사용하고 저장소에 접근과 그 저장된 자료의 접근 형식을 적은 설명서로 WSDL가 사용되며 이 자료를 사용하기 위해 실행 프로토콜로 SOAP이 사용된다.
      • 웹 서비스명, 제공 위치, 메시지 포맷, 프로토콜 정보 등 웹 서비스에 대한 상세 정보를 기술한 파일이다.
      • 독집적이며 단순한 XML 형식으로 구현한다.
      • UDDI의 기초가 된다.
      • 인터넷 웹 서비스를 제공하기 위해 SOAP, XML 스키마와 결합하여 사용한다.
    • UDDI (Universal Description Discovery and Integration)

section02. 연계(인터페이스) 테스트 

 


[3. 제품 소프트웨어 패키징]


Chapter01. 제품 소프트웨어 패키징하기


section01. 애플리케이션 패키징

1. 애플리케이션 패키징(배포)의 개념

2. 애플리케이션 패키징의 특성

3. 패키징 시 고려사항

4. 패키징 프로세스


section02. 제품 소프트웨어 저작권 보호

1. DRM(Digital Rights Management)

2. DRM의 유통 과정과 구성

3. 디지털 콘텐츠의 사용 권한(Permission) 유형

4. DRM의 문제점과 대응 방안


section03. 릴리즈 노트 작성

1. 릴리즈 노트(Release Note)의 개념

2. 릴리즈 노트의 중요성

* 기출 문제 - 2020년 1회 : 

더보기

14. 릴리즈 노트 작성 항목 중 문서 이름(릴리스 노트 이름), 제품 이름, 버전 번호, 릴리즈 날짜, 참고 날짜, 노트 버전 등을 기술하는 작성 항목은 무엇인지 쓰시오.

: 헤더 혹은 머리말(Header)

3. 릴리즈 노트 작성 시 고려사항

  • 개발팀이 직접 현재 시제로 정확하고 완전한 정보를 기반으로 하여 작성한다. 
  • 신규 소스, 빌드 등의 이력을 정리하고, 변경 또는 개선된 항목에 대한 이력 정보들도 작성하여야 한다. 
  • 작성의 표준 형식은 없고, 일반적으로 다음 항목이 포함된다. 
    • 머릿말(Header) 
      • 릴리즈 노트명, 제품 이름, 작성일, 릴리즈 노트 날짜, 릴리즈 노트 버전 등의 정보를 고지하는 항목
    • 개요 : 소프트웨어 및 변경사항에 관한 간략하고 전반적인 개요 작성
    • 목적 : 해당 릴리즈 버전에서의 새로운 기능, 수정된 기능의 목록 등 목적에 대한 간략한 개요 작성
    • 이슈(문제) 요약 : 발견된 문제와 수정사항에 대하여 간략한 설명 또는 추가항목에 대한 요약
    • 재현 항목 : 버그 발견에 대한 재현 단계 기술
    • 수정/개선 내용, 사용자 영향도, 지원 영향도, 노트, 면책 영향도, 노트, 면책 조항, 연락처 정보 등 

 

4. 버전을 고려한 릴리즈 노트 작성 순서 


section04. 제품 소프트웨어 패키징 도구

1. 패키징 도구의 개념

2. 패키징 도구의 구성요소

3. 패키징 도구 활용 시 고려사항

4. 애플리케이션 모니터링 도구(APM, Application Performance Management) 

 


Chapter02. 제품 소프트웨어 메뉴얼 작성하기


section01. 소프트웨어 매뉴얼

1. 소프트웨어 설치 매뉴얼

2. 사용자 매뉴얼


section02. 소프트웨어 국제 표준 품질 특성과 품질 목표

1. 소프트웨어 국제 표준 품질 특성

2. 소프트웨어 품질 목표(Software Quality And Goals) 

 


Chapter03. 소프트웨어 버전관리


section01. 제품 소프트웨어 버전관리

1. 형상관리


section02. 버전관리 도구

* 기출 문제 - 2022년 3회 : 버전관리 도구(CVS, SVN, Git)

더보기

01. 다음 중 형상관리 도구에 해당하는 것을 모두 고르시오.

Ant, CVS, OLAP, Maven, SVN, Jenkins, OLTP, Git, Graddle

 

CVS, SVN, Git

1. 버전관리 도구 

CVS
(Concurrent
Versions
System)
- 오픈 소스 프로젝트에서 널리 사용되는 버전관리 시스템이다. 
- 소프트웨어 프로젝트를 진행할 때 파일로 이루어진 모든 작업과 모든 변화를 추적하고, 여러 개발자가 협력하여 작업할 수 있게 지원한다. 
- 최근에는 CVS가 한계를 맞아 이를 대체하는 SVN이 개발되었다. 
Git - 프로그램 등의 소스 코드 관리를 위한 분산 버전관리 시스템이다. 
- Linux 초기 커널 개발자인 리누스 토르발스가 리눅스 커널 개발에 이용하기 위해 개발하였으며, 현재는 다른 곳에도 널리 사용되고 있다. 
- 지역 저장소와 원격 저장소가 존재하며 지역 저장소에서 버전관리가 진행되어 버전관리가 빠르다. 
SVN
(Subversion)
- CVS보다 속도 개선, 저장 공간, 변경 관리 단위가 작업 모음 단위로 개선되었고, 2000년 콜랩넷에서 개발되었다. 
- CVS와 사용 방법이 유사해 CVS 사용자가 쉽게 도입 가능하며 아파치 최상위 프로젝트로서 전 세계 개발자 커뮤니티와 함께 개발되어 있다. 
- 디렉터리, 파일을 자유롭게 이동해도 버전관리가 가능하다. 

 

2. 컴포넌드 저장소(Repository)

3. Git 주요 명령어

4. SVN(Subversion) 주요 명령어


section03. 소프트웨어 빌드

1. 빌드(Build)

2. 빌드 자동화 도구 

 


[4. 애플리케이션 테스트 관리]


Chapter01. 애플리케이션 테스트 케이스 설계하기


section01. 애플리케이션 테스트 케이스 설계

1. 응용 소프트웨어의 유형

  • 시스템 소프트웨어, 미들웨어, 응용 소프트웨어

* 기출 문제 - 2020년 1회 : 살충제 패러독스

더보기

03. 소프트웨어 테스트 방법의 원리 중 하나인 살충제 패러독스(Pesticide Paradox)의 개념을 간략히 설명하시오.

: 동일한 테스트 케이스로 동일한 절차를 반복 수행하면 새로운 결함을 찾을 수 없다.

2. 소프트웨어 테스트 

  1. 소프트웨어 테스트의 개념 
    • 구현된 애플리케이션이나 시스템이 사용자의 요구사항을 만족시키는지 확인하기 위하여 기능 및 비기능 요소의 결함을 찾아내는 활동
  2. 소프트웨어 테스트의 원칙
    • 테스팅은 결함이 존재함을 밝히는 활동이다. 
      • 소프트웨어의 잠재적인 결함을 줄일 수 있지만, 결함이 발견되지 않았다고 해서 결함이 없다고 증명할 수는 없음을 의미한다. 
    • 완벽한 테스팅은 불가능하다. 
      • 무한 경로, 무한 입력값, 무한 시간이 소요되어 완벽하게 테스트할 수 없으므로 위험 분석과 우선순위를 토대로 테스트에 집중할 것을 의미한다. 
    • 테스팅은 개발 초기에 시작해야 한다. 
      • 애플리케이션의 개발 단계에 테스트를 계획하고 SDLC(Software Development Life Cycle)의 각 단계에 맞춰 전략적으로 접근하는 것을 고려하라는 뜻이다. 
    • 결함 집중(Defect Clustering, 파레토 법칙)
      • 애플리케이션의 결함의 대부분은 소수의 특정한 모듈에 집중되어 존재한다. 
    • 살충제 패러독스
      • 동일한 테스트 케이스로 동일한 절차를 반복 수행하면 새로운 결함을 찾을 수 없다는 것을 의미한다. 
      • 잠재된 수많은 결함을 발견하기 위해서는 테스트 케이스를 정기적으로 개선하는 것이 필요하다는 원리이다. 
      • 같은 테스트 케이스를 가지고 테스트를 계속해서 반복하면 내성으로 인해 결국은 버그가 발견되지 않는다. 
      • 이러한 현상을 방지하기 위해서는 테스터가 적극적인 자세를 가지고 지속적으로 테스트 케이스를 검토하고 개선해야 한다. 
    • 테스팅은 정황(context)에 의존한다. 
      • 정황과 비즈니스 도메인에 따라 테스트를 다르게 수행하여야 한다. 
    • 오류-부재의 궤변(Absence of Errors Fallacy)
      • 사용자의 요구사항을 만족하지 못하는 오류를 발견하고 그 오류를 제거하였다고 해도, 해당 애플리케이션의 품질이 높다고 말할 수 없다. 
  3. 소프트웨어 테스트 프로세스
  4. 소프트웨어 테스트 산출물
  1.  

section02. 테스트 케이스, 오라클, 시나리오

1. 테스트 케이스 

  • 구현된 애플리케이션이 초기 요구사항을 준수하는지 확인하기 위해 설계된 입력값, 실행 조건, 기대 결과로 구성된 테스트 항목의 명세서를 이용하는 명세 기반 테스트의 설계 산출물

* 기출 문제 - 2020년 4회 : 샘플링 오라클

더보기

03. 테스트 오라클은 테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참(True) 값을 입력하여 비교하는 기법 및 활동을 말한다. 테스트 오라클의 유형 중 전수 테스트가 불가한 경우 특정한 몇 개의 입력값에 대해서만 기대하는 결과를 제공해 주는 오라클로 경계값, 구간별 예상값 결과 작성 시 사용하는 오라클을 무엇이라 하는지 쓰시오. 

: 샘플링 오라클

2. 테스트 오라클

  • 테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참(True) 값을 입력하여 비교하는 기법 및 활동
참(True) 오라클 모든 입력값에 대하여 기대하는 결과를 생성함으로써 발생한 오류를 모두 검출할 수 있는 오라클이다. 
샘플링(Sampling) 오라클 특정한 몇 개의 입력값에 대해서만 기대하는 결과를 제공해주는 오라클이다. 
휴리스틱(Heuristic) 오라클 샘플링 오라클을 개선한 오라클로, 특정 입력값에 대해 올바른 결과를 제공하고, 나머지 값들에 대해서는 휴리스틱(추정)으로 처리하는 오라클이다. 
일관성검사(Consistent) 오라클  애플리케이션 변경이 있을 때, 수행 전과 후의 결과값이 동일한지 확인하는 오라클이다. 

 

3. 테스트 시나리오

4. 테스트 환경 구축


section03. 애플리케이션 테스트 유형

1. V-모델과 테스트 레벨

  • 애플리케이션 개발 단계에 따라 단위 테스트, 통합 테스트, 시스템 테스트, 인수 테스트, 설치 테스트로 분류 
  • 각각의 테스트 레벨은 서로 독립적이며, 각각 다른 테스트 계획과 전략을 필요로 한다. 

V-모델과 테스트 단계

 

* 기출 문제 - 2022년 1회 : 테스트 레벨 종류, 단계 

더보기

12. 다음 V모델에서의 테스트 단계에 대한 설명으로 괄호 안에 들어갈 내용을 쓰시오.

① 단위 테스트 , ② 통합 테스트 , ③ 시스템 테스트 , ④ 인수 테스트

2. 테스트 레벨의 종류 

단위 테스트 개발자가 원시 코드를 대상으로 다른 부분과 연계되는 부분은 고려하지 않고 각각의 단위 자체에만 집중하여 테스트
통합 테스트 단위 테스트를 통과한 개발 소프트웨어/하드웨어 컴포넌트 간 인터페이스 및 연동 기능을 구조적으로 접근하여 테스트
시스템 테스트 - 단위/통합 테스트가 가능한 완벽히 완료되어 기능상 문제가 없는 상태에서 가능한 한 실제 환경과 유사한 환경에서 진행
- 시스템 성능과 관련된 요구사항이 완벽하게 수행되는지를 테스트하기 때문에 사전 요구사항이 명확해야 함
- 개발 조직과는 독립된 테스트 조직에서 수행한다. 
인수 테스트 - 일반적인 테스트 레벨의 가장 마지막 상위 레벨, SW 제품에 대한 요구사항이 제대로 이행되었는지 확인하는 단계 
- 실사용자 환경에서 테스팅을 하며 수행하는 주체가 사용자
- 알파, 베타 테스트와 가장 밀접한 연관 

 

* 기출 문제 - 2022년 2회 : 알파, 베타 테스트

더보기

05. 다음은 개발된 소프트웨어를 당장 사용할 수 있도록 준비되어 있는지 확인하기 위한 단계에서 이루어지는 테스트 종류이다. 빈칸에 각각 알맞은 테스트 명칭을 쓰시오.

  • 개발사 내에서 진행하는 테스트이다.
  • 개발자 관점에서 수행된다.
  • 개발자는 사용상의 문제를 기록하여 반영되도록 하는 테스트이다.
  • 선정된 다수의 사용자가 자신들의 사용 환경에서 일정기간 사용하면서 테스트한다.
  • 문제점이나 개선 사항 등을 기록하고 개발 조직에 통보하여 반영되도록 하는 테스트이다.

 

① 알파 테스트 , ② 베타 테스트
  • 인수 테스트 (Acceptance Test)
    • 인수 테스트의 목적은 사용자에게 소프트웨어가 개발되어 사용될 준비가 되었다는 확신을 주기 위한 것이다.
    • 검증 검사(Validation Test)는 블랙박스 검사를 이용하며, 알파 검사, 베타 검사 등의 기법을 말한다.
    • 알파 테스트
      (Alpha Test)
      - 개발자의 통제 하에 사용자가 개발 환경에서 수행하는 테스트
      - 개발자 관점, 사용상의 문제가 반영되도록 하는 테스트
      베타 테스트
      (Beta Test)
      - 개발된 소프트웨어를 사용자가 실제 운영 환경에서 수행하는 테스트
      - 선정된 다수의 사용자가 자신들의 사용 환경에서 일정기간 사용하면서 테스트
      - 문제점이나 개선 사항 등을 기록하고 개발 조직에 통보하여 반영되도록 하는 테스트

3. 애플리케이션 테스트 유형 분류 

  • 프로그램 실행 여부
    • 정적 테스트
    • 동적 테스트
  • 테스트 기법
    • 화이트박스 테스트
    • 블랙박스 테스트
  • 테스트에 대한 시각
    • 검증 테스트
    • 확인 테스트
  • 테스트 목적
    • 회복 테스트
    • 안전 테스트
    • 강도 테스트
    • 성능 테스트
    • 구조 테스트
    • 회귀 테스트
    • 병행 테스트 
  • 테스트 기반
    • 명세 기반 테스트
    • 구조 기반 테스트
    • 경험 기반 테스트 

* 기출 문제 - 2020년 2회, 2022년 1회 : 정적 분석, 동적 분석 

더보기

07. 프로그램을 실행시키지 않고, 소스코드에 대한 코딩 표준, 코딩 스타일, 복잡도, 보안 취약점, 잠재적인 결함을 찾는 테스트 활동이 무엇인지 쓰시오.

: 정적 분석 또는 정적 테스트

06. 다음은 소스코드 품질 분석 도구에 대한 설명이다. 설명에 해당하는 분석 도구를 빈칸에 각각 <보기>에서 골라 쓰시오.

( ① ) Analysis
- 원시 코드를 분석하여 잠재적인 오류를 분석하며, 코딩 표준, 런타임 오류 등을 검증한다.
- 결함 예방/발견, 코딩 표준, 코드 복잡도 등을 분석하는 것이 가능하다.
( ② ) Analysis
- 프로그램 수행 중 발생하는 오류의 검출을 통한 오류 검출(Avaianche, Valgrind 등)한다.
- 메모리 릭(Leak), 동기화 오류 등을 분석하는 것이 가능하다.

 

① static (정적 분석) , ② dynamic (동적 분석)

4. 프로그램 실행 여부에 따른 테스트 

동적 테스트
(Dynamic Test)
- 애플리케이션을 직접 실행하여 오류를 찾는 테스트를 의미한다. 
- 소프트웨어 개발의 모든 단계에서 테스트를 수행한다. 
- 종류 : 블랙박스 테스트, 화이트박스 테스트
정적 테스트
(Static Test)
- 애플리케이션을 직접 실행하지 않고 명세서나 소스코드를 대상으로 분석하는 테스트를 의미한다. 
- 소프트웨어 개발 초기에 결함 발견이 가능하여, 개발 비용을 낮출 수 있다. 
- 종류 : 워크스루, 인스펙션, 코드검사 등이 있다. 
  • 소스코드 품질 분석 도구  : 소스코드의 코딩 스타일, 코드에 설정된 코딩 표준, 코드의 복잡도, 코드에 존재하는 메모리 누수 현상, 스레드 결함 등을 발견하기 위해 사용하는 분석 도구이다. 
정적 분석
(Static Analysis)
- 원시 코드를 분석하여 잠재적인 오류를 분석하며, 코딩 표준, 런타임 오류 등을 검증한다.
- 결함 예방/발견, 코딩 표준, 코드 복잡도 등을 분석하는 것이 가능하다.
동적 분석
(Dynamic Analysis)
- 프로그램 수행 중 발생하는 오류의 검출을 통한 오류 검출(Avaianche, Valgrind 등)한다.
- 메모리 릭(Leak), 동기화 오류 등을 분석하는 것이 가능하다.

 

5. 테스트 기반(Test Bases)에 따른 테스트

구조 기반테스트 - 소프트웨어 내부의 구조(논리 흐름)에 따라 테스트 케이스를 작성하고 확인하는 테스트 방식
- 종류 : 구문 기반, 결정 기반, 조건 기반 등
명세 기반 테스트 - 사용자의 요구사항에 대한 명세를 기반으로 테스트 케이스를 작성하고 확인하는 테스트 방식
- 종류 : 동등 분할, 경계값 분석 등
경험 기반 테스트 - 테스터의 경험을 기반으로 수행하는 테스트 방식
- 요구사항에 대한 명세가 미흡하거나 테스트 시간에 제약이 있는 경우에 수행하면 효과적
- 종류 : 에러 추정, 체크리스트, 탐색적 테스팅

 

 

* 기출 문제 - 2022년 2회 : 회귀 테스트

더보기

06. 다음 설명에 해당하는 테스트를 <보기>에서 골라 쓰시오.

  • 소프트웨어의 변경 또는 수정된 코드에 새로운 결함이 없음을 확인하는 테스트이다.
  • 오류를 제거한 수정 및 변경 모듈에 대한 확정 테스트가 끝나면 새로운 오류가 확인을 위해 이미 테스트했던 부분을 다시 실행해보는 일종의 반복 테스트이다.
  • 한 모듈의 수정이 다른 부분에 미치는 영향을 최소화하기 위해 필요한 테스트이다.

 

Regression(회귀)

6. 목적에 따른 테스트

회복(Recovery) 고의로 부하를 가하여 실패하도록 유도하고 올바르게 복구되는지 테스트
안전(Security) 보안적인 결함을 점검, 불법적인 침입으로부터 시스템을 보호할 수 있는지 확인
강도(Stress) 과부하 테스트, 과도하게 부하를 가하여도 소프트웨어가 정상적으로 실행하는지 확인
성능(Performance) 응답하는 시간, 처리량, 반응속도 등을 테스트
구조(Structure) 소스코드의 복잡도, 소프트웨어 내부의 논리적인 경로 등을 평가
회귀(Regression) 변경, 수정 코드에 대해 새로운 결함 여부 평가
병행(Parallel) 변경된 시스템과 기존 시스템에 동일한 데이터를 입력 후 비교
A/B 테스트 기존 서비스 대비 효과 테스트
스모크 테스트(Smoke) 테스트 환경의 테스트

 

7. 화이트박스 테스트(White Box Test)

  • 모듈의 원시 코드를 오픈시킨 상태에서 코드의 논리적 모든 경로를 테스트하는 방법
  • 종류 
기초 경로 검사 - 테스트 케이스 설계자가 적차적 설계의 논리적 복합성을 측정할 수 있게 한다. 
- 측정 결과는 실행 경로의 기초를 정의하는 데 지침으로 사용된다. 
제어 구조 검사 - 조건 검사는 프로그램 모듈 내에 있는 논리적 조건을 테스트하는 테스트 케이스 설계 기법이다. 
- 루프 검사는 프로그램의 반복구조에 맞춰 실시하는 테스트 케이스 설계 기법이다. 
- 데이터 흐름 검사는 프로그램에서 변수의 정의와 변수 사용의 위치에 초점을 맞춰 실시하는 테스트 케이스 설계 기법이다. 

 

* 기출 문제 - 2020년 3회/4회, 2021년 1회/3회, 2022년 1회/3회, 2023년 3회 : 블랙박스 테스트 정의, 종류 

더보기

05. 소프트웨어 테스트 기법 중 소프트웨어의 기능이 완전히 작동하는 것을 입증하는 테스트로, 동치분할/경계값 분석을 이용하여 테스트 하는 기법을 쓰시오.

: 블랙박스 테스트

04. 테스트 기법 중 다음과 같이 입력값을 넣고, 출력값을 비교하는 테스트 기법을 쓰시오.

테스트 케이스 1 2 3 4
구간 0~59 60~79 80~89 90~100
테스트 데이터 45 70 85 95
예측값 F C B A
결과값 F C B A
: 동치분할 테스트(기법) 혹은 동등분할 테스트(기법)

06. 다음은 블랙박스 테스트의 예시이다. ①, ②에 알맞은 테스트를 작성하시오.

- ( ① ) : 0 <= X <= 10 일 때, -1, 0, 10, 11 인 경우 사용하는 테스트
- ( ② ) : 유효값과 그렇지 않은 범위를 나눠야 할 경우 사용하는 테스트

 

: ① 경계값 분석 , ② 동등분할 테스트

4. 요구 명세서를 입력 조건과 출력 조건 간의 논리적 관계로 표현하여 여러 입력 데이터 간의 관계와 출력에 미치는 상황을 체계적으로 분석한 테스트 케이스를 도출하고, 입력 환경의 복합성을 고려한 블랙박스 테스트 기법이 무엇인지 <보기>에서 골라 쓰시오. 

Equivalence Partitioning, Boundary Value Analysis, Cause-effect Graphing, Fault based, Base Path Test, Loop Test, Comparison Testing
Cause Effect Graph

08. 다음 보기 중에서 블랙박스 테스트 기법 3가지를 골라 작성하시오.

Equivalence Partitioning, Boundary Value Analysis, Base Path Test, Loop Test, Decision Coverage, Casue-effect Graph

 

Equivalence Partitioning(동등 분할 기법), Boundadry Value Analysis(경곗값 분석), Cause-effect Graph(원인-효과 그래프 검사)

04. 아래 점수에 따라 점수를 출력하는 테스트를 진행하려고 한다. 다음과 같은 테스트 입력 값을 넣을 때의 테스트 방식을 쓰시오.

점수 금액   테스트 입력 값
90~100 700만원
80~89 500만원
70~79 300만원
0~69 0만원
 
테스트 입력 값 : -1, 0, 1, 68, 69, 70, 99, 100, 101

 

Boundary Value Analysis (경곗값 분석)

2. 다음은 주어진 평가점수별 학점 조건을 토대로 테스트케이스를 작성하여 테스트를 진행한 결과이다. 다음 적용한 테스트 기법은 명세 기반 테스트의 기법 중 프로그램의 입력 조건에 중점을 두고, 어느 하나의 입력 조건에 대하여 타당한 값과 그렇지 못한 값을 설정하여 해당 입력 자료에 맞는 결과가 출력되는지 확인하는 테스트 기법이다. 적용한 테스트 기법을 무엇이라 하는지 <보기>에서 골라 기호를 쓰시오. 

<조건>

평가점수 학점
0~59 F
60~69 D
70~79 C
80~89 B
90~100 A

 
<결과>

테스트케이스 1 2 3 4 5
구간 0~59 60~69 70~79 80~89 90~100
테스트데이터 55 66 77 88 99
예측값 F D C B A
결과값 F D C B A
ㄱ. Boundary Value Analysis                 ㄴ. Basic Path Test       ㄷ. Comparison Testing                     ㄹ. Loop Test       
ㅁ. Equivalence Partitioning Testing     ㅂ. Data Flow Test        ㅅ. Cause Effect Graphing Testing    ㅇ. Condition Test
ㅁ. Equivalence Partitioning Testing

8. 블랙박스 테스트(Black Box Test)

  • 소프트웨어가 수행할 특정 기능을 알기 위해 각 기능이 완전히 작동되는 것을 입증하는 테스트로, 기능 테스트라고도 한다. 
  • 소프트웨어 인터페이스에서 실시, 요구사항 명세를 보면서 테스트, 주로 구현된 기능을 테스트
  • 종류 
동등 분할 기법
(동치 분할 검사)
- 입력 자료에 초점을 맞춰 테스트 케이스를 만들어 검사하는 방법
- 입력 조건에 타당한 입력 자료와 그렇지 않은 자료의 개수를 균등하게 나눠 테스트 케이스를 설정한다. 
경곗값 분석 - 입력 조건의 경계값을 테스트 케이스로 선정하는 방법
- 입력 자료에만 치중한 동치 분할 기법을 보완한 것
- 입력 조건 경계값에서 오류 발생 확률이 크다는 것을 활용하여 경계값 테스트 케이스로 선정해 검사한다.
원인-효과 그래프 검사 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음 효용성이 높은 테스트 케이스를 선정하여 검사하는 기법
오류 예측 검사 - 과거의 경험이나 테스터의 감각으로 테스트 하는 기법
- 다른 테스트 기법으로는 찾기 어려운 오류를 찾아내는 보충적 검사 기법이다.
비교 검사 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 테스트하는 기법

Chapter02. 애플리케이션 통합 테스트하기


section01. 단위 모듈 테스트

1. 단위 모듈

  • 소프트웨어 구현에 필요한 다양한 동작 중 한 가지 동작을 수행하는 기능을 모듈로 구현한 것을 의미 
  • 사용자 또는 다른 모듈로부터 값을 전달받아 시작되는 작은 프로그램
  • 독립적인 컴파일이 가능하며, 다른 모듈에 호출되거나 삽입될 수 있다. 

2. 모듈화의 원리 

3. 단위 모듈 테스트(Unit Test)

4. 테스트 프로세스(Test Process)

5. 테스트 커버리지(Test Coverage)

  • 주어진 테스트 케이스에 의해 수행되는 소프트웨어의 테스트 범위를 측정하는 테스트 품질 측정 기준이며, 테스트의 정확성과 신뢰성을 향상시키는 역할을 한다. 
  • 테스트 커버리지 유형 : 기능 기반 커버리지, 라인 커버리지, 코드 커버리지(구문, 결정, 조건, 변경조건/결정)

* 기출 문제 - 2020년 3회, 2021년 2회, 2023년 1회/2, 2024년 1회 : 코드 커버리지

더보기

04. 다음 제어 흐름 그래프에 대한 분기 커버리지(Branch Coverage)를 수행하는 경우의 테스트 케이스 경로를 7단계와 6단계로 나눠서 순서대로 나열하시오.

7단계 : 1 → 2 → 3 → 4 → 5 → 6 → 1   or   1 → 2 → 3 → 4 → 5 → 6 → 7
6단계 :  1 → 2 → 4 → 5 → 6 → 7   or    1 → 2 → 4 → 5 → 6 → 1

14. 화이트박스 테스트에서 수행하는 구조적 커버리지의 설명으로 알맞은 것을 쓰시오.

  • ( ① ) : 시험 대상의 전체 구문 중에 테스트에 의해 실행된 구문을 측정한다.
  • ( ② ) : 시험 대상의 전체 분기 중 테스트에 의해 실행된 것을 측정한다.
  • ( ③ ) : 모든 조건식의 true, false 중 테스트에 의해 실행된 것을 측정한다.
① 구문 커버리지(문장 커버리지) , ② 결정 커버리지(분기 커버리지) , ③ 조건 커버리지

3. 다음 제어 흐름 그래프에 대한 분기 커버리지(Branch Coverage)를 수행하는 경우의 테스트케이스 경로를 순서대로 나열하시오. 

<제어 흐름 그래프>

답 (1) : 1 - 2 - 3 - 4 - 5 - 6 - 1 
답 (2) : 1 - 2 - 4 - 5 - 6 - 7

4. 결정 포인트 내의 모든 개별 조건식에 대해 수행하는 테스트 커버리지를 <보기>에서 골라 쓰시오. 

ㄱ. 구문 커버리지    ㄴ. 결정 커버리지    ㄷ. 조건 커버리지    ㄹ. 변경/조건 커버리지    ㅁ. 다중 조건 커버리지    ㅂ. 경로 커버리지
ㄷ. 조건 커버리지

14. 아래는 애플리케이션 테스트 관리에 대한 내용이다. 설명하는 답을 보기에서 골라 작성하시오. 

- 모든 분기와 조건의 조합을 고려하나 모든 조합을 테스트하는 대신에 테스트가 필요한 중요한 조합을 찾아내는데에 중점을 둔다. 
- 특정 조건을 수행할 때 다른 조건과는 상관없이 전체 결과에 영향을 미치는 조건만을 테스트한다. 
- 각각의 파라미터는 적어도 한 번은 최종 결과에 영향을 주어야 한다. 
ㄱ. 구문 커버리지        ㄴ. 결정 커버리지        ㄷ. 조건 커버리지        ㄹ. 변경 조건/결정 커버리지
ㅁ. 다중 조건 커버리지        ㅂ. 경로 커버리지        ㅅ. 조건/결정 커버리지 
ㄹ. 변경 조건/결정 커버리지

6. 코드 커버리지(Code Coverage)

  • 프로그램의 소스코드의 테스트 수행 정도를 표시한다. 
구문 커버리지
(Statement Coverage)
- 코드 구조 내의 모든 구문에 대해 한 번 이상 수행하는 테스트 커버리지
- 예를 들어 반복문에서 10회 반복 테스트를 수행해야 100% 테스트가 완료된다고 가정할 때 5회만 반복한 경우 구문 커버리지는 50%이다. 
조건 커버리지
(Condition Coverage)
결정 포인트 내의 모든 개별 조건식에 대해 수행하는 테스트 커버리지 
결정 커버리지
(Decision Coverage)
결정포인트 내의 모든 분기문에 대해 수행하는 테스트 커버리지 
- 예를 들어 10개의 분기문 중에서 4개의 분기만 테스트가 완료되었다고 가정하면 결정 커버리지는 40%이다.
- 분기 커버리지(Branch Coverage)라고도 한다. 
조건/결정 커버리지
(Condition/Decision
Coverage)
- 결정 포인트 T/F, 개별 조건식 T/F
- 즉, 코드 내의 결정 포인트에서 발생하는 모든 조건식의 결과(true/false)와 전체 결정식의 결과(true/false)를 모두 고려하여 측정
변경 조건/결정 커버리지
(Modified Condition/
Decision Coverage)
- 조건과 결정을 복합적으로 고려한 측정 방법
- 결정 포인트 내의 다른 개별적인 조건식 결과에 상관없이 전체 조건식의 결과에 영향 주는 테스트 커버리지
- 모든 결정포인트 내의 개별 조건식은 적어도 한 번 T/F
다중 조건 커버리지
(Multiple Condition
Coverage)
- 모든 개별 조건식의 true, false 조합 중 테스트에 의해 실행된 조합을 측정
- 100% 달성하기 위해서는 모든 개별 조건식 조합을 실행해야 하므로 다른 커버리지에 비해 상대적으로 많은 테스트 케이스가 필요하다. 
경로 커버리지
(Path Coverage)
- 모든 가능한 실행 경로를 고려하여 테스트를 수행하는 테스트 커버리지 
- 각 조건문, 반복문 및 분기점에서의 모든 조합을 포함한 경로를 검사하여 코드의 논리적 오류를 찾아내는 데 중점을 둔다. 

코드 커버리지

 

7. 테스트 자동화 도구 

 

* 기출 문제 - 2021년 2회/3회, 2023년 2회 : 테스트 드라이브, 스텁

더보기

13. 테스트 하네스 도구 구성요소 중 하향식 테스트 시 상위 모듈은 존재하나 하위 모듈이 없는 경우의 테스트를 위해 임시 제공되는 모듈로 골격만 있는 또는 특별한 목적의 소프트웨어 컴포넌트를 구현한 것을 의미하는 용어를 쓰시오. 

스텁(stup)

07. 다음은 점진적 통합 테스트에 대한 설명이다. 빈칸에 들어갈 용어를 <보기>에서 골라 쓰시오.

 점진적 통합 테스트는 단계적으로 각 모듈을 통합하며 테스트를 한다. 오류 수정이 쉽고 인터페이스 관련 오류를 테스트할 수 있다.
 점진적 통함 테스트 중 ( ① ) 테스트는 가장 아래에 있는 모듈부터 테스트를 시작한다. ( ① ) 테스트에서는 상위 모듈의 역할을 하는 ( ② )가 필요하다. ( ② )는 하위 모듈을 순서에 맞게 호출하고 호출 시 필요한 매개변수를 제공하며 결과를 전달하는 역할을 한다.

 

① 상향식 통합 , ② 드라이버

3. 다음은 점진적 통합 테스트와 관련된 용어에 대한 설명이다. 빈칸 ①, ②에 알맞은 용어를 쓰시오. 

( ① ) - 하향식 테스트에서 상위 모듈은 존재하나 하위 모듈이 없는 경우의 테스트를 위해 임시 제공되는 모듈이다. 
- 골격만 있는 또는 특별한 목적의 소프트웨어 컴포넌트를 구현한 것이다. 
( ② ) - 상향식 테스트에서 하위 모듈을 순서에 맞게 호출하고 호출 시 필요한 매개변수를 제공하여 결과를 전달하는 역할을 하는 모듈이다. 
① 스텁 , ② 드라이버

8. 테스트 하네스 도구 구성요소

테스트 드라이버 (Test Driver) - 상향식 테스트 시 상위 모듈 없이 하위 모듈이 존재할 때 하위 모듈 구동 시 자료 입출력을 제어하기 위한 제어 모듈(소프트웨어)
- 컴포넌트나 시스템을 제어하거나 호출하는 컴포넌트를 대체하는 모듈
테스트 스텁 (Test Stub) - 하향식 테스트 시 상위 모듈은 존재하나 하위 모듈이 없는 경우의 테스트를 위해 임시 제공되는 모듈
- 골격만 있는 또는 특별한목적의 소프트웨어 컴포넌트를 구현한 것을 의미
- 스텁을 호출하거나 스텁에 의존적인 컴포넌트를 개발하거나 테스트할 때 사용
테스트 슈트(Test Suites) 일정한 순서에 의하여 수행될 개별 테스트들의 집합 또는 패키지 
테스트 케이스(Test Case) 요구에 맞게 개발되었는지 확인하기 위하여 테스트할 입력과 예상 결과를 정의한 것 
테스트 스크립트(Test Script) 테스트 케이스를 수행하여 그 결과를 보고할 목적으로 명령어 또는 스크립트 언어로 작성한 파일
목 오브젝트(Mock Object) 테스트를 위해 사용자 행위를 미리 조건부로 입력해두고 그 상황에 맞는 행위를 수행하는 객체 

 

9. 테스트 수행 단계별 테스트 자동화 도구 


section02. 통합 테스트

* 기출 문제 - 2022년 1회 : 테스트 레벨 종류, 단계 

더보기

12. 다음 V모델에서의 테스트 단계에 대한 설명으로 괄호 안에 들어갈 내용을 쓰시오.

① 단위 테스트 , ② 통합 테스트 , ③ 시스템 테스트 , ④ 인수 테스트

1. 단위 테스트(Unit Test)

  • 소프트웨어 최소 기능 단위인 모듈, 컴포넌트를 테스트하는 것으로 사용자의 요구사항을 기반으로 한 기능 테스트를 제일 먼저 수행한다. 
  • 인터페이스, 가료 구조, 독립적 기초 경로, 오류 처리 경로, 결제 조건 등을 테스트한다. 
  • 구조 기반 테스트와 명세 기반 테스트로 분류할 수 있으나 주로 구조 기반 테스트를 시행한다. 

2. 통합 테스트(Integration Test)

  • 각 모듈을 결합하여 시스템을 완성하는 과정에서 모듈 간 인터페이스 혹은 통합된 컴포넌트 간 상호작용 오류 및 결함을 찾아내기 위한 테스트 기법 
  • 비점진적 통합 방식(빅뱅)과 점진적 통합 방식(상향식/하향식)이 있다. 

3. 빅뱅(BigBang)

  • 시스템을 구성하는 모듈을 각각 따로 구현하고 전체 시스템의 시험을 한 번에 진행한다. 
  • 테스트를 위한 Driver와 Stub 없이 실제 모듈들로 테스트를 진행한다. 
  • 단시간 테스트를 수행하나 결함의 격리가 어려운 방식

4. 상향식 통합 검사(Bottom Up Integration Test)

  • 프로그램 구조에서 최하위 레벨인 모듈을 구성하고 상위 모듈 방향으로 통합하며 검사한다. 
  • 가장 하위 단계의 모듈부터 수행되므로 스텁이 필요없으나 하나의 주요 제어 모듈과 관련된 종속 모듈의 그룹인 클러스터가 필요하다. 
  • 시험 사례 입력과 출력을 조정하기 위해 드라이버(Driver)가 작성된다. 

5. 하향식 통합 검사(Top Down Integration Test)

  • 상위 컴포넌트를 테스트하고 점증적으로 하위 컴포넌트를 테스트
  • 주요 제어 모듈 기준으로 아래로 통합하며 진행한다. 
  • 하위 컴포넌트 개발이 완료되지 않으면 스텁(Stub)을 사용한다. 
  • 우선 통합법, 깊이 우선 통합법, 넓이 우선 통합법 등이 있다. 

6. 통합 테스트 수행 방법 비교 

7. 샌드위치 테스트(Sandwich Test)

8. 회귀 시험(Regression Test)


section03. 결함 관리

1. 결함 

2. 결함 관리

 


Chapter03. 애플리케이션 성능 개선하기


section01. 애플리케이션 성능 분석

1. 애플리케이션의 성능을 측정하기 위한 지표

2. 유형별 성능 분석 도구

3. 애플리케이션 성능 저하 원인 분석

4. 오픈소스 성능 테스트 도구

5, 오픈소스 시스템 모니터링 도구


section02. 애플리케이션 성능 개선

1. 소스코드 최적화

2. 소스코드 품질 분석

 


[5. 인터페이스 구현]


Chapter01. 인터페이스 설계와 기능 구현하기


section01. 인터페이스 설계서 확인 

1. 인터페이스 

  • 애플리케이션 개발 단계에 정의된 내/외부 모듈 및 컴포넌트 간의 데이터 교환과 데이터 처리를 위한 기능을 의미
  • 인터페이스 설계서를 통하여 내/외부 모듈 간의 상세 인터페이스 기능을 확인한다. 

* 기출 문제 - 2020년 1회 : JSON

더보기

06. 다음 설명 중 빈 칸에 가장 부합하는 용어를 영문약어로 쓰시오.

  • Javascript 객체 문법으로 구조화된 데이터를 표현하기 위한 문자 기반의 표준 포맷.
  • ( ) 표현식은 사람과 기계 모두 이해하기 쉬우며 용량이 작아서, 최근에는 ( )이 XML을 대체해서 데이터 전송 등에 많이 사용한다.
  • 프로그래밍 문법이 아닌 단순히 데이터를 표시하는 표현 방법일 뿐이다.
  • ( ) 데이터는 이름과 값의 쌍으로 이루어진다.

 

: JSON

2. 내/외부 모듈 간 인터페이스 데이터 표준 확인

  • 인터페이스 데이터 표준이랑 내/외부 모듈 간 교환되는 데이터 사이의 형식과 표준을 정의하는 것
  • 기존 데이터 중 공통 영역을 추출하여 정의하는 경우와 인터페이스를 위해 다른 한 쪽의 데이터 형식을 변환하는 경우가 있다. 
  • JSON, DB, XML 등 다양한 표준으로 인터페이스 모듈을 표현할 수 있다. 
    • JSON(JavaScript Object Notation)
      • 데이터 통신을 이용한 인터페이스 구현 방법이다. 
      • 속성-값의 쌍(Attribute-Value Pairs)인 데이터 객체 전달을 위해 사람이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷
      • 비동기 처리에 쓰이는 AJAX(Asynchronous JavaScript and XML)에서 XML을 대체하는 주요 데이터 포맷

section02. 인터페이스 구현

* 기출 문제 - 2020년 2회, 2023년 1회 : AJAX

더보기

05. 웹 페이지 전체를 다시 로딩하지 않고도, 웹 페이지의 일부분만을 갱신할 수 있는 비동기 방식 처리 기술의 약어를 쓰시오.

: AJAX

2. 다음 공통으로 설명하는 빈칸에 알맞은 용어를 영문 약어로 쓰시오.

- (      )은 '비동기식 자바스크립트 XML'을 의미하는 용어로 클라이언트와 웹 서버 간에 XML 데이터를 내부적으로 통신하는 대화식 웹 애플리케이션의 제작을 위해 사용된다. 
- (      )는 클라이언트의 요청에 의해 웹 서버에서 로딩된 데이터를 웹 브라우저의 페이지에 보여주기 위해 웹 페이지 전체를 '새로고침'할 필요 없이 즉, 새로운 HTML 페이지로 이동할 필요 없이 현재 페이지에서 필요한 일부분만 로딩되도록 하는 웹 개발 기법이다. 
AJAX

1. 인터페이스 구현

  • 송수신 시스템 간의 데이터 교환 및 처리를 실현해 주는 작업
  • 인터페이스 개체를 사용하는 인터페이스 구현
    • 송신 시스템의 인터페이스 테이블
    • 수신 시스템의 인터페이스 테이블
  • 데이터 통신을 사용하는 인터페이스 구현
    • 인터페이스 객체 생성 구현
    • 전송 결과를 수신측에서 반환받도록 구현
      • 송신측에서 JSON으로 작성된 인터페이를 객체를 AJAX 기술을 이용하여 수신측에 송신한다. 
        • Ajax(Asynchronous JavaScript and XML)
          • 자바스크립트를 이용해서 비동기식으로 XML을 이용하여 서버와 통신하는 방식의 웹 애플리케이션 제작 기술을 의미
          • 비동기식이란 여러 가지 일이 동시적으로 발생한다는 뜻으로, 서버와 통신하는 동안 클라이언트는 다른 작업을 할 수 있다는 것을 의미한다. 
          • 최근에는 XML보다 JSON을 더 많이 사용한다. 
          • Ajax의 동작 방식
            • 요청 : 브라우저는 서버에 정보를 요청한다. 브라우저는 Ajax 요청을 담당하는 XMLHttpRequest라는 객체를 구현
            • 응답 : 서버는 응답으로 데이터(XML, JSON)를 전달한다. 브라우저는 콘텐츠를 처리하여 페이지의 해당 부분에 추가 
      • 수신측에서는 JSON 인터페이스 객체를 수신받고 이를 구문분석 후 처리한다. 
      • 수신측의 처리 결과값은 송신측에 True/False 값을 전달하여 인터페이스 성공 여부를 확인하고 전달한다. 

section03. 인터페이스 보안 구현


section04. 인터페이스 보안 기능 적용


Chapter02. 인터페이스 구현 검증하기


section01. 인터페이스 구현 검증 도구


section02. 인터페이스 검증과 테스트


section03. 인터페이스 오류 처리 및 보고서 작성

 


 

728x90
반응형