1. 형상 통제에 대해 간략히 설명하시오
형상 식별 - 형상 통제(base line) - 형상 감사 - 형상 기록
공유폴더방식
중앙집중방식 - CVS, SVN
원격통제방식- GIT
변경 관리 → 버전 관리(cvs, svv, git) → 형상 관리

정답: 소프트웨어 형상 변경 요청을 검토하고 승인하여 현재의 베이스라인에 반영될 수 있도록 통제
2. 다음은 EAI 구축 유형에 대한 설명이다. 1, 2에 해당하는 유형을 쓰시오
유형 | 설명 |
( 1 ) | 중간에 미들웨어를 두지 않고 각 애플리케이션 간 직접 연결 솔루션 구매 없이 통합, 상대적 저렴하게 통합 가능 변경, 재사용 어려움 |
( 2 ) | 단일 접점이 허브 시스템을 통해 데이터를 전송하는 중앙 집중적 방식 모든 데이터 전송 보장, 확장 및 유지 보수 용이 허브 장애 시 전체 영향 |
EAI: 기업 간, 혹은 애플리케이션 간 데이터 전달을 위한 인터페이스
Point to Point - 개발자 둘이 협의해서 데이터를 주고 받음, 개발자 마다 방식이 다를테니까 변경, 재사용 어려움
Hub and Spoke - 중간에 허브를 두고, 여러 어플리캐이션들이 허브를 통해 데이터를 주고 받음
Message bus - 버스에 데이터를 흘리면 필요한 애플리케이션이 가져다 씀
Hybrid - hub and spoke + message bus
SSL: https 형태, 데이터를 암호화 해서 서버로 전송
IPSec: 네트워크 계층에서 동작, AH, ESP
SHTTP: SSL 과 유사, 메시지 단위로 암호화해서 전송
TLS: 전송계층에서 동작
답: point to point, hub and spoke
3. UI(User Interface) 설계 원칙 중 직관성에 대해 간략히 서술하시오
정답: 누구나 쉽게 이해하고 사용할 수 있어야 한다. 사용자가 기능을 쉽게 파악할 수 있도록 해야한다.
직유학유 의미 복습

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

그냥 6개 7개 들어가게 맞춰서 흐름(숫자)을 쓰면 됩니다
정답:
6단계: 123456, 124567
7단계: 1234567, 1234561
코드 커버리지(Code Coverage)
구문 커버리지
- 코드 구조 내의 모든 구문에 대해 한 번 이상 수행하는 테스트 커버리지
조건 커버리지 .. 조건문 = 결정포인트
- 결정 포인트 내의 모든 개별 조건식에 대해 수행하는 테스트 커버리지, 결정포인트를 보지 않고 결정포인트 내의 개별 조건식을 봄
결정 커버리지
- 결정 포인트 내의 모든 분기문에 대해 수행하는 테스트 커버리지, 개별 조건식을 보지 않고, 결정 포인트에 대해서 확인 함
5. 소프트웨어 테스트 기법 중 소프트웨어 기능이 완전히 작동하는 것을 입증하는 테스트로, 동치분할/경계값 분석을 이용하여 테스트하는 기법을 쓰시오
블랙박스 테스트(ex.90 ~ 100)
동등 분할 기법
- 입력 자료에 초점을 맞춰 테스트 케이스를 만들어 검사하는 방법 (95)
경계값 분석
- 입력 조건의 경계값을 테스트 케이스로 선정하는 방법(89, 90, 91, 99, 100, 101)
원인-효과 그래프 검사
- 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음 효용성이 높은 테스트 케이스를 선정하여 검사하는 기법
오류 예측 검사
- 과거의 경험이나 테스터의 감각으로 테스트하는 기법
비교 검사
- 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 테스트하는 기법
정답: 블랙박스 테스트
오류 예측 검사, 비교 검사
6. <학생> 테이블에 '주소' 칼럼을 추가하는 SQL 문을 완성하는 빈칸 1~2에 알맞은 예약어를 쓰시오
( 1 ) TABLE 학생 ( 2 ) 주소 VARCHAR(20);
DDL: CREATE ALTER DROP TRUNCATE
DML: INSERT UPDATE DELETE
DCL: GRANT REVOKE, COMMIT ROLLBACK SAVEPOINT


정답: (1):ALTER (2):ADD
7. <성적> 테이블을 대상으로 아래 <요구사항>을 적용하여 결과를 출력하는 SQL문을 작성하시오.

<요구사항>
- <성적> 테이블에서 과목별 평균 점수가 90점 이상인 과목이름, 최소점수, 최대점수를 출력하시오
- WHERE 구문은 하지 않는다
- GROUP BY, HAVING을 이용한다
- 최소점수, 최대점수 별칭을 위해 AS 문을 이용한다
- 명령문의 최종 문자인 세미콜론(;)은 생략 가능하다
SELECT 문의 기본 구조
SELECT
FROM
WHERE ~ AND/OR
GROUP BY
HAVING
ORDER BY
GROUP BY를 사용했다면 SELECT 문에 GROUP BY 한 항목만 올라올 수 있다, 나머지 항목 못올라옴
WHERE 절에 집계함수 사용 불가
정답:
SELECT 과목이름, MIN(점수) AS 최소점수, MAX(점수) AS 최대점수
FROM 성적
GROUP BY 과목이름
HAVING AVG(점수) >= 90;
8. <학생> 테이블에서 이름이 '민수'인 학생 튜플을 삭제하는 SQL문을 작성하시오
<요구사항>
- 이름 속성의 데이터는 문자형이다. 문자형 데이터는 작은 따옴표로 표시하시오
- SQL 명령문은 대/소문자를 구분하지 않는다
- SQL 명령문의 종결 문자인 세미콜론(;)은 생략 가능하다
CRUD 예시
INSERT INTO 테이블명( 칼럼들 ) VALUES ( 1, '문자', 3);
UPDATE 테이블명 SET A=1, B= 'A' WHERE A = 3
DELETE FROM 테이블명 WHERE A=1;
정답:
DELETE FROM 학생
WHERE 이름='민수';
9. 데이터베이스 스키마(Schema)에 대해 간략히 서술하시오
외부 스키마: 사용자, 프로그램 입장에서 본 데이터베이스
개념 스키마: 데이터베이스의 전체적인 구조와 제약조건
내부 스키마: 저장장치 입장에서 본 데이터베이스
논리적 독립성: 개념 스키마가 바뀌어도 외부 스키마에 영향을 미치지 않는다
물리적 독립성: 내부 스키마가 바뀌어도 외부, 개념스키마에 영향을 미치지 않는다
정답: 데이터베이스의 전제적인 구조와 제약조건에 대한 명세를 기술하고 정의한 것
10. 다음에서 설명하는 관계 대수 연산의 기호를 쓰시오
릴레이션 A에서 릴레이션 B의 모든 조건을 만족하는 튜플을 프로젝션 해서 제외하는 연산자이다.
관계대수 연산자

SELECT : 렐레이션에서 조건을 만족하는 수평적 부분 집합(튜플)을 구하기 위한 연산을 말한다

PROJECT : 릴레이션에서 수직적 부분집합(속성의 값)을 구하는 연산으로 원하는 속성만 추출하기 위한 연산이다.

JOIN : 두 테이블로부터 조건에 맞는 관련된 튜플들을 하나의 튜플로 결합하여 하나의 테이블로 만드는 연산

DIVISION: A,B 두 테이블에 대해 'A DIVISION B'는 B테이블의 조건을 만족하는 튜플들을 테이블 A에서 추출하는 연산이다

정답: DIVISION
11. 다음 설명에 해당하는 라우팅 프로토콜을 쓰시오.
- 최단 경로 탐색에 다익스트라 알고리즘기반 방식 사용
- 최적 경로 선택을 위해 흡수, 대역폭, 지연시간 등을 고려
- 링크상태 변화시에만 라우팅 정보전송
정적 라우팅 프로토콜: 관리자가 직접 설정
동적 라우팅 프로토콜
- 내부 라우팅 프로토콜(IGP):
1. 거리벡터 알고리즘(RIP): 홉수(이동 수)가 짧은 것을 우선, 최대 15홉, 30초마다 한번씩 라우팅 테이블 갱신

2.링크상태 알고리즘(OSPF): 홉수의 제한 없음, 나의 링크 상태가 바뀌었을 때 내 주변 라우터에게 나의 상태 모두 전달
- 외부 라우팅 프로토콜(EGP): BGP (EGP는 BGP이다)
정답: OSPF
12. 인터넷 프로토콜의 비신뢰적인 특성을 보완하기 위한 프로토콜로 IP 패킷 전송 중 에러 발생 시 에러 발생 원인을 알려주거나 네트워크 상태를 진단해주는 기능을 제공하는 프로토콜을 무엇이라고 하는지 영문 약어로 쓰시오.
프로토콜의 3요소: (구타를 왜하니, 의그)
구문, 타이밍, 의미
OSI 7 참조모델
응용 계층: 프로그램
표현 계층: 압축, 암호화
세션 계층: 연결 설정
--------------------------------------------- 데이터 생성
전송 계층: 헤더 + 데이터 = 세그먼트, 양 종단 간의 신뢰성 있는 정보 전달 TCP(연결 체결) UDP(연결 미체결)
네트워크 계층: 헤더 + 세그먼트 = 패킷, 빠르게 보내기(비연결성, 비신뢰성), 라우터, IP(주소), ICMP(전송 실패시), ARP(MAC), RARP(IP)
데이터링크 계층: 헤더 + 패킷 = 프레임, 인접한 노드간의 신뢰성 있는 정보 전달, 스위치, 브리지
물리 계층 : 비트로 쏴줌, NIC, 허브, 리피터

정답: ICMP
13. 헝가리안 표기업에 대해 간략히 설명하시오
변수명 표기법(안나올듯..?)
카멜(낙타 등) 표기법 : 여러 단어 결합시, 첫 단어를 제외하고, 단어의 첫 글자를 대문자로 표기 ex.studentAge
파스칼 표기법: 모든 단어의 첫 글자를 대문자로 표기
스네이크 표기법: 모든 단어를 소문자로 표기하고, 단어 사이에 언더바를 사용
케밥 표기법: 모든 단어를 소문자로 표기하고, 단어 사이에 하이픈(-) 사용
정답: 프로그래밍 언어에서 변수 및 함수의 인자 이름 앞에 데이터 타입을 명시하는 코딩 규칙
14. 리팩토리(Refactoring)의 목적에 대해 간략히 설명하시오.
리팩토링 절차
동료 검토 → 워크 스루 → 인스펙션(공식 회의) → 리팩토링
정답: 기능의 변경 없이 코드의 구조를 재조정한다
15. 빈 칸 안에 공통으로 들어갈 가장 적합한 용어를 쓰시오
심리학자 톰 마릴은 컴퓨터가 메시지를 전달하고, 메시지가 제대로 도착했는지 확인하며, 도착하지 않았을 경우 메시지를 재전송하는 일련의 방법을 가리켜 '기술적 은어'라는 뜻으로 ( ) 이라 불렀다.
프로토콜 3요소 : 의미, 구문, 타이밍
정보보안 3요소: 기밀성, 무결성, 가용성
정답: 프로토콜
16. 다음은 C 언어로 작성된 프로그램이다. 이를 실행한 출력 결과를 쓰시오.
void main()
{
int i=0, c=0;
while(i<10) {
i++;
c *= i;
}
printf("%d", c);
}
정답: 0
17. 다음은 C 언어로 작성된 프로그램이다. 이를 실행한 출력 결과를 쓰시오.
int r1() {
return 4;
}
int r10() {
return (30 + r1()); // 34
}
int r100() {
return (200 + r10()); // 234
}
void main() {
printf("%d", r100()); // 234
}
정답 : 234
18. 다음은 JAVA 로 작성된 프로그램이다. 이를 실행한 출력 결과를 쓰시오.
public static void main(String[] args) {
int i = 0;
int sum = 0;
while (i < 10) {
i++;
if (i%2 == 1}
continue;
sum += i;
}
System.out.print(sum); // 20
}
정답: 30
19. 다음은 JAVA 로 작성된 프로그램이다. 이를 실행한 출력 결과를 쓰시오.
abstract class Vehicle {
String name;
public Vehicle (String val) {
this.name = val;
}
public String getName() {
return "Vehicle name: " + name;
}
}
class Car extends Vehicle {
private String name; // 우선 부모 클래스의 변수를 가져온 다음, 내 변수 추가
public Car(String val) {
name = super.name = val;
public String getName(String val) { // 부모 클래스와 매개변수의 수가 다름, 오버 로딩
return "Car name: " + val;
public String getName(byte val[]) { // 부모 클래스와 매개변수의 수가 다름, 오버 로딩
return "Car name: " + val;
}
}
}
public class Main {
public static void main(String[] args) {
Vehicle obj = new Car("Spark");
System.out.println(obj.getName()); // 매개 변수가 없으므로 부모 클래스의 메서드 호출
}
}
abstract : 추상 클래스 , 미완성 클래스
자식의 생성자에서 부모를 명시적으로 호출하고 있지 않으면, 부모가 가지고있는 default 생성자를 묵시적으로 호출하게 된다
정답: Vehicle name : Spark
20. C++에서 생성자(Constructor)에 대해 간략히 설명하시오
정답: 객체 생성 시 자동으로 호출되는 메서드로 멤버를 초기화하는 목적으로 주로 사용된다.
객체지향 특징
정보은닉
캡슐화: 정보은닉된 것들을 사용할 수 있게 해줌
상속: 부모로 부터 물려받음
다형성: 메서드 오버라이딩, 오버 로딩
추상화: 공통의 성질을 묶어둠
'정보처리기사' 카테고리의 다른 글
[정보처리기사] 2020년 2회 실기 기출문제 풀이 (0) | 2024.10.13 |
---|---|
[정보처리기사] 2020년 1회 실기 기출문제 풀이 (0) | 2024.10.11 |
[정보처리기사] C언어 특강 60강 이후 정리(printf 출력순서, ++ -- 연속, fork) (0) | 2024.10.10 |
[정보처리기사] C언어 특강 58~60강 정리(중복 재귀함수) (0) | 2024.10.10 |
[정보처리기사] C언어 특강 53~57강 정리(재귀함수) (0) | 2024.10.09 |