1. 살충제 패러독스의 개념에 관해서 서술하시오.
[정답]
살충제 패러독스는 동일한 테스트 케이스에 의한 반복적 테스트는 새로운 버그를 찾지 못한다는 테스트 원리이다.
[해설] 소프트웨어 테스트 원리
원리 | 설명 |
테스팅은 결함이 존재함을 밝히는 것 |
- 결함이 존재함을 밝히는 활동 - 결함이 없다는 것을 증명할 수는 없음 - 결함을 줄이는 활동 |
완벽한 테스팅은 불가능 |
- 완벽하게 테스팅하려는 시도는 불필요한 시간과 자원 낭비 - 무한 경로(한 프로그램 내의 내부조건은 무수히 많을 수 있음), 무한 입력값(입력이 가질 수 있는 모든 값의 조합이 무수히 많음)으로 인한 테스트 어려움 |
개발 초기에 테스팅 시작 |
- 조기 테스트 설계 시 장점: 테스팅 결과를 단시간에 알 수 있고, 테스팅 기간 단축, 재작업을 줄여 개발 기간 단축 및 결함 예방 - SW 개발 초기 체계적인 분석 및 설계가 수행되지 못하면 그 결과가 프로젝트 후반에 영향을 미치게 되어 비용이 커진다는 요르돈의 법칙 적용(Snowball Effect, 눈덩이 법칙) |
결함집중 | - 적은 수의 모듈에서 대다수의 결함이 발견됨 - 소프트웨어 테스트에서 오류의 80%는 전체 모듈의 20% 내에서 발견 - 파레토 법칙(Pareto Principle)의 내용인 80대 20 법칙 적용 |
살충제 패러독스 | - 동일한 테스트 케이스에 의한 반복적 테스트는 새로운 버그를 찾지 못함 - 테스트 케이스의 정기적 리뷰와 개선 및 다른 시각에서의 접근이 필요 |
테스팅은 정황에 의존적 |
- 소프트웨어의 성격에 맞게 테스트 실시 - 정황과 비즈니스 도메인에 따라 테스트를 다르게 수행 |
오류-부재의 궤변 | - 요구사항을 충족시켜주지 못한다면, 결함이 없다고 해도 품질이 높다고 볼 수 있음 |
2. 데이터 마이닝의 개념에 관해서 서술하시오.
[정답]
데이터 마이닝은 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아내는 기술이다.
[해설]
데이터 마이닝은 대규모 데이터에서 의미 있는 패턴을 파악하거나 예측하여 의사결정에 활용하는 기법이다.
3. 프로토콜의 기본 3요소를 쓰시오.
[정답] 구문, 의미, 타이밍
[해설]
3요소 | 설명 |
구문 (Syntax) | 시스템 간의 정보 전송을 위한 데이터 형식, 코딩, 신호 레벨 등의 규정 |
의미 (Semantic) | 시스템 간의 정보 전송을 위한 제어 정보로 조정과 에러 처리를 위한 규정 |
타이밍 (Timing) | 시스템 간의 정보 전송을 위한 속도 조절과 순서 관리 규정 |
4. 다음이 설명하는 용어는 무엇인지 쓰시오.
W3C(World Wide Web Consortium)에서 개발되었고, 웹 브라우저 간 호환이 되지 않는 문제와 SGML(Standard Generalized Markup Language)의 복잡함을 해결하기 위해 개발된 다목적 마크업 언어이다.
[정답] XML (eXtensible Markup Language)
[해설]
- XML은 송수신시스템 간 데이터 연계의 편의성을 위해서 전송되는 데이터 구조를 동일한 형태로 정의한다.
- 인간과 기계가 모두 이해할 수 있는 텍스트 형태로 마크업 포캣을 정의하기 위한 메타언어이다.
- 사용자가 직접 문서의 태그를 정의할 수 있으며, 다른 사용자가 정의한 태그를 사용할 수 있다.
5. 다음이 설명하는 용어는 무엇인지 쓰시오.
속성-값으로 이루어진 데이터 오브젝트를 전달하기 위해 사용하는 개방형 표준 포맷이다. Ajax(Asynchronous Javascript And XML)에서 많이 사용되고 XML(eXtensible Markup Language)을 대체하는 주요 데이터 포맷이다. 언어 독립형 데이터 포맷으로 다양한 데이터 프로그래밍 언어에서 사용하고 있는 기술은 무엇인가?
[정답] JSON (JavaScript Object Notation)
[해설]
- JSON은 비동기 브라우저 및 서버 통신(AJAX)을 위해 '속성-값 쌍', '키-값 쌍'으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다.
- AJAX에서 많이 사용되고 XML을 대체하는 주요 데이터 포맷이다.
- 언어 독립형 데이터 포맷으로 다양한 데이터 프로그래밍 언어에서 사용된다.
- 사람이 읽고 쓰기에 용이하며, 기계가 분석하고 생성하기에 용이하다.
7. 스케줄링 방식에서 HRN(Highes Response ratio Next) 우선순위 계산식을 쓰시오.
[정답] (대기 시간 + 서비스 시간) / 서비스 시간
[해설]
HRN은 대기 중인 프로세스 중 우선순위가 가장 높은 것을 선택하는 비선점형 스케줄링 알고리즘이다.
비선점형 스케줄링 알고리즘의 유형은 아래와 같다.
알고리즘 유형 | 동작 방식 | 특징 |
우선순위 (Priority) |
- 프로세스별로 우선순위가 주어지고, 우선순위에 따라 CPU를 할당함 - 동일 순위는 FCFS |
- 주요/긴급 프로세스에 대한 우선 처리 - 설정, 자원 상황 ㄷ으에 따른 우선순위 선정 |
기한부 (Deadline) |
- 작업들이 명시된 시간이나 기한 내에 완료되도록 계획 | - 요청에 명시된 시간 내 처리를 보장 |
FCFS (First Come First Service) |
- 프로세스가 대기 큐에 도착한 순서에 따라 CPU 할당 - FIFO 알고리즘이라고도 함 |
- 도착한 순서대로 처리 |
SJF (Shortest Job First) |
- 프로세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시까지 자원 점유 - 준비 큐 작업 중 가장 짧은 작업부터 수행, 평균 대기 시간 최소 - CPU 요구 시간이 긴 작업과 짧은 작업 간의 불평등이 심하여, CPU 요구 시간이 긴 프로세스는 기아 현상 발생 |
- 기아 현상 발생 가능성 |
HRN (Highest Response Ratio Next) |
- 대기 중인 프로세스 중 현재 응답률이 가장 높은 것을 선택 - SJF의 약점인 기아 현상을 보완한 기법. 긴 작업과 짧은 작업 간의 불평등 완화 - HRN = (대기 시간 + 서비스 시간) / 서비스 시간 |
- 기아 현상 최소화 기법 |
8. 트랜잭션의 특성 중 일관성, 지속성 외 2개의 특성을 쓰시오.
[정답] 원자성, 격리성(or 고립성)
[해설] 트랜잭션의 특성 4가지 ACID
특성 | 설명 |
원자성 Automicity |
- 분해가 불가능한 최소한의 단위 - 연산 전체가 성공 또는 실패 All or nothing - 하나라도 실패할 경우 전체가 취소되어야 하는 특성 |
일관성 Consistency |
- 트랜잭션이 실행 성공 후 항상 일관된 데이터베이스 상태를 보존해야 하는 특성 |
격리성 (or 고립성) Isolation |
- 트랜잭션 실행 중 생성하는 연산의 중간 결과를 다른 트랜잭션이 접근 불가한 특성 |
영속성 Durability |
- 성공이 완료된 트랜잭션의 결과는 영속적으로 데이터베이스에 저장하는 특성 |
9. 공격자가 패킷의 출발지 주소나 포트를 임의로 변경해 출발지와 목적지 주소를 동일하게 함으로써 공격 대상 컴퓨터의 실행속도를 느리게 하거나 동작을 마비시켜 서비스 거부 상태에 빠지도록 하는 공격 방법은 무엇인가?
[정답] 랜드 어택 Land Attack
[해설]
랜드 어택은 출발지(Source) IP와 목적지(Destination) IP를 같은 패킷 주소로 만들어 보냄으로써 수신자가 자기 자신에게 응답을 보내게 하여 시스템의 가용성을 침해하는 공격이다.
10. RFC 1321로 지정되어 있으며, 주로 프로그램이나 파일이 원본 그대로인지를 확인하는 무결성 검사 등에 사용된다. 1991년 로널드 라이베스트가 예전에 쓰이던 MD4를 대체하기 위해 고안된 128비트 암호화 해시 함수는 무엇인가?
[정답] MD5
[해설]
- MD5는 RFC 1321로 지정되어 있으며, 로널드 라이베스트가 예전에 쓰이던 MD4를 대체하기 위해 고안한 128비트 해시 암호화(일방향 암호화) 알고리즘이다.
- 해시 암호화 알고리즘의 종류는 다음과 같다.
종류 | 설명 |
MD5 (Message-Digest algorithm 5) |
- 1991년 R.rivest가 MD4를 개선한 암호화 알고리즘으로 프로그램이나 파일의 무결성 검사에 사용 - 각각의 512bit짜리 입력 메시지 블록에 대해 차례로 동작하여 128bit의 해시값을 생성하는 해시 알고리즘 |
SHA-1 (Secure Hash Algorithm) |
- 1993년 NSA에서 미 정부 표준으로 지정되었고, DSA(Digital Signature Algorithm)에서 사용 - 160bit의 해시값을 생성하는 해시 알고리즘 |
SHA-256/384/512 (Secure Hash Algorithm) |
- SHA(Secure Hash Algorithm) 알고리즘의 한 종류로서 256bit의 해시값을 생성하는 해시 함수 - AES(Advanced Encryption Standard, 미연방 표준 알고리즘)의 키 길이인 128, 192, 256bit에 대응하도록 출력 길이를 늘인 해시 알고리즘 |
HAS-160 | - 국내 표준 서명 알고리즘 KCDSA를 위하여 개발된 해시 함수 - MD5와 SHA1의 장점을 취하여 개발된 해시 알고리즘 |
15. 다음이 설명하는 제품 패키지 릴리스 노트의 작성 항목은 무엇인가?
문서 이름(릴리스 노트 이름), 제품 이름, 버전 번호, 릴리스 날짜, 참고 날짜, 노트 버전 등의 정보
[정답] 헤더
[해설]
- 릴리즈 노트의 헤더는 문서 이름(릴리스 노트 이름), 제품 이름, 버전 번호, 릴리즈 날짜, 참고 날짜, 노트 버전 등의 정보를 포함한다.
- 릴리즈 노트의 주요 작성 항목은 다음과 같다.
작성 항목 | 설명 |
헤더 | 문서 이름(릴리스 노트 이름), 제품 이름, 버전 정보, 릴리즈 날짜, 참고 날짜, 노트 버전 등 |
개요 | 제품 및 변경에 대한 간략한 전반적 개요 |
목적 | 릴리스 버전의 새로운 기능목록과 릴리스 노트의 목적에 대한 개요, 버그 수정 및 새로운 기능 기술 |
이슈 요약 | 버그의 간단한 설명 또는 릴리즈 추가 항목 요약 |
재현 항목 | 버그 발견에 따른 재현 단계 기술 |
수정, 개선 내용 | 수정 및 개선의 간단한 설명 기술 |
사용자 영향도 | 버전 변경에 따른 최종 사용자 기준의 기능 및 응용 프로그램상의 영향도 기술 |
소프트웨어 지원 영향도 | 버전 변경에 따른 소프트웨어의 지원 프로세스 및 영향도 기술 |
노트 | 소프트웨어 및 하드웨어 설치 항목, 제품, 문서를 포함한 업그레이드 항목 메모 |
면책 조항 | 회사 및 표준 제품과 관련된 메시지, 프리웨어 및 불법 복제 방지, 중복 등 참조에 대한 고지 사항 |
연락 정보 | 사용자 지원 및 문의에 관련한 연락처 정보 |
17. 비정규화의 개념을 쓰시오.
[정답]
비정규화는 정규화된 엔티티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터모델링 기법이다.
[해설]
- 비정규화는 반정규화, 역정규화라고도 불린다.
- 비정규화의 주요 기법은 다음과 같다.
수행 방법 | 설명 |
테이블 병합 | 1:1 관계, 1:M 관계를 통합하여 조인 횟수를 줄여 성능을 향상 |
테이블 분할 | 테이블을 수직 또는 수평으로 분할하는 것. 파티셔닝이라고 함 |
중복 테이블 추가 | 대량의 데이터들에 대한 집계함수(GROUP BY, SUM 등)를 사용하여 실시간 통계 정보를 계산하는 경우에 효과적인 수행을 위해 별도의 통계 테이블을 두거나 중복 테이블을 추가 |
컬럼 중복화 | 조인 성능 향상을 위한 중복 허용 |
중복 관계 추가 | 데이터를 처리하기 위한 여러 경로를 거쳐 조인이 가능하지만, 이때 발생할 수 있는 성능 저하를 예방하기 위해 추가적 관계를 맺는 방법 |
18. OSI 계층 중 비트를 전송하는 계층은 무엇인가?
[정답] 물리 계층
[해설]
- 물리 계층은 OSI 7계층 중 1계층으로, 0과 1의 비트 정보를 회선에 보내기 위한 전기적 신호 변환으로서 전송단위는 비트(Bit)이다.
- OSI 7계층은 국제 표준화 기구인 ISO에서 개발한 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 개방형 시스템 상호 연결 모델이다.
- 아파서 티내다, 피
계층 이름 | 설명 | 프로토콜 | 전송단위 | 장비 |
응용 계층 Application Layer |
사용자와 네트워크 간 응용서비스 연결, 데이터 생성 | - HTTP - FTP |
데이터 Data |
호스트 PC 등 |
표현 계층 Presentation Layer |
데이터 형식 설정, 부호교환, 암호화 및 복호화 | - JPEG - MPEG |
||
세션 계층 Session Layer |
- 송수신 간의 논리적인 연결 - 연결 접속, 동기 제어 |
- RPC - NetBIOS |
||
전송 계층 Translate Layer |
- 송수신 프로세스 간의 연결 - 신뢰성 있는 통신 보장 - 데이터 분할, 재조립, 흐름 제어, 오류 제어, 혼잡 제어 |
- TCP - UDP |
세그먼트 | L4 스위치 |
네트워크 계층 Network Layer |
- 단말기 간 데이터 전송을 위한 최적화된 경로 제공 | - IP - ICMP |
패킷 | 라우터 |
데이터링크 계층 Data Link Layer |
- 인접 시스템 간 데이터 전송, 전송 오류 제어 - 동기화, 오류 제어, 흐름 제어, 회선 제어 |
- HDLC - PPP |
프레임 | 브리지, 스위치 |
물리 계층 Physical Layer |
0과 1의 비트 정보를 회선에 보내기 위한 전기적 신호 변환 | RS-232C | 비트 | 허브, 리피터 |
19. 애플리케이션의 성능을 측정하기 위한 지표는 무엇인가?
지표 | 설명 |
( ① ) | - 애플리케이션이 주어진 시간에 처리할 수 있는 트랜잭션의 수 - 웹 애플리케이션의 경우 시간당 페이지 수로 표현 |
( ② ) | - 사용자 입력이 끝난 후, 애플리케이션의 응답 출력이 개시될 때까지의 시간 - 애플리케이션의 경우 메뉴 클릭 시 해당 메튜가 나타나기까지 걸리는 시간 |
( ③ ) | - 애플리케이션에 사용자가 요구를 입력한 시점부터 트랜잭션 처리 후 그 결과의 출력이 완료될 때까지 걸리는 시간 |
자원 사용률 |
- 애플리케이션이 트랜잭션을 처리하는 동안 사용하는 CPU 사용량, 메모리 사용량, 네트워크 사용량 |
[정답]
① 처리량 Throughput
② 응답 시간 Response Time
③ 경과 시간 Turnaround Time
[해설] 애플리케이션 성능 측정 지표
- 처리량
- 애플리케이션이 주어진 시간에 처리할 수 있는 트랜잭션의 수
- 웹 애플리케이션의 경우 시간당 페이지 수로 표현
- 응답 시간
- 사용자 입력이 끝난 후, 애플리케이션의 응답 출력이 개시될 때까지의 시간
- 애플리케이션의 경우 메뉴 클릭 시 해당 메뉴가 나타나기까지 걸리는 시간
- 경과 시간
- 애플리케이션에 사용자가 요구를 입력한 시점부터 트랜잭션을 처리 후 그 결과의 출력이 완료할 때까지 걸리는 시간
- 자원 사용률 Resource Usage
- 애플리케이션이 트랜잭션을 처리하는 동안 사용하는 CPU 사용량, 메모리 사용량, 네트워크 사용량
20. 다음은 모듈의 관계를 나타낸 다이어그램이다. fan-in 개수가 2이상인 모듈 명칭을 쓰시오.
[정답] F, H
[해설]
- 모듈에서 화살표가 나가는 경우 팬아웃이고, 모듈에서 화살표가 들어오는 경우 팬인이라고 한다.
- 팬인과 팬아웃의 개념 및 계산방법은 다음과 같다.
구분 | 팬인 | 팬아웃 |
개념 | 어떤 모듈을 제어(호출)하는 모듈의 수 | 어떤 모듈에 의해 제어(호출)되는 모듈의 수 |
모듈 숫자 계산 | 모듈 자신을 기준으로 모듈에 들어오면 팬인 | 모듀 자신을 기준으로 모듈에서 나가면 팬아웃 |
고려사항 | - 팬인이 높으면 재사용 측면에서 설계가 잘 되었지만, 단일 장애 점 발생 가능 - 팬인이 높으면 관리 비용 및 테스트 비용 증가 |
- 팬아웃이 높을 경우는 불필요한 모듈 호출 여부 검토 필요 - 팬아웃이 높을 경우는 단순화 여부 검토 필요 |
모듈명 | Fan-In 수 | Fan-Out 수 |
A | 0 | 3 |
B | 1 | 2 |
C | 1 | 2 |
D | 1 | 1 |
E | 1 | 1 |
F | 2 | 1 |
G | 1 | 1 |
H | 2 | 0 |
I | 1 | 0 |