정처기 실기 : 2023년 2회차 기출, 1️⃣1️⃣ ~ 2️⃣0️⃣

m_ngyeong·2024년 4월 18일
0
post-thumbnail

정보처리기사 실기


📝 2023년 2회차 기출, 1️⃣1️⃣ ~ 2️⃣0️⃣

11. 디자인 패턴

① ____

  • 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다.
  • 주로 공통된 객체를 여러개 생성해서 사용하는 DBCP(DataBase Connection Pool)와 같은 상황에서 많이 사용한다.

② ____

  • 호스트 객체의 내부 상태에 접근할 수 있는 방법을 제공하여 호스트 객체에 연산을 추가할 수 있도록 한다.
  • 이 패턴은 보통 합성 구조의 원소들과 상호 작용하는 데 사용되며, 기존 코드를 변경하지 않고 새로운 기능을 추가하는 방법이다.

🖍 ①Singleton ②Visitor

  • 생성 패턴 : Abstract Factory, Builder, Factroy Method, Prototype, Singleton
  • 구조 패턴 : Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy
  • 행위 패턴 : Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor
  • https://velog.io/@m_ngyeong/Design-Pattern

12. Parity Bit(패리티 비트)

( 1 ) Code는 데이터 전송시 1 비트의 에러를 정정할 수 있는, 오류정정부호의 일종으로 미국의 Bell 연구소의 Hamming에 의해 고안되었다. 선형블록부호 및 순회부호에 속에 속한다.

( 2 ) 은/는 송신측이 전송할 문자나 프레임에 부가적 정보(Redundancy)를 첨가하여 전송하고 수신측이 이 부가적 정보를 이용하여 에러검출 및 에러정정을 하는 방식이다.

( 3 ) 은/는 공격자가 전자 메일을 사용하여 상대방이 금전을 보내거나 기밀 회사 정보를 누설하도록 유도하는 사이버 범죄의 일종이다.
공격자는 신뢰할 수 있는 인물로 가장한 다음 가짜 청구서의 지불을 요청하거나 다른 사기에서 사용할 중요한 데이터를 요구한다.

( 4 ) 은/는 데이터가 저장장치 내의 한 장소에서 다른 장소로 이동되거나, 컴퓨터들간에 전송될 때, 데이터가 유실 또는 손상되었는지 여부를 점검하는 기술과 관련된 용어이다.

( 5 ) 은/는 네트워크 등을 통하여 데이터를 전송할 때 전송된 데이터에 오류가 있는지를 확인하기 위한 체크값을 결정하는 방식을 말한다.

🖍 ①hamming ②FEC ③BEC ④parity ⑤CRC

패리티 비트(Parity Bit)

정보의 전달 과정에서 오류가 생겼는지를 검사하기 위해 추가된 비트이다. 즉, 전송 과정에서 1비트 오류를 검출하기 위한 것으로, 패리티비트를 포함해 1의 개수가 짝수(짝수 패리티비트)나 홀수(홀수 패리티비트) 개가 되도록 한다. 데이터 전송 과정에서 1비트 오류가 발생하면 1의 개수가 홀수 개로 바뀐다.

  • FEC(Forward Error Correction, 전진 오류 수정) :
    • 재전송 요구 없이 수신 측에서 알아서 수정하는 방식
    • 오류 검출과 수정을 위한 방식에 hamming 코드 방식과 상승 코드 방식이 있음
  • hamming : 수신 측에서 오류가 발생한 비트를 찾아 재전송을 요구하지 않고 자신이 직접 오률르 수정하는 방식으로 1비티의 오류 수정이 가능
  • 상승 코드(부호) 방식 : 1개의 오류 비트를 수정할 수 있는 해밍과 다르게 여러 개의 비트의 오류가 있더라도 한계값(경계값), 순차적 디코딩을 이용하여 모두 수정할 수 있는 방식
  • BEC(Backward Error Correction, 후진 오류 수정) :
    • 송신 측에서 재전송 요구하는 방식
    • Parity Check(패리티 검사), CRC, Block Sum Check(블록합 검사)을 사용하여 오류를 검출하고, 오류 제어는 자동 반복 요청(ARQ; Automatic Repeat reQuest)에 의해 이루어짐
    • 비지니스 이메일 침해의 약자로도 쓰임
  • Parity Check : 7~8개의 비트로 구성되는 전송 문자에 패리티 비트를 추가하여 오류를 검출하는 방식
  • CRC(Cycle Redundancy Check) : 순환 중복 검사로, 다항식을 통해 산출된 CRC값을 토대로 오류를 검사는 방식
    즉, 집단 오류를 해결하기 위한 방식
  • Block Sum Check(블록합 검사) : 프레임의 모든 문자로부터 계산되는 잉여 패리티 비트들을 사용하는 2차원(가로/세로) 패리티 검사 방식
  • EAC : 이메일 계정 침해
  • PDS(Personal Data Store) : 개인 데이터 저장소

13. HDLC Protocol

( 1 ) 프레임은 Seq, Next, P/F의 필드를 가진다. 또한 맨 처음 비트를 0으로 가진다. Seq는 송신용 순서번호를 가지고 있다. Next는 응답용 순서번호를 가진다. P/F는 P가 1로 설정된 경우 주국에서 종국에 데이터 전송을 허용하는 것을 의미하고 F가 1로 설정된 경우 종국에서 주국으로 데이터 전송을 하는 것을 의미한다.

( 2 ) 프레임은 맨 앞의 필드가 1로 되어 있어 정보 프레임이 아니라는 것을 나타내고 다음 비트가 0이 나와있다. Type의 경우에는 2비트를 가지고 있어 4가지의 종류로 나누어진다. 데이터를 보내는 역할이 아니라 응답의 기능을 수행하므로 Seq에 대한 값은 필요가 없고 다음 프레임을 요구하는 Next만 존재한다.

( 3 ) 프레임은 순서 번호가 없는 프레임을 의미한다. 첫 번째 비트와 두 번째 비트가 모두 1로 설정되어 있다. 여러 종류를 가지고 있는데 Type의 2비트와 Modifier의 3비트를 합쳐 5비트를 통해 종류를 나눈다.

( 4 ) 은/는 두 호스트 모두 혼합국으로 동작한다. 양쪽에서 명령과 응답을 전송할 수 있다.

( 5 ) 은/는 불균형 모드로 주국의 허락 없이 종국에서 데이터를 전송할 수 있다.

🖍 ①정보 ②감독 ③비번호 ④비동기 균형 ⑤비동기 응답

컴퓨터 데이터 통신에 적합한 전송제어방식이다.

  • 고속 데이타 전송에 적합한 비트 지향형 프로토콜
  • 점대점(1:1), 다중점(1:多), 반이중(Half-duplex), 전이중(Full-duplex)의 통신 방식을 모두 지원
  • HDLC 스테이션
    • 주국(Primary station) : 링크 제어의 책임을 갖고 명령을 내림
    • 종국(Secondary station) : 주국 제어하에 동작하며 응답만 함
    • 혼성국(Combined station) : 명령/응답 둘 다를 할 수 있음
  • HDLC 링크 구성
    • 불균형 구성(Unbalanced configuration) : 1 : 多, 주국과 1 이상의 종국과의 통신
    • 균형 구성(Balanced configuration) : 1 : 1, 2개가 서로 대등한 쌍으로 통신
  • HDLC 전송모드
    • NRM(Normal Response Mode, 정규 응답 모드) :
      불균형적 링크 구성, 주국이 세션을 열고, 종국들은 단지 응답만 함
    • ABM(Asynchronous Balanced Mode, 비동기 균형 모드)
    • ARM (Asynchronous Response Mode, 비동기 응답 모드)

14. Java Lang. - == vs equals

class HelloWorld {
    public static void main(String[] args) {
        String str1 = "Programming"; // true or false
        String str2 = "Programming"; // 리터럴(literal) : 프로그램에서 직접 표현한 값
        String str3 = new String("Programming"); // 객체 생성

        System.out.println(str1==str2);
        System.out.println(str1==str3);
        System.out.println(str1.equals(str3));
        System.out.print(str2.equals(str3));
    }
}

🖍
true
false
true
true

  • == : 주소(reference) 비교
  • equals : 문자열(value) 비교
String str3 = new String("Programming");
String str4 = new String("Programming");
System.out.println(str3==str4); // fale

15. 암호화 알고리즘

🖍 대칭키 : DES,AES, ARIA, SEED / 비대칭키: RSA, ECC
https://velog.io/@m_ngyeong/Encryption-Algorithm

16. 암호화 알고리즘

  • ( ) 란 임의의 크기를 가진 데이터(Key)를 고정된 크기의 데이터(Value)로 변화시켜 저장하는 것이다.
  • 키에 대한 ( ) 값을 사용하여 값을 저장하고 키-값 쌍의 갯수에 따라 동적으로 크기가 증가한다.
  • ( ) 값 자체를 index로 사용하기 때문에 평군 시간복잡도가 O(1)로 매우 빠르다.
  • ( ) 함수는 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다.
  • ( ) 함수는 큰 파일에서 중복되는 레코드를 찾을 수 있기 때문에 데이터베이스 검색이나 테이블 검색의 속도를 가속할 수 있다.

    🖍 해시(Hash)

17. SQL - DDL

⭐️ 조건 : <학생> 테이블을 참조하는 다른 VIEW나 제약 조건까지 모두 삭제

DROP VIEW 학생 ______

🖍 CASCADE
https://velog.io/@m_ngyeong/DDLData-Define-Language

18. C Lang. - 선택 정렬

#include <stdio.h>

int 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]);
    }
}

🖍 >

선택 정렬(Selection Sort)

  • n개의 레고드 중에서 최소값을 찾아 첫 번째 레코드 위치에 놓고, 나머지 (n-1)개 중에서 다시 최소값을 찾아 두 번째 레코드 위치에 놓는 방식을 반복하여 정렬하는 방식
  • 시간 복잡도 O(n의 2제곱)

19. Python Lang. - Slice

a = "Engineer Information Processing"
	#0123456789012345678901234567890
b = a[:3]
c = a[4:6]
d = a[28:]
e=b+c+d
print(e)

🖍 Engneing
(b = Eng) + (c = ne) + (d = ing)

Slice

  • indexing: 0부터 시작
  • List or Tuple의 원소 일부를 연속해서 또는 일정한 간격으로 꺼내 새로운 List or Tuple을 만드는 것
  • s[:] : list s의 원소를 모두 출력
    s[:n] : 맨 앞부터 n-1 번까지 출력
    s[n:]: n 번째부터 맨 끝까지 출력
    s[-n:] : 뒤에서 n번째부터 맨 끝까지 출력
    s[::k] : 맨 앞부터 k개씩 건너뛰며 출력
    s[::-1] : 맨 끝부터 전부 출력
  • https://www.notion.so/Python-8d22ed2b06bc4c77895b09bcf70a551c?pvs=4

20. 상•하양식 테스트

[1]

  • 하향식 테스트 시 상위 모듈은 존재하나 하위 모듈이 없는 경우의 테스트를 위해 임시 제공되는 모듈이다.
  • 특별한 목적의 소프트웨어를 구현하는 것으로 컴포넌트를 개발하거나 테스트할 때 사용된다.
  • 서버-클라이언트 구조에서 서버만 구현된 상태로 테스트를 해보고 싶을때 단순히 값만 넘겨주는 가상의 클라이언트를 만들어서 테스트 할 수 있다.

[2]

  • 상향식 테스트 시 상위 모듈 없이 하위 모듈이 존재할 때 하위 모듈 구동 시 자료 입출력을 제어하기 위한 제어 모듈(소프트웨어)이다.
  • 서버-클라이언트 구조에서 클라이언트만 구현된 상태로 테스트를 해보고 싶을때 접속 인증 등의 간단한 기능만 하는 가상의 서버를 만들어서 테스트 할 수 있다.

🖍 ① 스텁, ② 드라이버
https://velog.io/@m_ngyeong/Application-Testing-2



참고,
길벗알앤디. 『정보처리기사 실기 단기완성』. 길벗. 2023.
https://www.nise.go.kr/sedu/pt/page1_05.html,
http://www.ktword.co.kr/test/view/view.php?m_temp1=89,
https://newbt.kr/시험/정보처리기사%20실기/2023년%202회/오소프트0506,

profile
ʚȉɞ

0개의 댓글