Daily Front_Minhhk

2021년 1~3회 본문

정보처리기사/기출

2021년 1~3회

Minhhk 2023. 4. 13. 19:03

물리 네트워크 주소에 해당하는 IP 주소를 알려주는 역순 주소 결정 프로토콜은?

>> RARP

  • (물리적설계)는 DBMS의 특성 및 성능을 고려하여 데이터 베이스 저장 구조로 변환하는 과정으로 결과로 나오는 명세서는 테이블 정의서 등이 있다.

  • (개념적설계)는 현실 세계에 대한 인식을 추상적, 개념적으로 표현하여 개념적 구조를 도출하는 과정으로 주요 산출물에는 E-R다이어 그램이 있다.

  • (논리적설계)는 목표 DBMS에 맞는 스키마 설계, 트랜잭션 인터페이스를 설계하는 정규화 과정을 수행한다.

 

 

웹 서비스명, 제공 위치, 메시지 포맷, 프로토콜 정보 등 웹 서비스에 대한 상세 정보가 기술된 XML 형식으로 구성된 언어는?

=> WSDL (Web Service Description Language)

 

 

 

(기능적) 요구 사항은 시스템이 제공하는 기능, 서비스에 대한 요구사항이다

(비기능적) 요구 사항은 시스템이 수행하는 기능 이외의 사항, 시스템 구축에 대한 제약사항에 관한 요구사항이다

 

 

class Soojebi:
  li = ["Seoul", "Kyeonggi", "Inchon", "Daejeon", "Daegu", "Pusan"]

s = Soojebi()
str01 = ''
for i in s.li:
  str01 = str01 + i[0]

print(str01)
 

 

li 수만큼 반복 돌며 각 요소의 i[0] 맨앞글자씩 따서 누적 >>

>> SKIDDP

  • 정규화된 엔티티, 속성 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법은?

=> 반정규화

  • 블랙박스 기법에 대한 예제. 블랙박스 기법 두가지를 쓰시오.
  1. 0 <= x <= 10 이면, -1, 0, 10, 11 검사
  2. 유횻값 무효 값 나누어서 검사

1 >> 경계값 분석

2 >> 동등분할 검사

 

 

  • 테스트 종류 해당 하는 것은?
  1. 개별모듈, 서브루틴이 정상적으로 실행되는지 확인
  2. 인터페이스 간 시스템이 정상적으로 실행되는지 확인

1 >> 단위 테스트

2 >> 통합테스트

 

 

  • IPv6는 (128)비트 길이를 가진다
  • Ipv4는 길이 32bit며, (8)비트씩 네부분 으로 나눈다

  • 공유메모리, 소켓, 세마포어, 메시지 큐 등 프로세스 간 통신하는 기술은?

=>

IPC(Inter-Process Communication)

  • 시스템 통합에 사용되는 솔류션으로 구축 유형에는 Point to Point, Hub & Spoke, Message Bus가 있다. 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션 간의 정보를 전달, 연계 통합이 가능하도록 해주는 솔루션은 무엇이라고 하는가?

=>

EAI(Enterprise Application Integration)

#include <studio.h>
struct Soojebi {
  char name[10];
  int age;
};

void main() {
  struct Soojebi s[]={"Kim", 28, "Lee", 38, "Seo", 50, "Park", 35};

  struct Soojebi *p;
  p = s;
  p++; // 포인터 값 1증가
  printf("%s\n", p->name);
  printf("%s\n", p->age);
}
 

>>

Lee

38

데이터 모델의 구성요소? (연산, 구조, 제약조건)

  • 개체 데이터 모델에서는 (연산)를 이용하여 실제 데이터를 처리하는 작업에 대한 명세를 나타내는데 논리 데이터 모델에서는 (구조) 를 어떻게 나타 낼 것인지 표현한다.
  • 제약 조건은 데이터 무결성 유지를 위한 DB의 보편적 방법으로 릴레이션의 특정 칼럼에 설정하는 제약을 의미하며, 개체 무결성과 참조 무결성 등이 있다.

  • 시스템 객체의 접근을 개인 또는 그룹의 식별자에 기반을 둔 방법으로, 어떤 종류의 접근 권한을 가진 사용자가 다른 사용자에 자신의 판단에 따라 권한을 허용하는 접근제어 방식은?

>>

DAC(Discretionary Access Control) // 임의적 접근통제

 

 

 


(Mandatory Access Control)
주체, 객체 등급기반
접근권한 부여
(Discretionary Access Control)
접근 주체 신분기반
접근권한 부여
(Role-Based Access Control)
주체, 객체 역할기반
권한 부여

결합도의 유형 (강 > 약)

//

내용 결합도 :

다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우

공통 결합도 :

파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 전역 변수를 갱신하는 식으로 상호 작용하는 경우의 결합도

외부 결합도 :

  1. 두 개의 모듈이 외부에서 도입된 데이터 포맷, 통신 프로토콜, 또는 디바이스 인터페이스를 공유할 경우의 결합도
  2. 외부 모듈에서 선언한 데이터를 외부의 다른 모듈에서 참조할 때의 결합도

제어 결합도 :

  1. 어떤 모듈이 다른 모듈의 내부 논리 조직을 제어하기 위한 목적으로 제어 신호를 이용하여 통신하는 경우의 결합도,,
  2. 하위모듈에서 상위 모듈로 제어 신호가 이동하여 상위 모듈에게 처리 명령을 부여하는 권리 전도 현상이 발생하는 결합도

스탬프 결합도 :

  1. 모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달 되는 경우의 결합도,,
  2. 두 모듈이 동일한 자료 구조를 조회하는 경우의 결합도

자료 결합도 :

  1. 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 간의 상호 작용이 일어나는 경우의 결합도,,
  2. 한 모듈의 내용을 변경하더라도 다른 모듈에는 영향을 미치지 않는 상태로, 가장 바람직한 결합도

세션 하이재킹


  • 노드들에 의해 자율적을 구성되는 기반 구조가 없는 네트워크로 네트워크의 구성 및 유지를 위해 기지국이나 액세스 포인트와 같은 기반 네트워크 장치를 필요로 하지 않는 네트워크
  • 노드들은 무선 인터페이스를 사용하여 서로 통신하고, 멀티 홉 라우팅 기능에 의해 무선 인터페이스가 가지는 통신 거리상의 제약을 극복하며 노드들의 이동이 자유롭기 때문에 네트워크 토폴로지가 동적으로 변화되는 특징
  • 응용 분야로는 긴급 구조, 긴급회의, 전쟁터에서 군사 네트워크 등이 있다

>>

애드 혹 네트워크

  1. 사람의 감정이나 경험을 나타내는 개념
  2. 사용자 인터페이스, CLI가 대표적인 예시

1 >> UX (User Experience)

2 >> UI (User Interface) - (CLI GUI NUI OUI)

 

 

a=100
i=0
result = 0
for i in range(1,3):   // 1~2 번
  result = a >> i
  result += 1

print(result)

a >> i 는

100 >> 1 은 100 / 2^1 => 50,,

100 >> 2 은 100 / 2^2 => 25,,

result += 1 은 25에 +1

정답 : 26

 

 

 

데이터의 내용을 변경할 때는 UPDATE SET WHERE 을 사용한다.

조인 조건 >> JOIN ON

 

 

트랜잭션(원일격지)의 원자성?

=>

구성 되는 연산 전체가 모두 실행되거나, 실패되어야 하는 성질

미국 표준 기술 연구소(NIST)에서 발표한 블록 암호화 알고리즘으로 DES의 성능 문제를 극복하기 위해 개발 된 128bit의 블록 크기를 갖는 보안 알고리즘은 무엇인가?

=>

AES

 

 

6번

#include <studio.h>
void main() {
  int ary[3] = {1}; // 0번지 값이 1, 1~2번지 값은 0
  int s = 0;
  int i = 0;

  ary[1] = *(ary+0)+2; // ary[0] == 1 + 2 => 3
  ary[2] = *ary+3; // ary 값 == 1 + 3 => 4

  for(i=0; i<3; i++){ // 0~2 3번, 
    s = s + ary[i]; // 1 + 3 + 4
  }
  printf("%d", s);
}

1+3+4 = 8

 

 

10번

class ovr1 {
    public static void main (String[] args){
        ovr1 a1 = new ovr1();
        ovr2 a2 = new ovr2();

        System.out.print(a1.san(3,2) + a2.san(3,2));
    }
    int san(int x, int y){
        return x+y;
    }
}

class ovr2 extends ovr1{
    int san(int x, int y){
        return x - y + super.san(x,y);
    }
}

 ===
11

 

 

 

럼바우 데이터 모델링 유형?

  1. 프로세스들의 자료 흐름을 중심으로 처리 과정을 표현하는 모델링으로 자료 흐름도(DFD)를 활용하여 표현
  2. 시간의 흐름에 따라 객체들 사이의 제어 흐름, 동작 순서 등의 동적인 행위를 표현하는 모델링으로 상태 다이어그램을 활용하여 표현
  3. 시스템에서 요구하는 객체를 찾고 객체간의 관계를 정의하여 E-R 다이어그램을 만드는 과정까지의 모델링으로 시스템에서 요구하는 객체를 찾고 객체 간의 관계를 정의하여 E-R다이어그램을 만드는 과정까지의 모델링

보기 영문 예시 중 선택;

1 > Functional

2 > Dynamic

3 > Information || Object

 

 

 

 

화이트 박스 테스트 검증 기준(=커버리지) 를 쓰시오

  1. 최소 한번은 모든 문장 수행
  2. 결정 검증 기준이라고도 함. 조건별 True/False 일 때 수행
  3. 전체 조건식에 상관없이 개별 조건식의 True/False에 대해 수행

1 > 구문 || 문장

2 > 분기 || 결정

3 > 조건

 

 

 

같은 자원을 액세스하는

다중 트랜잭션 환경에서 DB의 일관성과 무결성을 유지하기 위해

트랜잭션의 순차적 진행을 보장하는 직렬화 기법?

=>

로킹(Locking)

디자인 패턴 중 (행위) 패턴은 반복적으로 사용되는 객체들의 상호 작용을 패턴화 한 것으로 클래스나 객체들이 상호 작용하는 방법, 알고리즘 등과 관련된 패턴이다.

설명하는 패킷 교환방식을 서술.

1. 목적지 호스트와 미리 연결 후 통신하는 연결형 교환 방식

2. 헤더에 붙어서 개별적으로 전달하는 비연결형 교환 방식

 

1 >> 가상회선

2 >> 데이터그램

 

 

 

응집도 // 기순교절 시논우(강>약)

우연적 응집도

:

모듈 내부의 각 구성요소가 연관이 없을 경우의 응집도

논리적 응집도

:

유사한 성격을 갖거나 특정 형태로 분류되는 처리요소들이 한 모듈에서 처리 되는 경우의 응집도

시간적 응집도

:

특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우의 응집도

절차적 응집도

:

모듈 안의 구송요소들이 기능을 순차적으로 수행 할 경우의 응집도

교환적 응집도

:

동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우의 응집도

순차적 응집도

:

모듈 내에서 한 활동으로 부터 나온 출력 값을 다른 활동이 사용할 경우의 응집도

기능적 응집도

:

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

응집도의 종류?

  1. 입출력 간 연관성은 없으나, 순서에 따라 수행될 필요가 있음 >> 절차적
  2. 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동 >> 교환적
  3. 모든 기능들이 연관되어 있는 것, 그룹화 >> 기능적

 

 

 


 

 

 

싱글턴 패턴 코드,,

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());
  }
}

1.

conn1을 생성하여 Connection.get()을 호출할 때,

_inst는 null이므로 Connection() 객체를 생성합니다.

(객체를 생성하면 인스턴스를 생성하고 참조값을 return하기 때문에

여기서 부터는 _inst가 null이 아니게 됩니다.)

conn1.count() 는 0에서 count++ 하므로 1이 됩니다.

 

2.

conn2를 생성하고 다시 get()을 호출하면 _inst는 null이 아니기 때문에

객체를 생성하지 않고 count 값을 그대로 가지고 갑니다.

그래서 conn2.count() 는 1에서 count++ 하므로 2가 됩니다.

 

3. conn3.count()도 마찬가지로 위의 시스템처럼 진행되므로 2에서 count++로 3이 됩니다.

 

 

 

3가지를 통합한 보안소프트웨어 3A

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

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

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

1 > Authentication

2 > Authorization

3 > Accounting

GRANT ??

>>

사용자에 권한부여 하는 기능

[

Grant는 사용자에게 접속권한, 오브젝트 생성권한, DBA 권한 등을 부여할 수 있는 명령어이며,

Revoke는 사용자에게 부여한 권한을 다시 회수하는 명령어입니다.

]

 

 

 

특정 호스트의 MAC 주소를 자신의 MAC 주소로 변경, 희생자로 부터 특정 호스트로 나가는 패킷을 공격자가 가로채는 공격기법은 (ARP) Spoofing이다.

 

 

 

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

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

>>

Control Coupling

 

 

 

OSI 7 Layer의 설명으로 해당되는 설명의 답

  1. 직접적으로 연결된 두 개의 노드 사이에 데이터 전송을 가능하게 하고, 오류를 수정
  2. 단말기 간 데이터 전송을 위한 최적화된 경로 제공
  3. 데이터의 압축과 형식 설정, 암복호화를 담당

1 > 데이터링크

2 > 네트워크

3 > 표현

 

 

 

UML 관계에 대한 설명이다. ()?

  • 추상화, 하나의 사물이 다른사물에 포함되어 있는 관계 표현 : (Aggregation)
  • 개념화, 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지를 표현 : (Generalization)

 

 

[

UML에서 제공하는 클래스 사이의 관계 :

(1) 연관 관계 (association) : 클래스들이 개념상 서로 연결되어 있음을 나타냅니다.

 

(2) 일반화 관계 (generalization) : 상속 관계를 설명합니다. (위 문제 참조)

 

(3) 집합관계 :

1) 집약 관계(aggregation) : 클래스 사이의 전체 또는 부분 같은 관계를 나타냅니다. (객체 라이프 타임 : 독립적)

2) 합성 관계 (composition) : 클래스 사이의 전체 또는 부분 같은 관계를 나타냅니다. (객체 라이프 타임 : 의존적)

 

(4) 의존 관계 (dependency) : 연관 관계와 같이 한 클래스가 다른 클래스에서 제공하는 기능을 사용합니다.

 

(5) 실체화 관계 (realization) : 인터페이스와 구현 클래스 사이의 관계를 나타냅니다.

]

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

( 1 )
테스트 간의 종속성, 테스트 수행 전 실행되어야 할 고려 사항 등
( 2 )
테스트 실행 시 입력할 입력값, 선택 버튼, 체크 리스트 값 등
( 3 )
테스트 실행 후 출력 데이터, 결과 화면, 기대 동작 등

1 > 테스트 조건

2 > 테스트 데이터

3 > 테스트 결과

테스트 케이스란 특정 프로그램의 부분 및 경로를 실행해보거나,

요구사항에 준수하는지 확인하기 위해 개발된 입력 값, 조건, 예상된 결과 세트입니다.

케스트 케이스를 함으로써 오류감소 / 비용감소 / 의사소통의 효과가 나타납니다.

테스트 케이스의 설계 기법 종류로는

블랙박스 기법의 명세기반 / 경험기반 기법과

화이트박스 기법의 구조기반 기법이 있습니다.

 

 

 

(원인-결과 그래프) 통해 요구사항 명세를 입력 조건과 출력 조건 간의 논리적 관계로 표현하고,

이를 기반으로 테스트케이스를 도출한다.

(cause-effect graph)의 ‘원인(causes)’은 입력 조건을 의미하고 ‘결과(effects)’는 입력 조건의 결과를 의미하며,

원인과 결과 간의 논리적 관계를 AND, OR, NOT 같은 boolean 연산자를 사용하여 표현한다.

 

 

 

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

& : 비트연산자로써 같은 자리를 비교했을때 모두 같을 경우 True / 아니면 False

| : 비트연산자로써 같은 자리를 비교했을때 하나라도 조건이 맞을 경우 True / 아니면 False

^ : XOR연산자로써 두 값이 같으면 False ,0 / 아니면 True 1,

 

 

 

 

#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);
 
}

*arr[1] == 24

**arr == *arr[0] == 12

24 + 12 + 1 => 37

 

 

 

 

 

 

파이썬 코드 실행 값?

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

 

===

False (대문자 주의)

 

 

 

(클래스) 다이어그램은 문제 해결을 위한 도메인 구조를 나타내어 보이지 않는 도메인 안의 개념과

같은 추상적인 개념을 기술하기 위해 나타낸 것이다.

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

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

 

 

 

 

 

디자인 패턴의 종류 중 (Factory Method) 패턴은 상위 클래스에서 인터페이스만 정의하고 실제 생성은 서브 클래스가 담당한다.

알맞은 패턴을 영어로 쓰시오.

 

 

 

 

 

 

#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; // 84 + 75
(p + 1)->hhab = (p+1)->hab + p->os + p->db; // 159 + 95 + 88
 
printf("%d\n", (p+1)->hab + (p+1)->hhab);
}

>>

501

jsu에는 {name, os, db, hab, hhab} 이런형태의 데이터가 들어가 있습니다.

p = &st[0]; :

p = {"데이터1", 95, 88}

(p+1)→hab = (p+1)→os + (p+2)→db; :

(p+1) = {"데이터2", 84, 91}, (p+2) = {"데이터3", 86, 75}

(p+1)→os + (p+2)→db : 84 + 75 = 159

(p+1)→hhab = (p+1)→hab + p→os + p→db; :

(p+1)→hab + p→os + p→db : 159 + 95 + 88 = 342

printf("%d", (p+1)→hab + (p+1)→hhab) :

(p+1)→hab + (p+1)→hhab : 159 + 342 = 501

 

 

 

 

()은/는 데이터베이스에서 <키값, 주소> 형태의 자료구조이다.

데이터 베이스 파일 구조에는 순차, (), 해싱 접근 방법이 있다.

>>

인덱스

 

 

 

 

( )는 사용자가 그래픽을 통해 컴퓨터와 정보를 교환하는 환경을 말한다.

>>

GUI

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

이 방식을 사용하기 위해서는 ( 2 )가 필요하다.

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

1. 상향식

2. 테스트 드라이버

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

2022년 3회 + (서브넷 )  (0) 2023.04.13
2022년 1~2회  (0) 2023.04.13
2020년 1~3회 (+ 디자인패턴 생구행)  (0) 2023.04.13
정처기 실기 33~35회 [수제비Last]  (0) 2023.04.13
정처기 실기 29~32회  (1) 2023.04.13