| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- Spring
- 인터넷의이해
- Spring Boot
- Github
- Database
- Python
- Rocky Linux
- 국가과제
- KAKAO
- 크롤링 개발
- OSS
- colab
- suricata
- 고등학생 대상
- Resnet
- Web
- Docker
- Machine Learning
- 코딩도장
- Powershell
- LINUX MASTER
- ICT멘토링
- GoogleDrive
- VSCode
- API
- rnn
- ChatGPT
- git
- C언어
- cloud
- Today
- Total
코딩두의 포트폴리오
[2023실기] 2회 본문
1. 다음 C언어로 구현된 프로그램을 실행시킨 결과과 "43215"일 때, <처리 조건>을 참고하여 괄호에 들어갈 알맞은 식을 쓰시오.
#include <stdio.h>
main() {
int n[] = { 5, 4, 3, 2, 1 };
for (int i = 0; i < 5; i++)
printf("%d", ( ));
}
<처리 조건>
| 괄호의 식에 사용할 문자는 다음으로 제한한다. - n, i - +, -, /, *, % - 0~9, (, ), [, ] |
2. 다음 C언어로 구현된 프로그램과 <처리 조건>을 참고하여 괄호(1~4)에 들어갈 알맞은 식을 스시오.
#include <stdio.h>
main() {
int m = 4620;
int a = ( ① );
int b = ( ② );
int c = ( ③ );
int d = ( ④ );
printf("1000원의 개수 : %d\n", a);
printf("500원의 개수 : %d\n", b);
printf("100원의 개수 : %d\n", c);
printf("10원의 개수 : %d\n", d);
}
<처리 조건>
| 괄호의 (1~4)의 식에 사용할 문자는 다음으로 제한한다. - a, b, c, d, m, i, d - +, -, /, *, % - 0~9, (, ) |
3. 다음 C언어로 구현된 프로그램을 분석하여 "홍길동", "김철수", "박영희"를 차례로 입력했을 때 그 실행 결과를 쓰시오.
#include <stdio.h>
char n[30];
char* getname() {
printf("이름 입력 : ");
gets(n);
return n;
}
main() {
char* n1 = getname();
char* n2 = getname();
char* n3 = getname();
printf("%s\n", n1);
printf("%s\n", n2);
printf("%s\n", n3);
}
4. 다음 <학생> 테이블에 (9816021. '한국산', 3, '경영학개론', '050-1234-1234')인 데이터를 삽입하고자 한다. <처리조건>을 참고하여 적합한 SQL문을 작성하시오.
<학생>
| 학번 | 이름 | 학년 | 신청과목 | 연락처 |
| 9815932 | 김태산 | 3 | 경영정보시스템 | 050-5234 |
| 9914511 | 박영록 | 2 | 경제학개론 | 050-1415-4986 |
| 0014652 | 이익명 | 1 | 국제경영 | 050-6841-6781 |
| 9916425 | 김혜리 | 2 | 재무관리 | 050-4811-1187 |
| 9815945 | 이지영 | 3 | 인적자원관리 | 050-9785-8845 |
<처리 조건>
| - 최소한의 코드로 작성될 수 있도록 SQL문을 구성한다. - 명령문 마지막의 세미콜론(;)은 생략이 가능하다. - 인용 부호가 필요한 경우 작은따옴표(' ')를 사용한다. |
INSERT INTO 학생 VALUES(9816021, '한국산', 3, '경영학개론', '050-1234-1234');
5. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
#include <stdio.h>
main() {
int n[] = { 73, 95, 82 };
int sum = 0;
for (int i = 0; i < 3; i++)
sum += n[i];
switch (sum / 30) {
case 10:
case 9: printf("A");
case 8: printf("B");
case 7:
case 6: printf("C");
default: printf("D");
}
}
6. 화이트박스 테스트의 검증 기준에 대한 다음 설명에 해당하는 용어를 [보기]에서 찾아 쓰시오.
| 테스트 케이스를 소스 코드의 조건문에 포함된 개별 조건식의 결과가 True인 경우와 False인 경우가 한 번 이상 수행되도록 설계한다. |
[보기]
| 문장 커버리지 | 분기 커버리지 | 조건 커버리지 | 분기/조건 커버리지 |
조건 커버리지
7. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
#include <stdio.h>
main() {
int c = 0;
for (int i = 1; i <= 2023; i++)
if (i % 4 == 0)
c++;
printf("%d", c);
}
8. 소프트웨어 데이터의 비정상적인 수정이 감지되면 소프트웨어를 오작동하게 만들어 악용을 방지하는 기술이다. 해시 함수, 핑거 프린트, 워터마킹 등의 보안 요소를 생성하여 소프트웨어에 삽입하고, 실행코드를 난독화하며, 실행 시 원본 비교 및 데이터 확인을 수행함으로써 소프트웨어를 보호하는 이 기술을 가리키는 용어를 쓰시오.
템퍼 프루핑 (Tamper Proofing)
9. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
#include <stdio.h>
#define MAX_SIZE 10
int isWhat[MAX_SIZE];
int point = -1;
int isEmpty() {
if (point == -1) return 1;
return 0;
}
int isFull() {
if (point == 10) return 1;
return 0;
}
void into(int num) {
if (isFull() == 1) printf("Full");
else isWhat[++point] = num;
}
int take() {
if (isEmpty() == 1) printf("Empty");
else return isWhat[point--];
return 0;
}
main() {
into(5); into(2);
while (!isEmpty()) {
printf("%d", take());
}
into(4); into(1); printf("%d", take());
into(3); printf("%d", take()); printf("%d", take());
into(6); printf("%d", take()); printf("%d", take());
}
10. 다음은 데이터베이스 구축까지의 과정을 나열한 것이다. 괄호(1~5)에 들어갈 알맞은 용어를 [보기]에서 찾아 쓰시오.
| ( 1 ) | --> | ( 2 ) | --> | ( 3 ) | --> | ( 4 ) | --> | ( 5 ) |
[보기]
| 개념적 설계 | 데이터베이스 구현 | 물리적 설계 | 요구 조건 분석 |
| 인터페이스 설계 | 논리 스키마 설계 | 논리적 설계 | 트랜잭션 완성 |
1. 요구 조건 분석
2. 개념적 설계
3. 논리적 설계
4. 물리적 설계
5. 데이터베이스 구현
11. 디자인 패턴에 대한 다음 설명에서 괄호(1, 2)에 들어갈 알맞은 패턴을 [보기]에서 찾아 쓰시오.
| - ( 1 ) : 하나의 객체를 생성하면 생성된 객체는 어디서든 참조할 수 있지만, 여러 프로세스가 동시에 참조할 수 없는 패턴으로, 불필요한 메모리 낭비를 최소화할 수 있음 - ( 2 ) : 각 클래스들의 데이터 구조에서 처리 기능을 분리하여 별도로 구성함으로써, 클래스를 수정하지 않고도 새로운 연산의 추가가 가능함 |
[보기]
| 생성 패턴 | 구조 패턴 | 행위 패턴 |
| 추상 팩토리(Abstract Factory) 프로토타입(Prototype) 싱글톤(Singleton) |
어댑터(Adapter) 브리지(Bridge) 프록시(Proxy) |
인터프리터(Interpreter) 중재자(Mediator) 옵서버(Observer) 방문자(Visitor) |
1. 싱글톤 (Singleton)
2. 방문자 (Visitor)
12. 다음 설명에서 괄호(1~3)에 들어갈 알맞은 용어를 [보기]에서 찾아 쓰시오.
| 전송 오류의 발생에는 감쇠, 자연 왜곡, 잡음 등 다양한 원인이 있으며, 이러한 오류를 검출하고 수정하는 것으로 알려진 대표적인 방식이 ( 1 ) 코드 방식이다. ( 1 ) 코드 방식은 하나의 데이터 단위에 ( 4 ) 비트를 추가하여 오류를 검출하여 교정이 가능한 코드로, 2bit의 오류를 검출할 수 있으며 1bit의 오류를 교정한다. 데이터 비트 외에 잉여 비트가 많이 필요하다는 단점이 있다. ( 1 ) 코드는 수신시에서 오류를 검정하는 ( 2 )에 해당한다. ( 2 )는 데이터 전송 과정에서 오류가 발생하면 송신측에 재전송을 요구하는 ( 3 )와는 달리 재전송 요구 없이 스스로 수정하기 때문에 연속적인 데이터 전송이 가능하다. ( 3 )는 ( 4 )검사, ( 5 ) 등을 통해 오류를 검출하고 ARQ(Automatic Repeat reQuest)로 오류를 제어한다. ( 4 ) 검사는 오류 검사를 위해 데이터 비트 외에 1비트의 검사 비트를 추가하는 것으로 1bit의 오류만 검출할 수 있다. 1의 개수에 따라 짝수 ( 4 )와 홀수 ( 4 )로 나뉜다. ( 5 )는 다항식 코드를 사용하여 오류를 검출하는 방식이다. 동기식 전송에서 주로 사용되며, HDLC 프레임의 FCS 필드의 삽입 순서 필드에 사용되는 방식이다. 잡단 오류를 검출할 수 있고, 검출률이 높으므로 가장 많이 사용한다. |
[보기]
| NAK | CRC | FEC | BCD |
| Parity | Hamming | MD5 | BEC |
1. Hamming
2. FEC (Forward Error Correction)
3. BEC (Backward Error Correction)
4. Parity
5. CRC (Cyclic Redundancy Check)
13. HDLC(High-Level Data Link Control)에 대한 다음 설명에서 괄호 ( )에 들어갈 알맞은 용어를 [보기]에서 찾아 쓰시오.
| HDLC는 비트(Bit) 위주의 프로토콜로, 각 프레임이 데이터 흐름을 제어하고 오류를 검출할 수 있는 비트 열을 삽입하여 전송한다. 포인트 투 포인트(Point-to-Point) 및 멀티 포인트(Multi-Point), 루프(Loop) 등 다양한 데이터 링크 형태에 동일하게 적용이 가능하다는 특징이 있다. HDLC의 프레임의 구조는 헤더, 텍스트, 트레일러로 구분되며, 데이터 플래그, 주소부, 제어부로 구분할 수 있는데, 제어부에는 프레임의 종류를 식별하기 위해 사용된다. 제어부의 첫 번째, 두 번째 비트를 사용하여 ( 1 ) 프레임, ( 2 ) 프레임, ( 3 ) 프레임으로 구분한다. ( 1 ) 프레임은 I 프레임으로 불리며, 제어부가 ‘0’로 시작하는 프레임으로, 사용자 데이터를 전달하거나 피기백킹(Piggybacking) 기법을 통해 데이터에 대한 확인 응답을 보낼 때 사용된다. ( 2 ) 프레임은 S 프레임으로 불리며, 제어부가 ‘10’로 시작하는 프레임으로, 오류 제어와 흐름 제어를 위해 사용된다. ( 3 ) 프레임은 U 프레임으로 불리며, 제어부가 ‘11’로 시작하는 프레임으로, 링크의 동작 모드 설정과 관리를 한다. 프레임에서 설정할 수 있는 동작 모드는 명령 모드, 응답 모드, ( 4 ), ( 5 )의 네 가지로 구분된다. 표준 응답 모드는 반이중 통신을 하는 포인트 투 포인트(Point-to-Point) 또는 멀티 포인트(Multi-Point) 불균형 링크 구성에 사용되며, 종국은 주국의 조회(Poll)가 있을 때만 응답하는 특징이 있다. ( 4 )는 포인트 투 포인트(Point-to-Point) 균형 링크에서 사용되며, 흐름제어가 없어 언제나 전송할 수 있다. ( 5 )는 균형 통신을 하는 포인트 투 포인트(Point-to-Point) 불균형 링크 구성에서 사용되며, 종국은 주국의 조회가(Poll) 없어도 송신이 가능하지만 링크 설정이나 오류 복구 등의 제어 기능은 주국만 가능하다. |
[보기]
| 비동기 응답 모드 | 주소부 | 제어부 | ARQ | 정보 |
| 비번호 | 감독 | 플래그 | 비동기 균형 모드 |
1. 정보
2. 감독
3. 비번호
4. 비동기 균형 모드
5. 비동기 응답 모드
14. 다음 JAVA로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
public class Test {
public static void main(String[] args) {
String str1 = "Programming";
String str2 = "Programming";
String str3 = new String("Programming");
System.out.println(str1 == str2);
System.out.println(str1 == str3);
System.out.println(str1.equals(str3));
System.out.println(str2.equals(str3));
}
}
15. 다음 [보기]에 나열된 암호화 알고리즘을 대칭키 암호화 알고리즘과 비대칭키 암호화 알고리즘으로 구분하시오.
| RSA | DES | ARIA | ECC | SEED | AES |
대칭키 암호화 알고리즘 - DES, ARIA, SEED, AES
비대칭키 암호화 알고리즘 - RSA, ECC
16. 암호화 알고리즘에 대한 다음 설명에서 괄호에 들어갈 알맞은 용어를 쓰시오.
| ( )는 임의의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 알고리즘으로, 복호화가 거의 불가능한 일방향 함수이다. 무결성 검증을 위해 사용될 뿐만 아니라 정보보호의 다양한 분야에서 활용되며, 종류에는 SHA 시리즈, MD5, N-NASH, SNEFRU 등이 있다. |
해시(Hash)
17. 다음 <처리 조건>에 부합하는 <SQL문>이 완성되도록 괄호에 적합한 옵션을 쓰시오.
<처리 조건>
| - <학생> 뷰를 제거한다. - <학생> 뷰를 참조하는 모든 데이터도 연쇄적으로 제거한다. |
<SQL문>
| DROP VIEW 학생 ( ); |
CASCADE
18. 다음은 데이터를 오름차순으로 정렬하는 선택 정렬 알고리즘을 C 언어 프로그램으로 구현한 것이다. 프로그램을 분석하여 괄호에 들어갈 알맞은 연산자를 쓰시오.
#include <stdio.h>
main() {
int E[] = { 64, 25, 12, 22, 11 };
int n = sizeof(E) / sizeof(E[0]);
int i = 0;
do {
int j = i + 1;
do {
if (E[i] > E[j]) {
int tmp = E[i];
E[i] = E[j];
E[j] = tmp;
}
j++;
} while (j < n);
i++;
} while (i < n - 1);
for (int i = 0; i <= 4; i++)
printf("%d ", E[i]);
}
<처리 조건>
| 괄호의 연산자는 다음으로 제한한다. - +=, -=, *=, /= - ==, !=, >, >=, <, <= - &&, || |
19. 다음 Python으로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
a = "engineer information programming"
b = a[:3]
c = a[4:6]
d = a[29:]
e = b + c + d
print(e)
20. 애플리케이션 테스트에 관한 다음 설명에서 괄호(1, 2)에 들어갈 알맞은 용어를 쓰시오.
| 하향식 통합 테스트는 프로그램의 상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트하는 기법이다. 깊이 우선 통합법이나 넓이 우선 통합법을 사용하며, 주어 제어 모듈의 종속 모듈들을 ( 1 )으로 대체한다는 특징이 있다. 상향식 통합 테스트는 프로그램의 하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트하는 기법이다. 하위 모듈들을 클러스터(Cluster)로 결합하며, 상위 모듈에서 데이터의 입출력을 확인하기 위해 더미 모듈은 ( 2 )를 작성한다는 특징이 있다. |
1. 스텁 (Stub)
2. 드라이버 (Driver)
'정보처리기사 > 2023 실기' 카테고리의 다른 글
| [2023실기] 3회 (1) | 2025.12.15 |
|---|---|
| [2023실기] 1회 (0) | 2025.12.14 |
