상세 컨텐츠

본문 제목

2023년 4월 정보처리산업기사 실기 기출 풀기

자격증/정보처리산업기사 실기

by 옹골찬진돌 2024. 6. 1. 13:03

본문

문제 1 ) 운영체제 운영 기법

ㄱ. 다중 프로그래밍 시스템 : 하나의 주기억장치에 2개 이상의 프로그램을 기억시켜 놓고, 하나의 CPU와 대화하면서 동시에 처리하는 방식

ㄷ. 시분할 시스템 : 컴퓨터가 사용자들의 프로그램을 번갈아 가며 처리해줌으로써 각 사용자에게 독립된 컴퓨터를 사용하  는 느낌을 주는 방식

ㄴ. 일괄 처리 시스템 : 일정량 또는 일정 기간 동안 데이터를 모아서 한꺼번에 처리하는 방식

ㄹ. 다중 처리 시스템 : 여러 개의 CPU와 하나의 주기억장치를 이용하여 하나 또는 여러 개의 프로그램을 동시에 처리하는   방식

 

문제 2 ) ERD(E-R Diagram)

사각형 개체(Entity) 타입
마름모 관계(Relationship) 타입
타원 속성(Attribute)
이중 타원 다중값 속성(복합 속성)
밑줄 타원 기본키 속성
복수 타원 복합 속성
ex. 성명은 성과 이름으로 구성
관계  1:1, 1:N, N:M 등의 개체 간 관계에 대한 대응수를 선 위에 기술함
선, 링크 개체 타입과 속성을 연결

 

문제 3 ) NAT(Network Address Translation, 네트워크 주소 변환)

=> 한 개의 정식 IP 주소에 대량의 가상 사설 IP 주소를 할당 및 연결하는 기능

=> 한 개의 IP 주소를 사용해서 외부에 접속할 수 있는 노드가 어느 시점에 한개로 제한되는 문제가 있지만

    IP 마스커레이드를 이용해 해결할 수 있다.

=> IP 부족 문제를 해결하기 위한 방법 중의 하나이다.

 

문제 4) 퀵 정렬/C언어 코드 문제

퀵 정렬이란?

=> 정렬할 대상 중 임의의 값을 키로 정한 후 그 키를 기준으로 키보다 작은 값은 키의 왼쪽에, 큰 값은 키의 오른쪽에 분류하고 각각을 서브단위로 분할하는 방식으로 정렬을 수행

 

문제 6 ) DCL(Data Control Language, 데이터 제어어)

=> COMMIT : 명령에 의해 수행된 결과를 실제 물리적 디스크로 저장하고, 데이터베이스 조작 작업이 정상적으로 완료되었음을 관리자에게 알려줌

=> ROLLBACK : 데이터베이스 조작 작업이 비정상적으로 종료되었을 때 원래의 상태로 복구함

=> GRANT : 데이터베이스 사용자에게 사용 권한을 부여함

=> REVOKE : 데이터베이스 사용자의 사용 권한을 취소함

 

*GRANT/REVOKE*

- 사용자등급 지정 및 해제

=> GRANT 사용자등급 TO 사용자_ID_리스트 [IDENTIFIED BY 암호];

=> REVOKE 사용자등급 FROM 사용자_ID_리스트;

 

-테이블 및 속성에 대한 권한 부여 및 취소

=> GRANT 권한_리스트 ON 개체 TO 사용ㅇ자 [WITH GRANT OPTION];

=> REVOKE [GRANT OPTION FOR] 권한_리스트 ON 개체 FROM 사용자 [CASCADE];

: 권한 종류 => ALL, SELECT, INSERT, DELETE, UPDATE 등

: WITH GRANT OPTION => 부여받은 권한을 다른 사용자에게 다시 부여할 수 있는 권한을 부여함

: GRANT OPTION FOR => 다른 사용자에게 권한을 부여할 수 있는 권한을 취소함

: CASCADE => 권한 취소 시 권한을 부여받았던 사용자가 다른 사용자에게 부여한 권한도 연쇄적으로 취소함

 

ex. 사용자 ID가 "STAR"인 사람에게 부여한 <고객> 테이블에 대한 권한 중 UPDATE 권한을 다른 사람에게 부여할 수 있는 권한만 취소하는 SQL문을 작성하시오.

: REVOKE GRANT OPTION FOR UPDATE ON 고객 FROM STAR;

 

*SAVEPOINT*

=> 트랜잭션 내에 ROLLBACK 할 위치인 저장점을 지정하는 명령어

=> 저장점을 지정할 때는 이름을 부여함

=> ROLLBACK 할 때 지정된 저장점까지의 트랜잭션 처리 내용이 모두 취소됨

 

ex. <사원> 테이블에서 '사원번호'가 40인 사원의 정보를 삭제한 후 COMMIT을 수행하시오.

사원번호 이름 부서
10 김기획 기획부
20 박인사 인사부
30 최재무 재무부
40 오영업 영업부

 

=> DELETE FROM 사원 WHERE 사원번호 = 40;

     COMMIT;

: DELETE 명령을 수행한 후 COMMIT 명령을 수행했으므로 DELETE 명령으로 삭제된 레코드는 이후 ROLLBACK 명령으로 되돌릴 수 없다.

 

문제 7 ) 관계대수 

** 각 연산자의 영어 이름도 알아야 함

  • 순수 관계 연산자
  • 일반 집합 연산자

*순수 관계 연산자*

- Select( σ

=> 릴레이션에 존재하는 튜플 중에서 선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션을 만드는 연산

=> 릴레이션의 에 해당하는 튜플을 구하는 것이므로 수평 연산이라고도 함

- Project(π)

=> 주어진 릴레이션에서 속성 리스트(Attribute List)에 제시된 속성 값만을 추출하여 새로운 릴레이션을 만드는 연산

=> 연산 결과에 중복이 발생하면 중복이 제거

=> 릴레이션의 에 해당하는 속성을 추출하는 것이므로 수직 연산자라고도 함

- Join(⋈)

=> 공통 속성을 중심으로 두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드는 연산

=> JOIN의 결과는 카티션 프로덕트(교차곱)를 수행한 다음 Select를 수행한 것과 같음

-Division(÷)

=> X ⊃ Y인 두 개의 릴레이션R(X)과 S(Y)가 있을 때, R의 속성이 S의 속성값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만을 구하는 연산

 

*일반 관계 연산자*

- 합집합 (∪) UNION

=> 두 릴레이션에 존재하는 튜플의 합집합을 구하되, 결과로 생성된 릴레이션에서 중복되는 튜플은 제거되는 연산

=> 카디널리티 : 합집합의 카디널리티는 두 릴레이션 카디널리티의 합보다 크지 않음.

**카디널리티 : 튜플의 수

- 교집합(∩) INTERSECTION

=> 두 릴레이션에 존재하는 튜플의 교집합을 구하는 연산.

=> 교집합의 카디널리티는 두 릴레이션 중 카디널리티가 적은 릴레이션의 카디널리티보다 크지 않음.

-차집합(-) DIFFERENCE

=> 두 릴레이션에 존재하는 튜플의 차집합을 구하는 연산

-교차곱(X) CARTESIAN PRODUCT

=> 두 릴레이션에 있는 튜플들의 순서쌍을 구하는 연산

=> 교차곱의 디그리는 두 릴레이션의 디그리를 더한 것과 같고, 카디널리티는 두 릴레이션의 카디널리티를 곱한 것과 같음.

 

문제 8 ) TCP 프로토콜

pre> 프로토콜?

: 서로 다른 기기 간의 데이터 교환을 원활히 수행할 수 있게 표준화시킨 통신 규약.

=> 프로토콜의 기본요소

구문(Syntax) 전송하고자 하는 데이터의 형식, 부호화, 신호 레벨 등을 규정함.
의미(Semantics) 두 기기 간 효율적이고 정확한 정보 전송을 위한 협조 사항과 오류 관리를 위한 제어 정보를 규정함.
시간(Timing) 두 기기 간 통신 속도, 메시지의 순서 제어 등을 규정함.

 

*TCP/IP*

: 인터넷에 연결된 서로 다른 기종의 컴퓨터들이 데이터를 주고받을 수 있도록 하는 표준 프로토콜.

프로토콜 내용
TCP
(Transmission Control Protocol)
- OSI 7계층의 전송 계층에 해당함.
- 가상 회선 방식을 기반으로 하는 연결형 서비스를 제공함.
- 패킷의 다중화, 순서 제어, 오류 제어, 흐름 제어 기능을 제공함.
IP
(Internet Protocol)
- OSI 7계층의 네트워크 계층에 해당함.
- 데이터그램 방식을 기반으로 하는 비연결형 서비스를 제공함.
- 패킷의 분해/조립, 주소 지정, 경로 선택 기능을 제공함.

 

문제 11 ) 빅뱅 테스트

*통합 테스트(Integration Test)*

: 단위 테스트가 끝난 모듈을 통합하는 과정에서 발생하는 오류 및 결함을 찾는 테스트 기법

=> 종류

** 방식의 이름이 힌트임!

비점진적 통합 방식 - 단계적으로 통합하는 절차 없이 모든 모듈이 미리 결합되어 있는 프로그램 전체를 테스트하      는 방법
- 종류 : 빅뱅 통합 테스트
점진적 통합 방식 - 모듈 단위로 단계적으로 통합하면서 테스트하는 방법
- 종류 : 하향식 통합 테스트, 상향식 통합 테스트, 혼합식 통합 테스트

 

** 빅뱅 통합 테스트

=> 모듈 간 상호 인터 페이스를 고려하지 않고 단위 테스트가 끝난 모듈을 한꺼번에 결합시켜 테스트하는 방법

=> 주로 소규모 프로그램이나 프로그램의 일부만을 대상으로 테스트 할 때 사용됨.

 

** 하향식 통합 테스트

: 프로그램의 상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트하는 기법

cf. 깊이 우선 통합법이나 넓이 우선 통합법 사용

=> 깊이 우선 통합법

: 주요 제어 모듈을 중심으로 해당 모듈에 종속된 모든 모듈을 통합하는 것. 다음 그림에 대한 통합 순서는 A1, A2, A3, A4, A5, A6, A7, A8, A9 순임.

=> 넓이 우선 통합법 

: 구조의 수평을 중심으로 해당하는 모듈을 통합하는 것. 다음 그림에 대한 통합 순서는 A1, A2, A3, A4, A5, A6, A7, A8, A9 순임.

 

=> 하향식 통합 테스트 절차

1. 주요 제어 모듈은 작성된 프로그램을 사용하고, 주요 제어 모듈의 종속 모듈들은 스텁으로 대체함.

2. 깊이 우선 또는 넓이 우선 등의 통합 방식에 따라 하위 모듈인 스텁들이 한 번에 하나씩 실제 모듈로 교체됨.

3. 모듈이 통합될 때마다 테스트 실시함.

4. 새로운 오류가 발생하지 않음을 보증하기 위해 회귀 테스트를 실시함.

 

** 상향식 통합 테스트

: 프로그램의 하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트하는 기법

=> 상향식 통합 테스트 절차

1. 하위 모듈들을 클러스터로 결합함.

*** 클러스터 : 하나의 주요 제어 모듈과 관련된 종속 모듈의 그룹을 의미함.

2. 상위 모듈에서 데이터의 입/출력을 확인하기 위해 더미 모듈드라이버를 작성함.

3. 통합된 클러스터 단위로 테스트함.

4. 테스트가 완료되면 클러스터는 프로그램 구조의 상위로 이동하여 결합하고 드라이버는 실제 모듈로 대체됨.

 

** 혼합식 통합 테스트

=> 하위 수준에서는 상향식 통합, 상위 수준에서는 하향식 통합을 사용해 최적의 테스트를 지원하는 방식임.

=> 샌드위치식 통합 테스트 방법이라고도 함.

 

** 회귀 테스팅

=> 회귀 테스트는 통합 테스트로 인해 변경된 모듈이나 컴포넌트에 새로운 오류가 있는지 확인하는 테스트임.

=> 이미 테스트된 프로그램의 테스팅을 반복하는 것임.

=> 회귀 테스트는 수정한 모듈이나 컴포넌트가 다른 부분에 영향을 미치는지, 오류가 생기지 않았는지 테스트하여 새로운       오류가 발생하지 않음을 보증하기 위해 반복 테스트함.

 

문제 13 ) IP 주소가 191.168.25.10이고, 서브넷 마스크가 255.255.252.0일 때 해당 네트워크의 네트워크 주소와 브로드캐                스트 주소를 써라.

- 원래 IP 주소는 이진수로 나타내지만 알아보기 쉽게 10진수로 문제와 같이 표현함.

 IP   => 10111111  10101000  00011001  00001010

SM => 11111111   11111111   11111100    00000000

: 0 -> 사용 가능, 1 -> 사용 불가능

 

IPv4 32비트로 구성되어 있는데 서브넷 마스크 11111111   11111111   11111100    00000000 에서 1로 이루어져 있는 부분까지는 사용을 할 수 없다.

그러면,

IP   => 10111111  10101000  00011001  00001010-> 해당하는 만큼까지 숫자를 바꾸면 안됨.

SM => 11111111   11111111   11111100    00000000 => 22개의 1

(중간에 0이 섞인 서브넷 마스크는 있을 수 없음. 앞에서부터 1111....)

IP 주소를 191.168.25.10/22로 표현할 수 있음.

=> 서브넷 마스크는 IP주소에서 어떤 거를 쓸 수 있고 못 쓰는 지를 표현하는 것.

 

IP 주소의 앞자리를 보고 클래스를 구분할 수 있음. => 문제의 IP주소는 B클래스임.

B클래스다의 의미 : 앞 두 자리는 고정 => 191.168. - . -

255.255. - . -

 

 

 

 

IP  191.168. - . - ~ 191 168 255 255 까지 쓸 수 있게 됨

SM 255.255. - . -

 

전체 호스트의 개수를 구할 때

B Class 255.255.0.0 : 11111111 11111111 00000000 00000000

=> 0이 16개. 16비트를 쓸 수 있음 : 2의 16승 = 65,536 

~ 191 168 255 255 : 주소가 65,536개가 존재함

근데  255.255.252.0 => 11111111  11111111 11111100 00000000 로 뒤에 6개까지 막음

6개 비트를 막게 되면 64개(2의 6승)의 네트워크가 생기는 것.

남은 0은 10개 => 1,024개(2의10승)의 호스트가 생김.(우리가 쓸 수 있는 것)

즉, 원래 주소가 65,536개 있는데 그 주소를 64명한테 1,024개씩 나눠주겠다 라고 해서

191.168.25.10

255.255.252.0

IP   => 10111111  10101000  00011001  00001010

SM => 11111111   11111111   11111100    00000000

위와 같이 서브네팅이 이미 계산이 된 것.

 

   255 255 255 255

-  255 255 252 0

=> 0   0    3    255

 

 

정답 ) 네트워크 주소 : 191.168.24.0

          브로드캐스트 주소 : 191.168.27.255

 

문제 14 ) OSI 참조 모델의 데이터 링크 계층

=> 두 개의 인접한 개방 시스템들 간 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 시스템 간 연결 설정과 유지 및 종료       를 담당함.

=> 송신 측과 수신 측의 속도 차이 해결을 위한 흐름 제어 기능을 함.

=> 프레임의 시작과 끝을 구분하기 위한 프레임의 동기화 기능을 함.

=> 오류의 검출과 회복을 위한 오류 제어 기능을 함.

=> 프레임의 순서적 전송을 위한 순서 제어 기능을 함.

=> HDLC, LAPB, LLC, MAC, LAPD, PPP 등의 표준이 있음.

=> 관련 장비 : 랜카드, 브리지, 스위치

 

문제 15 ) 교착상태(Dead Lock)

: 상호 배제에 의해 나타나는 문제점. 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상.

 

** 교착상태 발생의 필요 충분 조건

-> 네 가지 중 하나라도 충족되지 않으면 교착상태가 발생하지 않음.

1. 상호 배제(Mutual Exclusion) : 한 번에 한 개의 프로세스만이 공유 자원을 사용할 수 있어야 함.

2. 점유와 대기(Hold and Wait) : 최소 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용되고 있는 자원을                                                     추가로 점유하기 위해 대기하는 프로세스가 있어야 함.

3. 비선점(Non-preemption) : 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야 함.

4. 환형 대기(Circular Wait) : 공유 자원과 공유 자원을 사용하기 위해 대기하는 프로세스들이 원형으로 구성되어 있어 자                                                 신에게 할당된 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구해야 함.

 

문제 17 ) 데이터베이스 관리 시스템(DBMS)의 구성

=> DML 컴파일러 : 데이터 조작어 요청을 받으면 데이터베이스 처리기가 이해할 수 있도록 해석하는 모듈

=> 트랜잭션 관리자 : 접근한 사용자의 권한을 확인(인증)하고, 무결성 유지, 회복 및 병행작업 통제 등을 수행하는 모듈

 

문제 19 ) SQL 활용

check : 속성 값에 대한 제약 조건을 정의함

create table 사원

      (직원코드 number not null       '직원코드' 속성은 null을 갖지 않는다.

       성명 char(10) unique,             '성명' 속성은 중복 값을 허용하지 않는다.

       직책 char(10) check(직책 in ("사원", "대리", "과장", "팀장")),    '직책' 속성에는 '사원', '대리', '과장', '팀장' 중 하나의 값만 저장할 수 있다.

       연봉 number);

 

 

관련글 더보기