본문 바로가기

정보처리기사/실기기출

[정처기실기] 2021년 3회

https://chobopark.tistory.com/217

 

[2021년 3회] 정보처리기사 실기 기출문제!! (feat.복원)

안녕하세요. 2021년 3회 정보처리기사 실기 기출문제를 정리해보았습니다. 기출문제이면서 보완설명을 덧붙여 정리하였으니 도움이 되었으면 좋겠습니다. (녹색은 답 / 파랑색은 해설입니다.) 정

chobopark.tistory.com

 


 

( * Static * )

1. 다음 Java 코드에 대한 알맞는 출력값을 쓰시오.

 

class Connection {
  private static Connection _inst = null;
  private int count = 0;
    static public Connection get() {
      if(_inst == null) {
      _inst = new Connection();
      return _inst; 
      }
    return _inst;
    }
  public void count() { count ++; }
  public int getCount() { return count; }
}
 
public class testcon {
  public static void main(String[] args) {
    Connection conn1 = Connection.get();
    conn1.count();
    Connection conn2 = Connection.get();
    conn2.count();
    Connection conn3 = Connection.get();
    conn3.count();
    
    System.out.print(conn1.getCount());
  }
}

 

더보기

 

3


( static & singleton )

static 객체 _inst 를 만들어서 계속 사용.

    Connection conn1 = Connection.get();  =>  ( _inst = null )  Connection() 객체 생성
    conn1.count();                                        =>  count = 1
    Connection conn2 = Connection.get();  =>  기존_inst 객체 사용
    conn2.count();                                        =>  count = 2
    Connection conn3 = Connection.get();  =>  기존_inst 객체 사용
    conn3.count();                                        =>  count = 3

System.out.print( conn1.getCount() );      =>  3

conn1, conn2, conn3 모두 하나의 인스턴스를 공유하기 때문에 getCount() 를 실행하면 모두 3이 나온다.

 

 

 

( * 보안, DDos, 접근통제 * ) 

2. AAA, Triple-A라고 읽는 이 용어는 보안의 세 가지를 합쳐 축약한 용어이다. 다음 1~3에 해당하는 용어를 <보기>에서 찾아쓰시오.

[  Authentication, Application, Accounting, Ascii, Avalanche, Authorization  ]

1. 보안 기능에서, 사람이나 프로세스의 신분을 확인하는 것.

 (시스템을 접근하기 전에 접근 시도하는 사용자의 신원을 검증)

2. 검증된 사용자에게 어떤 수준의 권한과 서비스를 허용하는 것.

3. 사용자의 자원에 대한 사용 정보를 모아서 과금, 감사, 용량증설, 리포팅 등을 실시하는 것.

( 사용자의 자원 (시간,정보,위치 등)에 대한 사용 정보를 수집 )

 

더보기

 

1. Authentication (인증)

2. Authorization (인가) 

3. Accounting (계정관리)


* 보안의 3요소 *

기밀성 : 인가된 사용자만 데이터에 접근 가능

무결성 : 인가된 사용자만 데이터 수정 가능

가용성 : 인가된 사용자는 언제든지 사용 가능

=> 가용성을 해치는 공격 : Dos, DDos

 


* DDoS ( Distributed Denial of Service, 분산 서비스 거부 ) 공격

  분산된 공격 지점에서 한 곳의 서버에 대해 공격. 네트워크에서 취약점이 있는 호스트들에 분산 서비스 공격용 툴을 설치하여 에이전트(Agent)로 만든 후 DDoS 공격에 이용.


* 접근통제 *

 - DAC ( 임의 접근통제, Discretionary Access Control )

데이터 소유자가 권한 지정 및 제어 (GRANT, REVOKE)

 - Mac ( 강제 접근통제, Mandatory Access Control )

관리자(시스템)가 권한 지정 

- RBAC ( 역할기반 접근통제, Role Based Access Control )

사용자 역할에 따라 권한 부여 


* 강제 접근통제 (MAC)의 보안 모델

 

 - 벨 라파듈라 모델 (Bell-LaPadula Model) _  기밀성 강조

 > 군대 보안 레벨처럼, 기밀성에 따라 정보의 상하 관계 구분

 > 자신의 보안 레벨 이상의 문서 작성 가능, 자신의 보안 레벨 이하의 문서 읽기 가능 

 

 - 비바 무결성 모델 (Biba Integrity Model) _ 무결성 강조

 > 비인가자에 의한 데이터 변형을 방지.

 

 - 클락-윌슨 무결성 모델 (Clark-Wilson Integrity Model)

 

 - 만리장성 모델 (Chinese Wall Model)

 

 

 

 

 

3. 데이터 제어어(DCL)의 하나인 GRANT의 기능에 대해 간략하게 약술하시오. 

 

더보기

 

사용자에게 접속권한, 생성권한 등을 부여하는 명령어 (GRNAT TO)

* 사용자에게 부여한 권한을 다시 회수하는 명령어 => REVOKE (FROM) 


데이터 정의어 (DDL, Data Define Language) _ CREATE, ALTER, DROP

데이터 조작어 (DML, Data Manipulation Language)_ INSERT, UPDATE, DELETE, SELECT

데이터 제어어 (DCL, Data Control Language)_ GRANT, REVOKE, COMMIT, ROLLBACK

 

 

 

( * 공격, 스푸핑 * )

4. 다음 중, 설명에 대한 괄호( ) 안에 들어가는 내용에 대해 작성하시오.

( ) 스푸핑은 MAC주소를 속여 랜에서의 통신 흐름을 왜곡시키는 공격이다. 공격 대상 컴퓨터와 서버 사이의 트래픽을 공격자의 컴퓨터로 우회시켜 패스워드 정보 등 원하는 정보를 획득할 수 있다.

( ) 스푸핑은 근거리 통신망 하에서 ( ) 메시지를 이용하여 상대방의 데이터 패킷을 중간에서 가로채는 중간자 공격 기법이다. 이 공격은 데이터 링크 상의 프로토콜인 (  )를 이용하기 때문에 근거리상의 통신에서만 사용할 수 있는 공격이다. )

 

더보기

 

ARP 


* ARP (Address Resolution Protocol, 주소 결정 프로토콜) _ 인터넷계층

IP주소 => MAC주소 (물리적 주소)

 


* 스푸핑 (Spoofing) 

- IP 스푸핑

 > IP 자체의 보안 취약성을 악용한 것으로 자신의 IP주소를 속여서 접속하는 공격

 > IP 스푸핑을 통해 서비스 거부 공격(DoS)도 수행 가능하며 공격 대상 컴퓨터와 서버 사이의 연결된 세션을 끊을 수도 있다.

 > 종단 인증(end point authentication)같은 방법으로 해결한다.

 

- DNS 스푸핑

 >  공격대상에게 전달되는 DNS IP주소를 조작하여 의도치 않는 주소로 접속하는 공격

 > 공격대상은 정상적인 URL을 통해서 접속하지만, 실제로 가짜 사이트로 접속된다.

 

 

 

 

( * 결합도 * )

5. 다음은 Coupling에 대한 설명이다. 설명에 대한 Coupling 종류를 영문으로 작성하시오.

어떤 모듈이 다른 모듈의 내부 논리 조직을 제어하기 위한 목적으로 제어 신호를 이용하여 통신하는 경우의 결합도

하위 모듈에서 상위 모듈로 제어 신호가 이동하여 상위 모듈에게 처리 명령을 부여하는 권리 전도 현상이 발생.

(어떤 모듈이 다른 모듈을 호출할 때, 단순히 값만 전달되는 형태가 아닌 제어 신호를 전달할 떄 생기는 결합도)

 

더보기

 

제어결합도 (Control  Coupling)


모듈의 독립성 => 응집도는 높도, 결합도는 낮게


* 결합도 *

자료 결합도 (Data Coupling) : 모듈 간의 인터페이스로 값이 전달되는 경우

스탬프 결합도 (Stamp Coupling) : 모듈 간의 인터페이스로 배열이나 오브젝트 스트럭쳐 등이 전달되는 경우

제어 결합도 (Control Coupling) : 단순 처리할 대상인 값만 전달되는게 아니라

                                                     어떻게 처리를 해야 한다는 제어 요소가 전달되는 경우

외부 결합도 (External Coupling) : 어떤 모듈에서 선언한 데이터(변수)를 외부의 다른 모듈에서 참조하는 경우

공유 결합도 (Common Coupling) : 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 

                                                       전역변수를 갱신하는 식으로 상호 작용하는 경우.

내용 결합도 (Content Coupling) : 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우.


* 응집도 *

기능적 응집도 (Functional Cohesion) : 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우.

순차적 응집도 (Sequential Cohesion) : 모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우.

통신적 응집도 (Communication Cohesion) : 동일한 입력과 출력을 사용하여

                                                                         다른 기능을 수행하는 활동들이 모여있을 경우.

절차적 응집도 (Procedural Cohesion) : 모듈이 다수의 관련 기능을 가질 때

                                                               모듈 안의 구성 요소들이 그 기능을 순차적으로 수행할 경우.

시간적 응집도 (Temporal Cohesion) : 연관된 기능이라기보다는 특정 시간에 처리되어야 하는 활동들을

                                                            한 모듈에서 처리할 경우.

논리적 응집도 (Logical Cohesion) : 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이

                                                          한 모듈에서 처리되는 경우.

우연적 응집도 (Coincidental Cohesion) : 모듈 내부의 각 구성 요소들이 연관이 없을 경우.

 

 

 

 

( * OSI 7계층 * )

6. OSI 7 Layer의 설명으로 해당되는 설명의 답을 작성하시오.

 

1. 물리계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행할 수 있도록 도와주는 역할

2. 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능

3. 수신자에서 데이터의 압축을 풀수 있는 방식으로 된 데이터 압축

 

더보기

 

1. 데이터링크 계층

2. 네트워크 계층 

3. 표현 계층 


* OSI 7계층 *

응용 계층 (Application Layer) _ 응용프로그램 

표현 계층 (Presentation Layer) _ 응용 계층의 데이터 암호화 (인코딩/디코딩) 

세션 계층 (Session Layer) _ 서로 연결 확립 (TCP/IP 세션) 

전송 계층 (Transport Layer) _ 양 종단간 신뢰성 있는 정보 전달, 세그먼트

네트워크 계층 (Network Layer) _ 데이터를 빠르게 전달, 패킷 (라우터)

데이터 링크 계층 (Data Link Layer) _ 인접한 노드들 간 데이터 전달(MAC주소로 통신), 프레임 (브리지) 

물리 계층 (Physical Layer) _ 전기적 신호 전달 (허브, 리피터, 케이블)

 

계층별 프로토콜 **

* 참고 *  (2020년 _3회)

* SMURFING 스머핑 : IP / ICMP 의 특성을 이용한 Dos 공격

* 라우팅 프로토콜 

 

 

 

( * UML, 관계 * )

7. 다음 중, 설명에 대한 괄호 ( ) 안에 들어갈 알맞는 보기를 고르시오.

(실제 기출문제에서는 답에 대한 영어용어의 보기가 주어집니다.)

눈에 보이지 않는 것을 개념적으로 표현하는 것이 '추상화'라하며, 
이는 실세계의 복잡한 상황을 간결하고 명확하게 개념화(槪念化)하는 것이다.


(  1  )은 클래스들 사이의 전체 또는 부분 같은 관계를 나타내는 것이고,  

(  2  )은 한 클래스가 다른 클래스를 포함하는 상위 개념일 때 IS-A관계라하며, 일반화 관계로 모델링한다.

 

더보기

 

(1) Aggregation (집합 관계)

(2) Generalization (일반화 관계)


* UML ( Unified Modeling Language )

시스템 분석, 설계, 구현 등 시스템 개발 과정에서 개발자 및 고객 상호간의 의사소통이 원활하게 이루어지도록 표준화한 객체지향 모델링 언어.

* UML 구성요소 : 사물(Things), 관계(Relationships), 다이어그램(Diagram)


* 관계 ( Relationships )

 - 연관 관계 (Association) : 2개 이상 사물이 서로 관련된 관계. 

 - 집합 관계 - 집약관계 (Aggregation) : 한 객체가 다른 객체를 소유하는 'has a' 관계. 

 - 집합 관계 - 합성(포함)관계 (Composition) : 부분 객체가 전체 객체에 속하는 관계로 긴밀한 필수적 관계

 - 일반화 관계 (Generalization) : 한 클래스가 다른 클래스를 포함하는 상위 개념일 때의 관계.  ('is a')

 - 의존 관계 (Dependency) : 연관 관계와 같이 한 클래스가 다른 클래스에서 제공하는 기능을 사용할 때 표시.

 - 실체화 관계 (Realization) : 한 객체가 다른 객체에게 오퍼레이션을 수행하도록 지정. (추상클래스/추상메서드)


 

* 구조(Structural) 다이어그램

 - 클래스 다이어그램 (Calss Diagram)

 - 객체 다이어그램 (Object Diagram)

 - 컴포넌트 다이어그램 (Component Diagram)

 - 배치 다이어그램 (Deployment Diagram)

 - 복합체 구조 다이어그램 (Composite Structure Diagram)

 - 패키지 다이어그램 (Package Diagram)

 

* 행위(Behavioral) 다이어그램

 - 유스케이스 다이어그램 (Use Case Diagram)

 - 순차 다이어그램 (Sequence Diagram)

 - 콜라보레이션 다이어그램 (Collaboration Diagram)

 - 통신 다이어그램 (Communication Diagram)

 - 상태 다이어그램 (State Diagram)

- 활동 다이어그램 (Activity Diagram)

 - 상호작용 개요 다이어그램 (Interaction Overview Diagram)

 

 

 

 

8. 다음은 테스트케이스의 구성요소에 대한 설명이다. 괄호 ( ) 안에 들어갈 알맞는 보기를 고르시오.

(실제 기출문제에서는 답에 대한 보기가 주어집니다.)

 

더보기

 

(1) 테스트 조건

(2) 테스트 데이터

(3) 예상 결과 

 

 

 

( * 애플리케이션 테스트, 블랙박스 테스트 * )

9. 다음 중, 설명에 대한 괄호 ( ) 안에 들어갈 알맞는 보기를 고르시오.

(  ) 통해 요구사항 명세를 입력 조건과 출력 조건 간의 논리적 관계로 표현하고, 이를 기반으로 테스트케이스를 도출한다.(  )의 ‘원인(causes)’은 입력 조건을 의미하고 ‘결과(effects)’는 입력 조건의 결과를 의미하며,
원인과 결과 간의 논리적 관계를 AND, OR, NOT 같은 boolean 연산자를 사용하여 표현한다.

( 테스트 기법 중, 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석하여 효용성 높은 검사 사례를 선정하여 검사하는 기법. )

<보기>

Equivalence Partitioning, Boundary Value Analysis, Cause-effect Graphing,

Fault based, Base Path Test, Loop Test, Comparison Testing 

 

더보기

 

Cause-effect Graphing (원인-효과 그래프 검사) 


* 블랙박스 테스트 _ 입출력값 

 - Equivalence Partitioning Testing (동치 분할 검사 / 동치 클래스 분해)

 - Boundary Value Analysis (경계값 분석)

 - Cause-effect Graphing Testing (원인-효과 그래프 검사)

 - Error Guessing (오류 예측 검사)

 - Comparison Testing (비교 검사) 

 

* 화이트박스 테스트 _ 소스코드

 - Base Path Testing (기초 경로 검사)

 - Control Structure Testing (제어 구조 검사)

   > Condition Testing (조건 검사)

   > Loop Testing (루프 검사)

   > Data Flow Testing (데이터 흐름 검사)

 

 

 

 

(2021_2회) ( * 암호화 * )

10. 다음 중, 설명에 대한 괄호 ( ) 안에 들어갈 알맞는 보기를 고르시오.

(   )는 블록 암호의 일종으로, 미국 NBS (National Bureau of Standards, 현재 NIST)에서 국가 표준으로 정한 암호화 알고리즘이나 취약점이 발견되어 현재는 잘 사용되지 않는다. (   )는 64비트 평문을 64비트 암호문으로 암호화하는 대칭키 암호 알고리즘이다. (   )의 키는 7비트마다 오류검출을 위한 정보가 1비트씩 들어가기 때문에 실질적으로는 56비트이다.

( 블록 크기는 64비트, 키 길이는 56회이며 16라운드를 수행한다. 페이스텔(Feistel) 구조를 사용. )

 

더보기

 

DES ( Data Encryption Standard )

=> DES의 취약점을 보완하기 위해 만들어진 고급 암호화 표준 방식 : AES ( Advanced Encryption Standard )


 * 암호화(Encryption) : 평문 => 암호문

 * 복호화(Decryption)  : 암호문 => 평문


* 암호화 종류

 - 양방향 : 대칭키, 비대칭키

 - 단방향 : Hash 함수


* 대칭키 (비밀키, 개인키)

 - 동일한 키로 데이터를 암호화/복호화

 - Stream : LFSR, RC4

 - Block 방식 : DES, AES, IDEA

 

* 비대칭키 (공개키)

 - 암호화 시 공개키(Public Key)사용, 복호화 시 비밀키(Secret Key)사용.

 - 인수분해 이용 : RSA, Robin

 - 이산대수 : Elgamal, DSA

 - 타원곡선 : ECC

 

 

 

 

11. 다음 Java 코드에 대한 알맞는 출력값을 쓰시오.

public class testco {
 public static void main(String[] args) {
  int a = 3, b = 4, c = 3, d = 5;
  if((a == 2 | a == c) & !(c > d) & (1 == b ^ c != d)) {
   a = b + c;
    if(7 == b ^ c != a) {
     System.out.println(a);
    } else {
    System.out.println(b);
    }
  } else {
    a = c + d;
    if(7 == c ^ d != a) {
    System.out.println(a);
    } else {
    System.out.println(d);
    }
  }
 }
}

 

더보기

 

7


 if((a == 2 | a == c) & !(c > d) & (1 == b ^ c != d)) {

       false  |  true     &     true   &    false  ^  true               ( ^ : XOR (배타적 OR)_같으면 거짓, 다르면 참)

               true          &     true    &          true   

      a = b + c;     =>  a = 7

         if( 7 == b ^ c != a) {

               false  ^  true  =>  true

              System.out.println(a);     =>  7

          }

}

 

 

 

 

( * 포인터 * )

12. 다음 C언어에 대한 알맞는 출력값을 쓰시오.

#include <stdio.h>
 
int main(){
int *arr[3];
int a = 12, b = 24, c = 36;
arr[0] = &a;
arr[1] = &b;
arr[2] = &c;
 
printf("%d\n", *arr[1] + **arr + 1);
 
}

 

더보기

 

37


int *arr[3];                      => 포인터배열 

   a   =  __    __    __        (주소값을 가지는 배열)

100   100

a = 12 , b = 24 , c = 36

   10         20         30

arr[0] = &a;                  => a의 0번째 요소에 a의 주소값 할당

   a   =  10    __    __        

100   100

arr[1] = &b;                   => a의 1번째 요소에 b의 주소값 할당   

arr[2] = &c                    => a의 2번째 요소에 c의 주소값 할당

   a   =  10    20    30        

100   100

 

  *arr[1]   +   **arr   +   1 

    24       +     12    +    1  =  37

              *(*arr)  => 10번지의 값

 

 

 

 

13. 다음은, 테이블에서 조건값을 실행한 화면이다. 이에 대한 알맞는 결과값을 작성하시오.

 

더보기

 

4


SELECT COUNT(*) AS CNT FROM A CROSS JOIN WHERE A.NAME LIKE B.NAME

T2에서 s% 에 해당하는 T1의 행의 갯수 = 2

T2에서 %t% 에 해당하는 T1의 행의 갯수 = 2

 

 

 

 

14. 다음 파이썬 코드이다. 알맞는 출력값을 쓰시오.

a,b = 100, 200 
print(a==b)

 

더보기

 

False


a = 100

b = 200

 

 

 

( * 다이어그램 * )

15. 다음 중, 설명에 대한 괄호 ( ) 안에 들어갈 알맞는 답을 작성하시오.

(  ) 다이어그램은 문제 해결을 위한 도메인 구조를 나타내어 보이지 않는 도메인 안의 개념과 같은 추상적인 개념을 기술하기 위해 나타낸 것이다.                                                                                                     연관, 상속, 의존 관계 등 상호작용

또한 소프트웨어의 설계 혹은 완성된 소프트웨어의 구현 설명을 목적으로 사용할 수 있다.

(  ) 다이어그램의 형식은 (  )를 포함하여 속성(attribute)과 메서드(method)가 있다.

                                                                                           일정한 행동(behavior)

더보기

 

클래스 다이어그램 ( Class Diagram ) _ 구조적(Structural) 다이어그램


* UML ( Unified Modeling Language )

시스템 분석, 설계, 구현 등 시스템 개발 과정에서 개발자 및 고객 상호간의 의사소통이 원활하게 이루어지도록 표준화한 객체지향 모델링 언어. 

* UML 구성요소 : 사물 (Things), 관계 (Relationships), 다이어그램(Diagram)


* 관계 ( Relatioinships )

 - 연관 관계 (Association)

 - 집합 관계 (Aggregation)

 - 포함 관계 (Composition)

 - 일반화 관계 (Generalization)

 - 의존 관계 (Dependency)

 - 실체화 관계 (Realization)


* 다이어그램 ( Diagram )

 [ 구조적(Structural) 다이어그램 ]

 - 클래스 다이어그램 (Class Diagram) : 시스템을 구성하는 클래스들 사이의 관계를 표현. 

 - 객체 다이어그램 (Object Diagram) : 객체 정보를 보여줌.

 - 컴포넌트 다이어그램 (Component Diagram) : 컴포넌트 구조 사이의 관계를 표현.

 - 배치 다이어그램 (Deployment Diagram) 

   소프트웨어, 하드웨어, 네트워크를 포함한 실행시스템의 물리구조를 표현.

 - 복합체 구조 다이어그램 (Composite Structure Diagram) : 복합 구조의 클래스와 컴포넌트 내부 구조를 표현. 

 - 패키지 다이어그램 (Package Diagram) 

   클래스나 유스 케이스 등을 포함한 여러 모델 요소들을 그룹화하여 패키지를 구성하고, 

   패키지들 사이의 관계를 표현. 

 

 [ 행위(Behavioral) 다이어그램 ]

  - 유스케이스 다이어그램 (Use Case Diagram) : 사용자 관점에서 시스템 행위를 표현. (Actor / Use Case)

 - 순차 다이어그램 (Sequence Diagram) : 시간 흐름에 따른 객체 사이의 상호작용을 표현. 

 - 콜라보레이션 다이어그램 (Collaboration Diagram)

   순차 다이어그램 (Sequence Diagram)과 같으며 모델링 공간에 제약이 없어 구조적인 면을 중시. 

 - 통신 다이어그램 (Communication Diagram) : 객체 사이의 관계를 중심으로 상호작용을 표현. 

                                                                                              순차 다이어그램 + 객체 간의 관계.

 - 상태 다이어그램 (State Diagram) : 객체의 생명주기를 표현. 

 - 활동 다이어그램 (Activity Diagram) : 업무 처리 과정이나 연산이 수행되는 과정을 표현. 

 - 상호작용 개요 다이어그램 (Interaction Overview Diagram) : 여러 상호작용 다이어그램 사이의 제어 흐름 표현. 

 - 타이밍 다이어그램 (Timing Diagram) : 객체 상태 변화와 시간 제약을 명시적으로 표현. 

 

 

 

( * 디자인패턴 * )

16. 다음 중, 설명에 대한 괄호 ( ) 안에 들어갈 알맞는 보기를 고르시오.

 

[ Abstract Factory, FactoryMethod, Prototype, Builder, Observer,

  Facade, Composite, Template Method, Singleton ]

 - 객체 생성 처리를 서브 클래스로 분리해 처리하도록 캡슐화하는 패턴

 - 객체의 생성 코드를 별도의 클래스/메서드로 분리함으로써 객체 생성의 변화에 대비하는 데 유용하다.

 - 상위클래스에서 객체를 생성하는 인터페이스를 정의하고, 하위클래스에서 인스턴스를 생성하도록 하는 방식.

 - Virtual - Constructor 패턴이라고도 함.

( 부모(상위) 클래스에 알려지지 않은 구체 클래스를 생성하는 패턴이며, 
자식(하위) 클래스가 어떤 객체를 생성할지를 결정하도록 하는 패턴이기도 하다. )

(부모(상위) 클래스 코드에 구체 클래스 이름을 감추기 위한 방법으로도 사용한다. )

 

더보기

 

FactoryMethod

 

 

 

( * 포인터, 구조체(struct) * )

17. 다음 C언어에 대한 알맞는 출력값을 쓰시오.

#include <stdio.h>
 
struct jsu {
  char name[12];
  int os, db, hab, hhab;
};
 
int main(){
struct jsu st[3] = {{"데이터1", 95, 88}, 
                    {"데이터2", 84, 91}, 
                    {"데이터3", 86, 75}};
struct jsu* p;
 
p = &st[0];
 
(p + 1)->hab = (p + 1)->os + (p + 2)->db;
(p + 1)->hhab = (p+1)->hab + p->os + p->db;
 
printf("%d\n", (p+1)->hab + (p+1)->hhab);
}

 

더보기

 

501


* struct : 구조체 

 

struct jsu st[3] = { {"데이터1", 95, 88}, {"데이터2", 84, 91}, {"데이터3", 86, 75} }

                                       100                         200                           300

                                     10번지                    11번지                      12번지

struct jsu* p;            =>  구조체 jsu를 참조하는 포인터 변수 P 선언. 

p = &st[0];               =>  P = 10번지  ( & : 메모리주소를 의미 )

(p + 1) -> hab = (p + 1) -> os + (p + 2) -> db;

11번지의 hab값 = 11번지의 os값 + 12번지의 db값

                          =              84       +           75              =   159

(p + 1)->hhab = (p+1)->hab + p->os + p->db;

11번지의 hhab값 = 11번지의 hab값 + 10번지의 os값 + 10번지의 db값

                          =              159          +           95         +           88               =   342

printf("%d\n", (p+1)->hab + (p+1)->hhab);

                              159     +      342             =     501

 

 

 

 

18. 다음은, 파일 구조(File Structures)에 대한 설명이다. 괄호 ( ) 안에 들어갈 알맞는 답을 작성하시오.

파일구조는 파일을 구성하는 레코드들이 보조기억장치에 편성되는 방식을 의미하는 것으로, 편성 방법에 따라 순차, (  ), 랜덤, 해싱 등이 있다.

(  )은 순차 처리와 랜덤 처리가 모두 가능하도록 레코드들을 키 값 순으로 정렬하여 기록하여 데이터에 접근한다. 자기디스크에서 주로 사용된다.

( 접근 방법중, 레코드들을 키-값 순으로 정렬하여 기록하고, 레코드의 키 항목만을 모은 (  )을 구성하여 편성하는 방식이 있으며, 레코드를 참조할 때는 (   ) 이 가르키는 주소를 사용하여 직접 참조할 수 있다. 파일 구조에는 순차 접근, (  ) 접근,  해싱 접근이 있다. )

 

더보기

 

색인 (Index)


* 파일의 구조

 - 순차 파일 (Sequential File, 순서 파일)

  > 순차 파일은 레코드를 논리적인 처리 순서에 따라 연속된 물리적 공간으로 기록하는 것

 - 직접 파일 (Direct File)

  > 파일을 구성하는 레코드를 임의의 물리적 저장공간에 기록하는 것

 - 색인 순차 파일 (Indexed Sequential File)

  > 순차 파일과 직접 파일에서 지원하는 편성 방법이 결합된 형태

 

 

 

( * UI설계원칙 * )

19. 다음 설명에 대한 알맞는 답을 영문약어로 작성하시오.

(  )는 사용자가 그래픽을 통해 컴퓨터와 정보를 교환하는 환경을 말한다.
이전까지 사용자 인터페이스는 키보드를 통해 명령어로 작업을 수행시켰지만 
(   )에서는 키보드 뿐만 아니라 마우스 등을 이용하여 화면의 메뉴 중 하나를 선택하여 작업을 수행한다.
화면에 아이콘을 띄어 마우스를 이용하여 화면에 있는 아이콘을 클릭하여 작업을 수행하는 방식이다.
대표적으로는 마이크로소프트의 Windows, 애플의 Mac 운영체제 등이 있다.

( Windows나 Mac OS 등에서 사용하는 인터페이스로, 사용자가 명령을 직접 입력하지 않고, 아이콘 등을 클릭하여 작업을 수행하는 사용자 인터페이스 )

 

더보기

 

GUI ( Graphical User Interface )

 


* 사용자 인터페이스 (User Interface) *

 - CLI ( Command Line Interface ) = ( CUI, Character User Interface ) :

     명령과 출력이 텍스트 형태로 이뤄지는 인터페이스 (키보드사용)

 - NUI ( Natural User Interface ) : 사용자의 말이나 행동으로 기기를 조작하는 인터페이스

 - VUI ( Voice User Interface ) : 사람의 음성으로 기기를 조작하는 인터페이스

 - OUI ( Organic User Interface ) : 모든 사물과 사용자 간의 상호작용을 위한 인터페이스 

       사물 인터넷(Internet of Things), 가상현실(Virtual Reality), 증강현실(Augmented Reality)...


* UI의 4가지 기본원칙 

 - 직관성 : 누구나 쉽게 이해하고 사용.

 - 유효성 : 사용자 목적을 정확하고 완벽하게 달성. 

 - 학습성 : 누구나 쉽게 배우고 익힘. 

 - 유연성 : 사용자 요구사항을 최대한 수용. 

 

 

 

( * 애플리케이션 테스트, 통합 테스트 / 소프트웨어 개발 방법론 * )

20. 다음은 소프트웨어 통합 테스트에 대한 설명이다.  괄호 ( ) 안에 들어갈 알맞는 답을 작성하시오.

 

(  1.  ) 방식은 이름에서도 알 수 있듯이, 하위 모듈부터 시작하여 상위 모듈로 테스트를 진행하는 방식이며,

이 방식을 사용하기 위해서는 상위 모듈의 역할을 하는 (  2. )가 필요하다.

(   2.   )는 이미 존재하는 하위 모듈과 존재하지 않은 상위 모듈에 대한 인터페이스 역할을 한다.

 

더보기

 

1. 상향식 테스트

2. 테스트 드라이버 


 

* V모델과 테스트 레벨

 

요구사항 분석                                                      인수테스트 _ 알파(with개발자) /베타(사용자) 테스트  

     기능명세 분석                                      시스템 테스트 _ 기능/비기능 테스트 

                      설계                           통합 테스트 _  상향식(드라이버) /하향식(스텁) /빅뱅 /백본(상향식+하향식)

                            개발            단위 테스트  _ 정적/동적 테스트

 


 

* 소프트웨어 개발 방법론

 - 폭포수 모형 (Waterfall Model) _ 선형순차모델

 - 프로토 타입 _ 시제품, 사용자 적극 참여 

 - 나선형 모형 (Spiral Model, 점진적 모형) _ 보헴

    계획 수립 - 위험 분석 - 개발 및 검증 - 고객 평가

 - RAD 모델 (Rapid Application Development) _ *CASE도구 활용,  빠른 개발, 사용자 적극 참여 

 - 애자일 모형 (Agile Model) _ 고객소통에 초점

  > XP (eXtreme Programming)  _ 고객참여 & 짧고 반복적인 개발

   5가지 핵심 가치 : 의사소통(Communication), 피드백(Feedback), 존중(Respect),

                                 용기(Courage), 단순성(Simplicity)

  > 스크럼 (Scrum)  _ 팀중심 개발


 * CASE ( Computer - Aided Software Engineering )

소프트웨어 개발 시 요구사항 분석을 위한 자동화 도구    ( *CAD _ Computer-Aided Design )

 

 

 


 

https://www.youtube.com/watch?v=RAlRlle0hxg&list=PLniy99c_7ZfpDRzBXv1ryJbW-KnHGp1Az&index=8

 

'정보처리기사 > 실기기출' 카테고리의 다른 글

[정처기실기] 2022년 2회 *  (0) 2024.03.24
[정처기실기] 2022년 1회  (0) 2024.03.16
[정처기실기] 2021년 2회  (0) 2024.02.22
[정처기실기] 2021년 1회  (0) 2024.02.09
[정처기실기] 2020년 2회  (0) 2024.02.08