본문 바로가기

자격증 공부/정보처리기사 실기

[흥달쌤] 기출해설특강) 생명주기 모형, 웹서비스 3요소, UI 설계 원칙, 애플리케이션 테스트 유형 분류(블랙박스 테스트)

[2020년 2회 영상]

 

01. 일정한 주기를 가지고 계속 검토해 나가며 필요할 때마다 요구사항을 더하고 수정하여

      커다랗게 살을 붙이면서 개발하는 프로세스 모델 방식이다. 미리 정해진 몇 개의 단계에

      따라 엄격한 순서대로 이루어지는 일직선의 과정인 폭포수 프로세스와는 비교가 많이 되는

      반대의 개념이다. 이 소프트웨어 개발 방법론을 쓰시오.

 

→ 애자일 || 애자일 방법론

 

 

※ 생명주기 모형의 종류

     • 폭포수 모형(Waterfall Model) : 선형 순차 모델

        - 계획 → 요구사항 분석 → 설계 → 구현 → 테스트 → 유지보수

     • 프로토타입 모형(Prototype Model)

        - 실제 개발될 시스템의 견본(Prototype)을 미리 만들어 최종 결과물을 예측하는 모형

     • 나선형 모형(Spiral Model)

        - 계획 수립 → 위험분석 → 공학적 개발 → 고객 평가 ★★(순서 외울 것)

     • 애자일(Agile) 방법론

        - XP(eXtremeProgramming)

          ‣ 의사소통, 단순성, 피드백, 용기, 존중 ★★

          ‣ 고객과 함께 2주 정도의 반복 개발을 하고, 테스트와 우선 개발이 특징

        - SCRUM

          ‣ 프로젝트를 30일 마다 동작 가능한 제품을 제공하는 스프린트로 분리

          ‣ 매일 15분 정도 회의 진행

        - 특징 주도 개발(FDD)

          ‣ 2주 정도의 반복 개발 실시

        - 크리스털(Crystal)


 

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

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

 

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


 

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

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

 

→ SOAP

 

 

※ 웹 서비스 3요소

1. UDDI (Universal Description, Discovery and Integration)

    • 웹 서비스를 등록하고 검색할 수 있는 디렉토리 서비스

       ‣ 어떤 서비스가 어디에 있는지 찾는 역할

    • 키워드 : 서비스 등록 / 검색

2. WSDL (Web Services Description Language)

    • 웹 서비스의 구조와 사용 방법을 XML로 정의한 문서

       ‣ 어떤 기능 제공하는지

       ‣ 요청/응답 형식

       ‣ 접근 주소(URL)

    • 키워드 : 서비스 설명

3. SOAP (Simple Object Access Protocol)

    • XML 기반의 메시지 교환 프로토콜(실제로 데이터를 주고받는 통신 방식)

       ‣ HTTP 기반 전송

       ‣ XML 사용

    • 키워드 : 서비스 통신

▶ 전체 관계 : UDDI(검색) → WSDL(설명) → SOAP(통신) ★★★★★(순서 외워)


 

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

• (          )는 소프트웨어의 변경사항을 체계적으로 추적하고 통제하는 것으로, (          )는 일반적인 단순 버전관리 기반의
  소프트웨어 운용을 좀 더 포괄적인 학술 분야의 형태로 넓히는 근간을 이야기한다.
(          )란 소프트웨어 소스 코드 뿐 아니라 개발 환경, 빌드 구조 등 전반적인 내역에 대한 관리 체계를 정의하고 있다.
이를 지원하는 도구로 Git, SVN, CVS 등이 있다.

 

→ 형상관리, Software Configuration Management

 

 

※ 형상관리 절차

     • 형상 식별 → 형상 통제 → 형상 감사 → 형상 기록 ★★★

 

 

※ 버전 관리 도구 분류

     • 공유 폴더 방식

        ‣ SCCS, RCS, PVCS

     • 클라이언트/서버 방식

        ‣ CVS, SVN, Clear Case

     • 분산 저장소 방식

        ‣ Git, GNU arch, Bazaar, Bitkeeper


 

05. 웹 페이지 전체를 다시 로딩하지 않고도, 웹 페이지의 일부분만을 갱신할 수 있는

      비동기 방식 처리 기술의 약어를 쓰시오.

 

→ AJAX


 

★★★★★

06. 다음은 UI의 설계 원칙 4가지이다. 빈 칸에 알맞은 용어를 쓰시오.

설계 원칙 설명
직관성 누구나 쉽게 이해하고 사용할 수 있어야 한다.
(         ) 사용자의 목적을 정확하게 달성하여야 한다.
학습성 누구나 쉽게 배우고 익힐 수 있어야 한다.
유연성 사용자의 요구사항을 최대한 수용하며, 오류를 최소화하여야 한다.

 

→ 유효성

 

 

※ UI 설계 원칙

     • 직관성

        ‣ 화면의 버튼, 항목, 입력란 등 누구나 쉽게 이해하고 사용할 수 있도록 함

     • 유효성

        ‣ 사용자의 목적을 정확히 달성할 수 있도록 유용하고 효과적이어야 함

     • 학습성

        ‣ 사용자가 쉽게 배우고 익힐 수 있어야 함

     • 유연성

        ‣ 사용자의 요구를 최대한 수용하면서 오류를 최소화해야 함


 

07. 프로그램을 실행 시키지 않고, 소스코드에 대한 코딩 표준, 코딩 스타일, 복잡도, 보안 취약점,

      잠재적인 결함을 찾는 테스트 활동이 무엇인지 쓰시오.

 

→ 정적 분석 || 정적 테스트

 

 

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

     • 프로그램 실행 여부

        ‣ 정적 테스트 : 프로그램을 실행하지 않고 코드/문서 등을 검토

        ‣ 동적 테스트 : 프로그램을 실행하면서 동작을 확인

     • 테스트 기법

        ‣ 화이트박스 테스트 : 코드 내부 로직을 기준으로 테스트

        ‣ 블랙박스 테스트 : 입력과 출력만 보고 기능을 테스트

     • 테스트에 대한 시각

        ‣ 검증 테스트 : 개발 산출물이 명세대로 만들어졌는지 확인(개발자가 검증)

        ‣ 확인 테스트 : 결과물이 사용자 요구를 충족하는지 확인(사용자가 검증)

     • 테스트 목적

        ‣ 회복 테스트 (Recovery Test)

           - (일부러)장애 발생 후 시스템이 정상 상태로 복구되는지 테스트 → 장애 대응 능력

        ‣ 안전 테스트 (Security Test)

           - 시스템이 외부 공격으로부터 안전한지 테스트(보안)  인증, 권한, 취약점

        ‣ 강도 테스트 (Stress Test)

           - 시스템에 과도한 부하를 줘서 한계 상황 테스트 최대 처리 한계

        ‣ 성능 테스트 (Performance Test)

           - 응답시간, 처리량 등 성능 지표를 측정하는 테스트  속도, 처리량

        ‣ 구조 테스트 (Structure Test)

           - 시스템의 내부 구조 및 로직을 기반으로 테스트  화이트박스 테스트와 유사

        ‣ 회귀 테스트 (Regression Test)

           - 변경 후 기존 기능이 정상 동작하는지 재검증(수정 후, 다시 돌려봤을 때 오류가 없는지 여부 확인)

             → 수정 영향 확인

        ‣ 병행 테스트 (Parallel Test)

           - 기존 시스템과 신규 시스템을 동시에 실행하여 결과 비교  시스템 전환 검증

     • 테스트 기반

        ‣ 명세 기반 테스트 (Specification-based Test) - 시간 ↑

           - 요구사항 명세서(SRS)를 기준으로 기능이 맞는지 테스트

                사용자 요구 중심/블랙박스 테스트와 연결

        ‣ 구조 기반 테스트 (Structure-based Test)  - 시간 ↑

           - 코드 내부 구조(로직, 경로)를 기준으로 테스트

               개발자 관점/화이트박스 테스트와 연결

        ‣ 경험 기반 테스트 (Experience-based Test) - QA

           - 테스터의 경험과 직관을 기반으로 테스트 수행

               명세서 없이도 가능/오류 추정(Error Guessing) 포함

 

 

★★★

※ 블랙박스 테스트 종류

1. 동등 분할 테스트 (Equivalence Partitioning)

     • 입력 데이터를 유효/무효 그룹으로 나누고 대표값만 테스트 → 테스트 케이스 수 감소

2. 경계값 분석 (Boundary Value Analysis)

     • 오류가 많이 발생하는 최솟값, 최댓값 근처를 집중 테스트

3. 결정 테이블 테스트 (Decision Table)

     • 여러 조건과 결과를 표 형태로 만들어 모든 경우 검증 → 복잡한 조건 처리에 적합

4. 상태 전이 테스트 (State Transition)

     • 시스템의 상태 변화 흐름을 기반으로 테스트 → 상태 변화와 이벤트 중심

5. 원인-결과 그래프 (Cause-Effect Graph)

     • 입력 조건과 결과 간 관계를 논리 그래프로 표현 후 테스트 → 논리 조합 검증


 

08. 아래 보기의 <학생> 테이블을 대상으로 <요구사항>을 적용하여 출력하는 SQL문을 작성하시오.

<요구사항>
1. 3학년이거나 4학년 학생의 학번과 이름을 검색하시오.
2. 단, 조건절 작성 시 in 예약어를 사용하여 작성하시오.

 

<학생> 테이블

학번 이름 학년
181101 KKK 1
171201 HHH 2
161107 YYY 3
151403 QQQ 4

 

→ SELECT 학번, 이름 FROM 학생

     WHERE 학년 IN ( 3, 4 );


 

★★★

09. 다음 주어진 <student> 테이블의 name 속성을 오름차순하여 idx_name를 인덱스명으로

      하는 인덱스를 생성하는 SQL 명령문을 작성하시오.

 

→ CREATE INDEX idx_name

     ON student (name ASC);


 

10. 보안의 취약점 중 하나인 SQL Injection(SQL 인젝션)에 대해 간략히 서술하시오.

 

→ 웹 프로그램에 SQL 구문을 삽입하여, 서버의 데이터베이스를 공격할 수 있는 공격방식