※ 모든 문제는 시험 응시자의 기억으로 복원 된 문제임을 알립니다. 따라서 문제의 지문과 답이 상이한 경우가 발생 할 수 있습니다. (서술형의 경우 정확하게 맞지 않을 수 있습니다.)
※ 또한, 모든 문제의 기본 풀이는 수제비2023 책을 기반으로 작성하였습니다. 오타가 있을 경우, 답이 틀렸을 경우 댓글 부탁드립니다.
※ 수제비 카페 바로가기 - https://cafe.naver.com/soojebi
1. 다음은 관계 데이터 모델에 대한 설명이다. 괄호안에 들어가는 용어를 작성하시오.
- ( )은 /는 관계 데이터의 연산을 표현하는 방법으로, 원하는 정보를 정의할 때는 계산 수식을 사용한다. 수학의 predicate calculus에 기반을 두고 있으며, 관계 데이터 모델의 제안자인 codd가 수학에 가까운 기반을 두고 특별히 관계 데이터베이스를 위해 제안하여 탄생하였다.
- ( ) /은/는 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 지니며, 튜블 ( )와/과 도메인 ( ) 이/가 있다.
- 관계해석
- 관계해석은 튜플 관계해석과 도메인 관계 해석을 하는 비절차적 언어이다.
- 관계해석의 특징은 프레디킷 해석(Predicate Calculus)에 기반한 언어이며 비절차적 언어(원하는 정보가 무엇이라는 것만 선언)이다.
- 관계해석은 Codd 박사에 의하여 제시되었으며 튜플 관계해석과 도메인 관계 해석을 하는 비절차적 언어이다.
- 관계 대수는 절차적 언어, 관계 해석은 비절차적 언어이다.
관계데이터모델 - 관계해석
3-8
2. 다음은 대칭 키 알고리즘에 대한 설명이다. 해당 설명에 맞는 용어를 작성하시오.
- Xuejia Lai와 James Messey 가 만든 알고리즘으로 PES(Proposed Encryption Standard)에서 IPES(Improved PES)로 변경되었다가, 1991년에 제작된 블록 암호 알고리즘으로 현재 국제 데이터 암호화 알고리즘으로 사용되고 있다. 64비트 블록을 128비트의 key를 이용하여 8개의 라운드로 구성되어 있다.
- 미국의 NSA에서 개발한 Clipper 칩에 내장되는 블록 알고리즘이다. 전화기와 같은 음성을 암호화 하는데 주로 사용되며 64비트 입출력에 80비트의 키 총 32라운드를 가진다.
- IDEA
- Skipjack
- IDEA는 스위스에서 1990년 Xuejia Lai와 James Messey가 만든 PES(Proposed Encryption Standard), IPES(Improved Proposed Encryption Standard)를 개량하여, 1991년에 제작된 블록 알고리즘이다. 128bit의 키를 사용하여 64bit의 평문을 8라운드에 거쳐 64bit의 암호문을 만든다.
- Skipjack은 미 국가안보국(NSA)에서 개발한 Clipper 칩에 내장된 블록 알고리즘으로, 소프트웨어로 구현되는 것을 막고자 Fortezza Card에 칩 형태로 구현된다. 전화기와 같이 음성을 암호화하는데 주로 사용되고 64bit의 입 출력, 80bit의 키, 32라운드를 가진다.
- 대칭키 암호화 알고리즘의 한 종류로, 대칭키 암호화 알고리즘에는 DES, 3DES, SEED, AES, ARIA, IDEA, LFSR, Skipjack 등이 있다.
DES
(Data Encryption Standard)1975년 IBM에서 개발하고 미국의 연방 표준국(NIST)에서 발표한 대칭 키 기반의 블록 암호화 알고리즘
블록 크기는 64비트이고, 키 길이는 56비트인 페이스텔 구조이다.SEED 1999년 국내 한국 인터넷 진흥원(KISA)이 개발한 블록 암호화 알고리즘
128비트 비밀키로 부터 생성된 16개의 64비트 라운드 키를 사용하여 총 16회의 라운드를 거쳐 128비트의 평문블록을 128비트의 암호문 블록으로 암호화 하여 출력하는 방식AES
(Advanced Encryption Standard)2001년 미국 표준 기술 연구소(NIST)에서 발표한 블록 암호화 알고리즘
DES의 개인 키에 대한 전사적 공격이 가능해지고, 3DES의 성능 문제를 극복하기 위해 개발하였다.
블록 크기는 128비트이며, 키 길이에 따라 128bit, 192bit, 256bit로 분류된다.ARIA
(Academy, Research Institute Agency)2004년 국가정보원과 산학연구협회가 개발한 블록 암호화 알고리즘
ARIA는 학계, 연구기관, 정부의 영문 앞글자로 구성되었다.
블록 크기는 128비트이며 키 길이에따라 128bit, 192bit, 256bit로 분류된다.IDEA
(International Data Encryption Algorithm)DES를 대체하기 위해 스위스 연방 기술 기관에서 개발한 블록 암호화 알고리즘
128비트의 키를 사용해 64비트의 평문을 8라운드에 거쳐 64비트의 암호문을 만든다.LFSR
(Linear Feedback Shift Register)시프트 레지스터의 일종으로, 레지스터에 입력되는 값이 이전 상태 값들의 선형 함수로 계산되는 구조로 되어있는 스트림 암호화 알고리즘
LFSR에서 사용되는 선형함수는 주로 배타적 논리합(XOR)이고, LFSR의 초기 비트 값은 시드(Seed)라고 한다.Skipjack 미 국가안보국(NSA)에서 개발한 Clipper칩에 내장된 블록 알고리즘
대칭키 암호화 알고리즘
9-23
3. 다음 복수의 행을 출력하는 SQL문을 사용하여 제품 테이블에서 H라는 제조사의 모든 제품의 단가보다 비싼 단가의 상품명, 단가, 제조사를 출력하는 SQL구문이다. 빈칸( ) 에 들어갈 내용은?
[제품테이블]
- SELECT 제조사, 제품명, 단가 FROM 제품 WHERE 단가 > ( ) (SELECT 단가 FROM 제품 WHERE 제조사='H')
- ALL
- 다중 행 연산자는 IN, ANY, SOME, ALL, EXISTS를 사용핟ㄴ다.
- 다중 행 비교 연산자는 단일 행 비교 연산자(<,>,-,<>)와 결합하여 사용할 수 있다.
- 서브쿼리로 도출된 모든 값이 조건을 만족해야 하므로 ALL연산자가 필요하다
4. 다음 SQL 결과에 알맞는 답을 작성하시오.
- SELECT count(col2) FROM TABLE WHERE col1 in(2,3) or col2 in(3,5);
- 4
- COUNT연산은 Null은 세지 않는다!
5. 다음은 네트워크에 관련한 내용이다. 괄호안에 들어갈 알맞는 답을 작성하시오.
- ( )은/는 인터넷을 통해 디바이스 간에 사설 네트워크 연결을 생성하며, 퍼블릭 네트워크를 통해 데이터를 안전하게 익명으로 전송하는 데 사용된다.
- 또한 사용자 IP 주소를 마스킹하고 데이터를 암호화하여 수신 권한이 없는 사람이 읽을 수 없도록 한다.
- VPN (Virtual Private Network)
- VPN은 인터넷과 같은 공중망에 인증, 암호화, 터널링 기술을 활용하여 마치 전용망을 사용하는 효과를 가지는 보안 솔루션이다.
- VPN은 여러 공중 인터넷망을 하나의 사설망처럼 사용할 수 있는 기술로, 공중망과 사설망의 중간단계이고, 방식으로는 SSL방식과 IPSec방식이 있다.
- SSL VPN은 4계층에서 소프트웨어적으로 동작하므로 별도의 장치가 필요없으며 가격이 저렴하다.
- IPSec VPN은 3계층에서 동작하므로 IP 헤더를 조작해야 하므로 별도의 하드웨어 장치가 필요하나 보안성이 뛰어나다.
네트워크 보안 솔루셔냐
9-58
6. 다음은 SOLID 원칙에 관한 내용이다. 괄호안에 알맞는 단어를 보기에서 고르시오.
- ( ) 은/는 클라이언트가 자신이 이용하지 않는 메서드에 의존하지 않아야 한다는 원칙이다.
- ( ) 은/는 큰 덩어리의 인터페이스들을 구체적이고 작은 단위들로 분리시킴으로써 클라이언트들이 꼭 필요한 메서드들만 이용할 수 있게 한다.
- 예를 들어 하나의 복합기에 프린터와 복사기, 팩스 메서드가 있는데 이 세가지 메서드는 같은 파일에 존재하므로 프린터 로직만 바뀌어도 복사기와 팩스도 재컴파일을 해야한다.
- 그러므로 ( ) 을/를 적용하여 로직이 바뀌어도 다른 메서드는 영향을 받지 않도록 해야한다.
- ISP(Inertface Segrigation Principle)
- 객체지향 설계원칙은 각 원칙의 첫글자를 따서 SOLID라고 한다.
단일 책임의 원칙 SRP : Single Presponsibility Principle |
하나의 클래스는 하나의 목적을 위해서 생성되며, 클래스가 제공하는 모든 서비스는 하나의 책임을 수행하는 데 집중되어 있어야 한다는 원칙 객체 지향 프로그래밍의 5원칙 중 나머지 4원칙의 기초 원칙이다. |
개방 폐쇠 원칙 OCP : Open Close Principle |
소프트웨어의 구성요소(컴포넌트, 클래스, 모듈, 함수)는 확장에는 열려있고, 변경에는 닫혀 있어야 한다는 원칙 |
리스코프 치환의 원칙 LSP : Liskov Substitution Principle |
서브 타입(상속받은 하위 클래스)은 어디서나 자신의 기반 타입(상위 클래스) 으로 교체할 수 있어야 한다는 원칙 |
인터페이스 분리의 원칙 ISP : Interface Segregation Principle |
한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다는 원칙 객체 설계 시 특정 기능에 대한 인터페이스는 그 기능과 상관없는 부분이 변해도 영향을 받지 않아야 한다는 원칙 |
의존성 역전의 원칙 DIP : Dependency Inversion Principle |
실제 사용 관계는 바뀌지 않으며, 추상을 매개로 메시지를 주고 받음으로써 관계를 최대한 느슨하게 만드는 원칙 |
객체 지향 설계 원칙(SOLID)
1-10
7. 다음 자바 코드에 알맞는 출력값을 작성하시오.
public static void main(String args[]){
int i = 3; int k = 1;
switch(i) {
case 1: k += 1;
case 2: k++;
case 3: k = 0;
case 4: k += 3;
case 5: k -= 10;
default: k--;
}
System.out.print(k);
}
- -8
- k는 1이고, i는 3이다.
- 스위치문에서 i를 받아서 분기를 나누고 있다.
- 이때, i는 3이니 case 3으로 넘어가서 문장을 실행한다.
- case 3은 k를 0으로 만들고 있다.
- 그 후, case에 break가 없기 때문에 case4, case5, default까지 실행시켜야 한다.
- 모두 실행시키면 k는 -8이 된다.
8.다음은 C언어 코드이다. 실행결과를 쓰시오
#include <stdio.h>
struct student{
int n,g;
};
int main(){
struct student st[2];
int i = 0;
for(i; i<2; i++){
st[i].n = i;
st[i].g = i + 1;
}
printf("%d", st[0].n + st[1].g);
return 0;
}
- 2
- student 구조체는 n과g를 갖고 있다.
- main에서 student 자료형의 st 배열을 생성하였고, 크기는 2이다.
- main에서 st[i].n과 st[i].g 를 초기화 하고 있는데 반복문을 거치면서 다음과 같은 값을 가진다.
st | 0 | 1 |
n | 0 | 1 |
g | 1 | 2 |
- 따라서 printf 함수에서 st[0].n 과 st[1].g를 더하라 했으니 2가 정답이다.
9. IP 주소가 139.127.19.132이고 서브넷마스크 255.255.255.192일 때 아래의 답을 작성하시오. (10진수로 표기)
- (1) 괄호안에 들어갈 네트워크 주소 : 139.127.19.( )
- (2) 해당 네트워크 주소와 브로드캐스트 주소를 제외한 호스트 개수
- 128
- 62
- 네트워크 주소를 구할 때 제일 먼저 서브넷 마스크를 확인해야 한다.
- 서브넷 마스크는 아이피와 비슷하게 생겼는데 위의 서브넷 마스크는 255.255.255.192 이므로 이를 2진수로 풀어 쓰면 11111111.11111111.11111111.11000000 이다.(각 자리는 8자리이다.)
- 이를 해석하면 1인 부분은 네트워크로 쓰기로 하고 나머지 0으로 된 부분을 나눠서 IP주소로 할당한다는 뜻이다.
- 이때, 아이피 주소가 139.127.19.132라고 했고, 일단 서브넷 마스크에서 앞 3자리 (255.255.255)는 네트워크로 쓴다는 것을 알아냈으니, 마지막 132만 2진수로 변경하면, 10000100이다.
- 맨 마지막 자리만 AND연산을 진행한다.
- 11000000
- 10000100
- -------------
- 10000000 이 된다.
- 따라서 네트워크 주소는 128이다.
- 서브넷 마스크에서 맨 마지막 자리가 11000000인데, 사실 11부분이 네트워크로 동작하는 부분이다.
- 이때 IP주소의 맨 마지막 부분을 보면 10xxxxxx이니깐, 맨 앞자리가 서브넷마스크인것이다.
- 따라서 네트워크는 마지막 자리가 10xxxxxx,11xxxxxx, 01xxxxxx, 00xxxxxx인 서브 네트워크가 4개가 생성된다.
- 이때, 각 서브네트워크 마다 x자리에 전부 1을 채우면 브로드케스트 주소가 되고, 0으로 채우면 네트워크 주소가 된다. 이 두 주소는 서브네트워크 주소로 사용할 수 없다.(고유의 주소이다)
- 따라서 만들 수 있는 네트워크 주소는 x가 6개니까 2의 6제곱 = 64 이고, 여기서 서브네트워크와 브로드캐스트 주소를 뺀 62개가 되는 것이다.
10. 다음 설명에 대한 괄호안에 알맞는 단어를 작성하시오.
- ( ) 테스트는 하드웨어나 소프트웨어의 개발 단계에서 상용화하기 전에 실시하는 제품 검사 작업. 제품의 결함 여부, 제품으로서의 가치 등을 평가하기 위해 실시한다. 선발된 잠재 고객으로 하여금 일정 기간 무료로 사용하게 한 후에 나타난 여러 가지 오류를 수정, 보완한다. 공식적인 제품으로 발매하기 이전에 최종적으로 실시하는 검사 작업이다.
- ( ) 테스트는 새로운 제품 개발 과정에서 이루어지는 첫 번째 테스트. 즉, 시제품이 운영되는 동안의 신제품 연구와 개발 과정 단계에서 초기 작동의 결과를 평가하는 수단이며 개발 회사 내부에서 이루어지는 테스트로서 단위 테스트, 구성 테스트, 시스템 테스트 등을 포함한다.
- 베타 테스트
- 알파 테스트
- 알파 테스트와 베타 테스트는 인수단계에서 실행되는 테스트이다.
- 테스트 레벨은 함께 편성되고 관리되는 테스트 활동의 그룹이다.
- 테스트 레벨은 프로젝트에서 책임과 연관이 있다.
- 각각의 테스트 레벨은 독립적이다.
- 개발단계에 따라 레벨 종류를 분류한다.
종류 | 설명 | 기법 |
단위테스트 | 사용자 요구사항에 대한 단위모듈, 서브루틴 등을 테스트 하는 단계 | 자료구조테스트, 실행경로테스트, 오류 처리 테스트, 인터페이스 테스트 |
통합테스트 | 단위 테스트를 통과한 모듈 사이의 인터페이스, 통합된 컴포넌트 간의 상호 작용을 검증하는 테스트 단계 | 빅뱅 테스트, 샌드위치 테스트, 상향식 테스트, 하향식 테스트 |
시스템 테스트 | 통합된 단위 시스템의 기능이 시스템에서 정상적으로 수행되는지 검증하는 테스트 단계 | 기능/ 비기능 요구사항 테스트 |
인수 테스트 | 계약상의 요구사항이 만족되었는지 확인하기 위한 테스트 단계 | 계약인수, 규정인수, 사용자인수, 운영상의 인수, 알파/베타 테스트 |
- 추가로 인수테스트에서는 알파테스트와 베타 테스트가 있다.
- 알파 테스트는 선택된 사용자(회사 내의 다른 사용자 또는 실제 사용자)가 개발자 환경에서 통제된 상태로 개발자와 함께 수행하는 인수 테스트이다.
- 베타 테스트는 실제 환경에서 일정 수의 사용자에게 대상 소프트웨어를 사용하게 하고 피드백을 받는 인수테스트이다.
테스트 레벨 - 테스트 레벨의 종류
10-27
11. 다음 설명에 알맞는 테스트 용어를 보기에서 골라 작성하시오.
- 오류를 제거하거나 수정한 시스템이나 시스템 컴포넌트 또는 프로그램이 오류 제거와 수정에 의해 새로이 유입된 오류가 없는지를 확인하는 일종의 반복 시험이다.
- 반복적인 시험이 필요한 이유는 오류가 제거·수정되는 상당수의 시스템이 의도치 않았던 오동작이나 새로운 형태의 오류를 일으키기 때문이다.
- 결국, 수정·변경된 시스템이나 시스템 컴포넌트 또는 프로그램이 명세된 요구 사항을 충족시키는지를 확인하는 시험의 한 형태이다.
- 보기 : White Box, Boundary, Partition, Black Box, Regression, Exhaust, Iterating
- Regression (회귀 테스트)
- 회귀 테스트(Regression Testing)은 오류를 제거하거나, 수정한 시스템에서 오류 제거와 수정에 의해 새로이 유입된 오류가 없는지 확인하는 일종의 반복 테스트 기법이다.
- 회귀 테스트는 소프트웨어의 변경 사항이 발생하면, 수행하는 테스트로, 주로 유지보수 단계에서 실행된다.
- 소프트웨어 수정 시 다른 오류가 흘러들어오므로 이를 확인하기 위하여 소프트웨 변경 사항이 발생할 때마다 회귀 테스트를 반복적으로 수행한다.
- 테스트를 목적에 따라 분류하면 다음과 같다.
회복 테스트 Recovery Testing |
시스템에 고의로 실패를 유도하고, 시스템의 정상적 복귀 여부를 테스트하는 기법 |
안전 테스트 Security Testing |
불법적인 소프트웨어가 접근하여 시스템을 파괴하지 못하도록 소스 코드 내의 보안적인 결함을 미리 점검하는 테스트 기법 |
성능 테스트 Performance Testing |
사용자의 이벤트에 시스템이 응답하는 시간, 특정 시간 내에 처리하는 업무량, 사용자 요구에 시스템이 반응하는 속도 등을 측정하는 테스트 기법 |
구조 테스트 Structure Testing |
시스템의 내부 논리 경로, 소스 코드의 복잡도를 평가하는 테스트 기법 |
회귀 테스트 Regression Testing |
회귀 테스트는 오류를 제거하거나 수정한 시스템에서 오류 제거와 수정에 의해 새로이 유입된 오류가 없는지 확인하는 일종의 반복 테스트 기법 |
병행 테스트 Parallel Testing |
변경된 시스템과 기존 시스템에 동일한 데이터를 입력 후 결과를 비교하는 테스트 기법 |
소프트웨어 테스트 유형 - 테스트 목적에 따른 분류
10-10
12. 다음 테이블에서 πTTL(employee)에 대한 연산 결과 값을 작성하시오.
- TTL
- 부장
- 대리
- 과장
- 차장
- 프로젝트 연산자는 릴레이션 R에서 주어진 속성들의 값으로만 구성된 튜플을 반환할 때 사용한다.
13. 다음은 파이썬 코드이다. 알맞는 출력값을 작성하시오.
a = "REMEMBER NOVEMBER"
b = a[:3] + a[12:16];
c = "R AND %s" % "STR";
print(b+c);
- REMEMBER AND STR
- 인덱싱 연산은 파이썬에서 사용하는 연산으로, 주로 배열, 문자열에서 사용한다.
- [:]에서 :의 앞은 시작, :의 뒤는 끝을 나타내고 끝은 자기자신을 포함하지 않는다.
- 즉, a[:3]은 인덱스 0부터 2까지를 말하는 것이다. 따라서 REM이 저장된다.
- a[12:16]은 마찬가지로 EMBER이 저장되고 두 문자열을 더한 REMEMBER이 b에 저장된다.
- c에서 %s 에 STR이 전달된다.
- 따라서 b와 C의 합은 REMEMBER AND STR이 출력된다.
14. 다음 설명에 대해 보기에 주어진 답을 골라 작성하시오.
- 라우팅 프로토콜은 범위에 따라 ( 1 ), ( 2 )이(가) 있다.
- 라우팅 프로토콜의 범위는 AS에 따라 나뉘는데, AS(Autonomous System; 자치 시스템)는 하나의 도메인에 속하는 라우터들의 집합을 말한다.
- 하나의 자치시스템에 속한다는 것은 하나의 도메인에 속한다는 것과 같은 의미이다.
- ( 1 )은/는 동일한 AS내의 라우팅 프로토콜이며, 대표적으로 RIP와 ( 3 )이/가 있다.
- ( 3 )은/는 항상 상태를 주고받는 RIP와 다르게 변화가 있을 때만 상태를 주고받는 Linked State의 프로토콜이며, 자치 시스템을 지역(Area)으로 나누어 라우팅을 효과적으로 관리할 수 있다.
- ( 2 )은/는 서로 다른 AS 간 라우팅 프로토콜이며, 대표적으로 ( 4 )이/가 있으며, 초기에 라우터들이 연결될 때 전체 라우팅 테이블을 교환하고, 그 이후에는 변화된 정보만을 교환하는 방식이다.
- 보기 : EGP, IGRP, BGP, IGP, OSFP, BCP
- IGP
- EGP
- OSFP
- BGP
- 라우팅 프로토콜에 대한 설명이다.
- 라우팅 프로토콜은 내부 라우팅 프로토콜(IGP; Interior Gateway Protocol)와 EGP(Exterior Gateway Protocol)로 구성되어 있다.
- IGP는 동일한 AS 내의 라우팅에서 사용되는 프로토콜이다.
- IGP는 RIP와 OSFP로 구성되어 있다.
- RIP는 거리 벡터 라우팅 기반 메트릭 정보를 인접 라우터와 주기적으로 교환하여 라우팅 테이블을 갱신하고, 라우팅 테이블을 구성/ 계산하는 데 Bellman-Ford 알고리즘을 사용하는 내부 라우팅 프로토콜이다.
- 최대 홉 수를 15개로 제한하고, 30초마다 전체 라우팅 정보를 브로드캐스팅 하는 특징이 있다.
- OSFP는 규모가 크고 복잡한 TCP/IP네트워크에서 RIP의 단점을 개선하기 위해 자신을 기준으로 링크 상태 알고리즘을 적용하여 최단 경로를 찾는 라우팅 프로토콜이다.
- 링크 상태 라우팅 기반 메트릭 정보를 한 지역 내 모든 라우터에 변경이 발생 했을 때만 보내고, 라우팅 테이블을 구성/계산하는데 다익스트라 알고리즘을 사용하는 내부 라우팅 프로토콜이다.
- 홉 카운트에 제한이 없고 AS를 지역으로 나누어 라우팅을 효과적으로 관리한다.
- EGP는 서로 다른 AS간 라우팅 프로토콜로 게이트웨이 간의 라우팅에 사용되는 프로토콜이다. 종류로는 BGP가 있다.
- BGP는 AS 상호 간에 경로 정보를 교환하기 위한 라우팅 프로토콜로 초기에 라우터들이 연결될 때 전체 라우팅 테이블을 교환하고, 그 이후에는 변화된 정보만을 교환하는 방식이다.
라우팅 프로토콜(3계층)
11-61
15. 다음 C언어에서 출력에 대한 알맞은 답을 작성하시오.
#include <stdio.h>
int len(char *p);
int main(){
char *p1 = "2022";
char *p2 = "202207";
int a = p1;
int b = p2;
printf("%d", len(a) + len(b));
}
int len(char *p){
int r = 0;
while(*p != '\0'){
p++;
r++;
}
return r;
}
- 10
- len함수는 문자열의 길이를 구하는 함수로 구현되었다.
- c에서 문자열과 문자를 구분하는 기준은 맨 마지막에 문자열의 끝을 알리는 \0이 포함되냐 안되냐로 구분한다.
- 따라서 반복문을 진행하면서 \0을 만날때까지 문자 하나를 가리키던 *p가 한칸씩 움직이고, 한칸 움직일 때 마다 r을 반환한다.
- 따라서 문자열을 구하면 4+6 = 10이 된다.
16. 다음 C언어 코드에서 알맞는 출력값을 작성하시오.
#include <stdio.h>
int main(int argc, char *argv[]) {
int a[4] = {0, 2, 4, 8};
int b[3] = {};
int i = 1;
int sum = 0;
int *p1;
for (i; i < 4; i++) {
p1 = a + i;
b[i-1] = *p1 - a[i-1];
sum = sum + b[i-1] + a[i];
}
printf("%d", sum);
return 0;
}
- 22
- p1은 포인터이고, a의 주소값에 자료형의 크기 * i만큼 더한 값을 저장하고 있다.
- 즉, 첫번째 반복문에서 p1은 2이다.
- b에 a[1] - a[0]을 진행하고 있으니 b[0] = 2이다.
- 따라서 배열 b는 b = { 2, 2, 4 }가 저장되어 있다.
- 모두 더하면 22이다.
17. 다음 자바코드에서 알맞는 출력값을 작성하시오.
public class Conv{
public Conv(int a) {
this.a = a;
}
int func() {
int b =1;
for (int i=1; i<a; i++){
b = a * i + b
}
return a +b;
}
int a;
}
public static void main(String[] args){
Conv obj = new Conv(3);
obj.a=5;
int b = obj.func();
system.out.print(obj.a + b);
}
- 61
- main함수에서 Conv의 생성자를 통해 생성하면서 a에 3을 전달하면서 객체를 생성하고 있다.
- 다음 obj.a = 5에서 생성된 객체의 a를 5로 초기화 하고있다.
- 그 다음 b라는 변수에 obj의 func()값을 대입하려고 한다.
- 이때 func()의 값은 반복문을 거쳐서 구해진 값을 리턴한다.
- 반복문은 i가 1부터 5가되기 전까지니 i 는 1,2,3,4까지 반복된다.
- b = 1이라 했으니, b에 a * i + b를 대입한다
- 차례대로 5 * 1 + 1 = 6
- 5 * 2 + 6 = 16
- 5 * 3 + 16 = 31
- 5 * 4 + 31 = 51
- 51 + 5 = 56이 리턴된다.
- 최종 출력에선 obj.a + b를 묻고 있으므로 56+5 = 61 이다.
18. 다음은 함수 종속성에 대한 설명이다. 해당 문제에 대한 알맞는 답을 보기에서 골라 작성하시오.
- 테이블에서 '성적'은 기본키인 {학생, 학과}에 대해 ( 1 ) Functional Dependency가 성립하지만, 학년은 ( 2 ) Functional Dependency가 성립한다.
- 속성 x,y,z에 대하여 x -> y 이고, y->z이면, x와 z는 ( 3 ) Functional Dependency가 성립한다.
- 보기 : Determinant, Constraint, Transitive, Full, Dependent, Partial, Consistency
- Full
- Partial
- Transitive
- 함수 종속(FD: Functional Dependency)은 어떤 릴레이션 R에서 x와 y를 각각 R의 애트리뷰트 집합의 부분집합이라고 할 경우, 애트리뷰트 x의 값 각각에 대해 시간과 관계없이 항상 애트리뷰터 y의 값이 오직 하나만 연관되어있는 관계이다.
- 함수 종속은 릴레이션에서 속성의 의미와 속성 간 상호 관계로 부터 발생하는 제약조건이다.
부분 함수 종속 Partial Functional Dependency |
릴레이션에서 기본 키가 복합 키일 경우, 기본 키를 구성하는 속성 중, 일부에게 종속된 경우 |
완전 함수 종속 Full Functional Dependency |
릴레이션에서 x->y 관계가 있을 때, y는 x의 전체 속성에 대해 종속하고, 부분 집합 속성에 종속하지 않는경우 |
이행 함수 종속 TranSitive Functional Dependency |
릴레이션에서 x->y, y->z 종속 관계가 있을 때, x->z가 성립하는 경우 |
함수 종속
3-12
19. 다음 설명에 대한 알맞는 답을 보기에서 고르시오.
- 인터넷에서, 웹 서버와 사용자의 인터넷 브라우저 사이에 문서를 전송하기 위해 사용되는 통신 규약을 말한다. 인터넷에서 하이퍼텍스트(hypertext) 문서를 교환하기 위하여 사용되는 통신규약이다. 이 규약에 맞춰 개발해서 서로 정보를 교환할 수 있게 되었다.
- 문자, 그래픽, 음성 및 영상을 하나의 연상 거미집(Web of Association)과 같이 서로 연결시켜, 제시된 순서에 관계없이 이용자가 관련된 정보를 검색할 수 있도록 하는 정보 제공 방법이다. 즉, 한 페이지에서 링크된 순서에 상관없이 사용자들이 원하는 정보를 클릭함으로써 원하는 정보에 쉽게 접근하는 방식을 말한다.
- 웹 페이지 표시를 위해 개발된 지배적인 마크업 언어다. 또한, 제목, 단락, 목록 등과 같은 본문을 위한 구조적 의미를 나타내는 것뿐만 아니라 링크, 인용과 그 밖의 항목으로 구조적 문서를 만들 수 있는 방법을 제공한다.
- 보기 : ICMP, HTTP, Hypertext, XML, HTML, AJAX, JSON
- HTTP
- Hypertext
- HTML
- 웹 서비스는 네트워크에 분산된 정보를 서비스 형태로 개방하여 표준화된 방식으로 공유하는 기술로써 서비스 지향 아키텍처 개념을 실현하는 대표적인 기술이다.
- HTTP는 월드 와이드 웹 문서를 송 수신하기 위한 규칙들을 정의해 놓은 표준 프로토콜이다. 인터넷에서 요청과 응답에 의해 처리하는 프로토콜로 GET, POST, PUT등의 방식을 사용한다.
- Hypertext는 문장이나 단어 등이 링크를 통해 서로 연결된 네트워크처럼 구성된 문서로 이미지 등을 누르면 다른 사이트로 옮겨갈 수 있도록 하이퍼링크가 걸려있다.
- HTML은 웹을 이루는 가장 기초적인 구성요소로, 웹 콘텐츠의 의미와 구조를 정의할 때 사용한다. 인터넷 웹 문서를 표현하는 표준화 된 마크업 언어이다.
웹 서비스 개념 - 웹 서비스 관련 용어
4-11
20. 다음 모듈 F에 대한 Fan-in과 Fan-out을 작성하시오.
- Fan-in : 3
- Fan-out : 2
- 소프트웨어의 구성요소인 모듈을 계층적으로 분석하기 위해서 팬인, 팬아웃을 활용한다.
- 이로 인해 시스템의 복잡도를 측정할 수 있다.
- 위 그림에서 화살표가 나가면 팬 아웃, 들어가면 팬인이다.
- 모듈 f를 기준으로 본다면, 모듈 머리에 줄 3개가 있다. 이게 팬 인( 머리 위)
- 모듈 아래에 줄 두개가 있다. 팬 아웃( 모듈 몸통 아래)
팬인, 팬아웃
8-16
오타 및 틀린 문제는 댓글 부탁드립니다!
'Study > 정보처리기사' 카테고리의 다른 글
2023년 1회 정보처리기사 실기 기출문제 풀이 (0) | 2023.09.30 |
---|---|
2022년 3회 정보처리기사 실기 기출문제 풀이 (0) | 2023.09.27 |
2022년 1회 정보처리기사 실기 기출문제 풀이 (0) | 2023.09.25 |
2021년 3회 정보처리기사 실기 기출문제 풀이 (0) | 2023.09.24 |
2021년 2회 정보처리기사 실기 기출문제 풀이 (1) | 2023.09.24 |