※ 모든 문제는 시험 응시자의 기억으로 복원 된 문제임을 알립니다. 따라서 문제의 지문과 답이 상이한 경우가 발생 할 수 있습니다. (서술형의 경우 정확하게 맞지 않을 수 있습니다.)
※ 또한, 모든 문제의 기본 풀이는 수제비2023 책을 기반으로 작성하였습니다. 오타가 있을 경우, 답이 틀렸을 경우 댓글 부탁드립니다.
※ 수제비 카페 바로가기 - https://cafe.naver.com/soojebi
1. 리팩토링의 목적에 대하여 서술하시오.
- 리팩토링의 목적은 소프트웨어를 보다 이해하기 쉽고, 수정하기 쉽도록 만드는 것이다.
- 결과의 변경없이 코드의 구조를 재조정 하는 것. 가독성을 높이고 유지보수를 쉽게 하기 위한 목적이 있다.
- 코드의 외부 행위는 바꾸지 않고, 내부 구조를 개선하여 소프트웨어를 보다 이해하기 쉽고, 수정하기 쉽도록 만드는 것이다.
애플리케이션 성능 개선 방안 - 리팩토링을 통한 성능개선
10-61
2. 다음은 C언어 소스 코드이다. 출력 결과를 쓰시오.
#include <stdio.h>
void main(){
int i=0, c=0;
while (i<10){
i++;
c*=i;
}
printf("%d",c);
}
- 0
- c는 0부터 시작해서 항상 곱하는 연산이 들어가기 때문에 0에는 항상 무엇을 곱하던 0이다.
3. 대표적인 내부 라우팅 프로토콜로 다익스트라 알고리즘을 이용한 대규모 네트워크에 적합한 링크 상태 라우팅 프로토콜로 불리는 라우팅 프로토콜은 무엇인가?
- OSPF (Open Shortest Path First)
- OSPF는 규모가 크고 복잡한 TCP/IP 네트워크에서 RIP의 단점을 개선하기 위해 자신을 기준으로 링크 상태(Link-State) 알고리즘을 적용하여 최단 경로를 찾는 라우팅 프로토콜이다.
- 다익스트라 알고리즘을 사용하고, 라우팅 매트릭 지정, AS분할 사용, 홉 카운트 무제한, 멀티캐스팅 지원 등의 특징이 있다.
- 내부 라우팅 프로토콜의 한 종류이다.
OSPF
11-62
4. 형상 통제를 설명하시오.
- 형상 항목의 버전 관리를 위해 변경여부와 변경활동을 통제하는 활동이다.
- 형상 통제는 형상관리의 절차 중 하나다.
- 형상 관리의 절차는 형상 식별, 형상 통제, 형상 감사, 형상 기록이 있다.
- 형상 통제는 형상 항목의 버전 관리를 위한 형상통제위원회를 운영한다.
- 변경요구 관리 , 변경제어, 형상 관리 등 통제를 지원한다.
- 베이스라인에 대한 관리 및 형상 통제 수행이 가능하다.
형상관리 - 형상 관리의 절차
8-6
5. 심리학자 톰 마릴은 컴퓨터가 메세지를 전달하고, 메세지가 제대로 도착했는지 확인하며, 도착하지 않았을 경우 메세지를 재전송하는 일련의 방법을 '기술적 은어'를 뜻하는 ( )이라는 용어로 정의했다. 괄호 ( ) 안에 들어갈 용어를 쓰시오.
- 프로토콜
- 프로토콜은 서로 다른 시스템이나 기기들 간의 데이터 교환을 원활히 하기 위한 표준화된 통신규약이다.
- 일반적으로 프로토콜이 가져야 할 기능으로는 데이터 처리 기능, 제어기능, 관리적 기능이 있다.
- 프로토콜의 기본 3요소에는 구문, 의미, 타이밍이 있다.
프로토콜
11-47
6. TCP/IP에서 오류가 발생하면 ( ) 메세지를 보내서 오류가 발생했음을 알린다. 괄호 ( )안에 들어갈 용어를 쓰시오.
- ICMP
- ICMP는 IP의 동작 과정에서의 전송 오류가 발생하는 경우에 오류 정보를 전송하는 목적으로 사용되는 프로토콜이다.
- 메시지 형식은 8바이트의 헤더와 가변 길이의 데이터 영역으로 분리된다.
- 네트워크 계층 프로토콜 중 하나로, 네트워크 계층의 프로토콜에는 IP, ARP, RARP, IGMP, ICMP, 라우팅 프로토콜 등이 있다.
네트워크 계층 - 네트워크 계층 프로토콜
11-49
7. 다음 아래 제어 흐름 그래프가 분기 커버리지를 만족하기 위한 테스팅 순서를 쓰시오.
- 1234567,124561/1234561/124567
- 분기 커버리지는 결정 커버리지라고도 한다.
- 각 분기의 결정 포인트 내의 전체 조건식이 적어도 한번은 참과 거짓의 결과를 수행해야 하기 때문에 첫번째 분기 문도 참, 거짓이 한번씩 와야하고, 두 번째 분기문도 참, 거짓이 한 번씩 와야 한다.
- 1234561 -> 첫번째 분기문과 두번째 분기문이 둘 다 참일 경우
- 124567 -> 첫번째 분기문과 두번째 분기문이 둘 다 거짓일 경우
- 1234567 -> 첫번째 분기문이 참이고, 두번째 분기문이 거짓일 경우
- 124561 -> 첫번째 분기문이 거짓이고, 두번째 분기문이 참일 경우
- 따라서 답은 1234567,124561 일 경우와 1234561,124567일 경우 두 가지 경우이다.
소프트웨어 테스트 유형 - 테스트 기법에 따른 분류 - 화이트 박스 테스트
10-6
8. 다음 조건을 만족하면서, 과목별 점수의 평균이 90이 상인 과목이름, 최소점수, 최대점수를 구하는 SQL문을 작성하시오.
- 대소문자를 구분하지 않는다.
- WHERE 구분을 사용하지 않는다.
- GROUP BY, HAVING구문을 반드시 사용한다.
- 세미콜론(;)은 생략 가능하다.
- 별칭(AS)을 사용해야 한다.
[성적]
과목코드 | 과목이름 | 학점 | 점수 |
1000 | 컴퓨터과학 | A+ | 95 |
2000 | 운영체제 | B+ | 85 |
1000 | 컴퓨터과학 | B+ | 85 |
2000 | 운영체제 | B+ | 80 |
[결과]
과목이름 | 최소점수 | 최대점수 |
컴퓨터과학 | 85 | 95 |
- SELECT 과목이름, MIN(점수) AS 최소점수, MAX(점수) AS 최대점수 FROM 성적 GROUP BY 과목이름 HAVING AVG(점수) >= 90;
- SELECT문의 순서는 셀프웨구해오 이다.
- 순서만 잘 생각해서 적으면 문제 없을것 같다.
- 또한, 문제 아래에 표기된 것 이외에 문제 지문에서 평균이 90 이상인 과목~ 이라고 나와있는 부분만 조심해서 풀 면 될 것 같다.
9. 학생 테이블에서 이름이 민수인 튜플을 삭제하는 SQL문을 작성하시오
[학생]
학번 | 이름 | 점수 | 과목이름 |
1000 | 김정미 | 90 | 알고리즘 |
2000 | 강은미 | 95 | 데이터베이스 |
3000 | 홍길동 | 90 | 전산수학 |
4000 | 민수 | 95 | 운영체제 |
- DELETE FORM 학생 WHERE 이름 = '민수';
- DELETE구문은 DELETE FROM WHERE 순으로 작성하고, 이름은 작은 따옴표로 묶어야 한다.
10. 릴레이션 A, B가 있을 때 릴레이션 B 조건에 맞는 것들만 릴레이션 A에서 튜플을 꺼내 프로젝션하는 관계 대수의 기호는 무엇인가?
- ÷ (디비전)
- 관계 대수는 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 정형 언어이다.
- 프로젝션 연산은 순수 관계 연산자로 종류는 다음과 같다.
셀렉트 (Select) |
σ | σ (조건)(R) | 릴레이션 R에서 조건을 만족하는 튜플 반환 |
프로젝트 (Project) |
π | π (속성리스트)(R) | 릴레이션 R에서 주어진 속성들의 값으로만 구성된 튜플 반환 |
조인 (Join) |
▷◁ | R▷◁S | 공통 속성을 이용해 R과 S의 튜플들을 연결해 만들어진 튜플 반환 |
디비전 (Division) |
÷ | R÷S | 릴레이션 S의 모든 튜플과 관련있는 R의 튜플 반환 |
관계대수 - 순수관계연산자
3-7
11. 다음 중 헝가리안 표기법(Hungarian Case)에 대해서 서술하시오.
- 변수의 접두어에 변수의 자료형을 표기하는 기법
- 식별자 표기 시 두어에 자료형을 붙이는 표기법
- 식별자 표기법은 다음과 같은 종류가 있다.
- 카멜 표기법 - 여러 단어로 이루어진 변수명은 두번째 단어의 첫 글자부터 대문자로 표시한다.
- 파스칼 표기법 - 여러단어가 이어지면 각 단어의 첫글자를 대문자로 표기한다.
- 스네이크 표기법 - 여러 단어가 이어지면 단어 사이에 언더바 _를 넣어서 표기한다.
식별자 표기법
6-7
12. 테스트의 종류 중, 동치분할 테스트, 경계값 분석 테스트 등의 종류가 있는 테스트 기법을 쓰시오.
- 블랙박스 테스트
- 블랙박스 테스트는 프로그램 외부 사용자의 요구사항 명세를 보면서 수행하는 테스트이다.
- 종류로는 동등분할 테스트, 경곗값 분석 테스트, 결정 테이블 테스트, 상태 전이 테스트, 유스케이스 테스트, 분류 트리 테스트, 페어와이즈 테스트, 원인-결과 그래프 테스트, 비교 테스트, 오류 추정 테스트가 있다.
- 블랙박스 테스트는 명세 테스트라고도 불린다.
테스트 기법에 따른 분류 - 블랙박스 테스트
10-8
13. 다음은 C언어 소스 코드이다. 출력 결과를 쓰시오.
#include <studio.h>
int r1(){
return 4;
}
int r10(){
return (30+r1());
}
int r100(){
return (200+r10());
}
int main(){
printf("%d\n", r100());
return 0;
}
- 234
- 메소드 안에 또 다른 메소드를 호출하는 구문이 들어간 코드이다.
- 메소드의 호출 순서로 보아 일단 메소드를 필요한 만큼 호출한 뒤 젤 마지막에 호출한 메소드부터 차례대로 값을 리턴하여 더하면 234의 결과가 나온다.
14. DB스키마에 대해서 서술하시오.
- 스키마는 데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적인 구조이다.
- 스키마는 외부/개념/내부 3계층으로 구성되어 있다.
- 외부 스키마 - 사용자나 개발자의 관점에서 필요로하는 데이터베이스의 논리적 구조. 사용자 뷰를 나타냄. 서브 스키마로 불림
- 개념 스키마 - 데이터베이스의 전체적인 논리 구조, 전체적인 뷰를 나타냄, 개체 간 관계, 제약조건, 접근권한, 무결성, 보안에 대해 정의
- 내부 스키마 - 물리적 저장장치의 관점에서 보는 데이터베이스 구조. 실제로 데이터베이스에 저장 될 레코드의 형식을 정의하고, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 표현
DDL - DDL 대상 - 스키마
7-7
15. 다음은 자바 코드이다. 출력 결과를 쓰시오.
abstract class Vehicle{
private String name;
abstract public String getName(String val);
public String getName(){
return "Vehicle name:" + name;
}
public void setName(String val){
name = val;
}
}
class Car extends Vehicle{
public Car(String val){
setName(val);
}
public String getName(String val){
return "Car name:" + val;
}
}
public class good{
public static void main(String[] args){
Vehicle obj = new Car("Spark");
System.out.print(obj.getName());
}
}
- vehicle name = Spark
- Vehicle obj = new Car("Spark")를 실행하는 데 Car라는 생성자를 실행하면서 매개변수로 "Spark"를 넘겨주게 된다.
- Car의 생성자를 보면 setName(val);이라는 명령을 만나게 되는데 val이 매개변수로 받은 Spark이고, setName은 Vehicle클래스에 있으므로 Vehicle클래스의 setName메서드에 spark를 전달한다.
- setName 함수에서 매개변수로 받은 "Spark"를 name이라는 변수에 저장한다.
- print의 getName을 실행하게 되는데 getName에 파라미터가 없으므로 부모 클래스의 getName()메서드를 실행하게 된다.
16. UI 설계 원칙 중 직관성에 대해서 쓰시오.
- 누구나 쉽게 이해하고, 누구나 쉽게 사용할 수 있어야 한다.
- 직관성은 누구나 쉽게 이해하고 쉽게 사용할 수 있어야 한다는 특성이다.
- 부특성으로 쉬운검색, 쉬운 사용성, 일관성이 있다.
- UI 설계원칙에는 직관성, 유효성, 학습성, 유연성이 있다.
UI 설계원칙
2-4
17. 다음은 자바 코드이다. 출력 결과를 쓰시오.
public class good {
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.println(sum);
}
}
- 30
- while 반복문을 조심해야 하는데 i는 while반복문의 반복조건을 검사 한 후 i가 증가하기 때문에 i의 범위는 0부터 10까지 이다. 이 중, if문에 의해 i가 홀수일 경우는 뛰어넘으니깐, 짝수만 다 더하면 30이다.
18. EAI 유형에는 메세지 버스(Message bus), 하이브리드(Hybrid), ( 1. ), ( 2. ) 4가지가 있다.
- 포인트 투 포인트 (Point to Point)
- 허브 앤 스포크 (Hub and Spoke
- EAI는 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션 간의 정보를 전달, 연계, 통합이 가능하도록 해주는 솔루션이다.
- EAI를 사용함으로써 각 비즈니스 간 통합 및 연계성을 증대시켜 효율성을 높여 줄 수 있으며, 각 시스템 간의 확장성을 높여 줄 수 있다.
- 외부 내부 모듈 연계방식으로는 EAI방식과 ESB 방식이 있다. 그 중 ESB는 서비스 중심의 통합을 지원하고,느슨한 결합 방식으로 지원한다.
인터페이스 설계 확인 - 외부, 내부 모듈 연계 방법
5-2
19. C++에서 생성자란 무엇인지 쓰시오.
- 생성자란, 객체 생성시 초기화를 담당하는 함수이다.
- 객체를 생성할 때 반드시 호출되고, 제일먼저 실행된다.
- new 연산자를 통해서 객체를 생성할때 반드시 호출되고 제일 먼저 실행되는 일종의 메소드이다.
- 클래스 명과 동일한 메서드명을 가지고, 반환값이 없다.
6-108
20. 학생 테이블에 주소 속성을 추가하는 SQL문을 작성하시오.
- ( 1. ) TABLE 학생 ( 2. ) 주소 VARCHAR(20);
- ALTER
- ADD
- ALTER TABLE은 테이블을 수정하는 명령어이다.
- 2번 칸에 들어갈 수 있는 구문으로는 ADD, MODIFY, DROP이 있다. 이때 DROP은 컬럼 삭제이고, DROP TABLE은 테이블 삭제니 햇갈리지 말자.
ALTER TABLE
7-12
틀린 답안 및 오타는 댓글 부탁 드립니다!
수정내역
10번 - 오타 수정(프로젝션 -> 디비전)
'Study > 정보처리기사' 카테고리의 다른 글
2021년 2회 정보처리기사 실기 기출문제 풀이 (1) | 2023.09.24 |
---|---|
2021년 1회 정보처리기사 실기 기출문제 풀이 (0) | 2023.09.24 |
2020년 4회 정보처리기사 실기 기출문제 풀이 (0) | 2023.09.23 |
2020년 2회 정보처리기사 실기 기출문제 풀이 (1) | 2023.09.21 |
2020년 1회 정보처리기사 실기 기출문제 풀이 (0) | 2023.09.20 |