본문 바로가기
Certificate/정보처리기사

[정보처리기사] 2022년 2회차 (4)프로그래밍 언어 활용

by HJ0216 2023. 7. 7.

정보처리기사

대표 라이브러리

C언어

  1. stdio.h: 데이터 입출력
  2. stdlib.h: 자료형 변환, 메모리 할당
  3. string.h: 문자열
    • strcpy(s1, s2): s2를 s1으로 복사
    • strcat(s1, s2): s1과 s2를 연결JAVA
  4. java.lang: 자바에 기본적으로 필요한 인터페이스, 자료형, 예외 처리 등에 관련된 기능을 제공
  5. java.util: 날짜 처리, 난수 발생, 문자열 처리 등
  6. java.net: 네트워크 관련된 기능을 제공
  7. java.awt: 사용자 인터페이스(UI)와 관련된 기능을 제공

데이터 타입

Python

  1. 시퀀스 자료형
    • 튜플(Tuple): 쉼표(,)로 구분된 객체들로 이루어지는 불변(immutable) 자료형
    • 리스트(List): 항목을 쉼표로 구분하며 대괄호 [ ]로 감싸 객체를 만드는 가변(mutable) 자료형
  2. 컬렉션 자료형
    • 셋(Set): 중괄호 { }를 이용하여 선언하며 가변(mutable)이며 중복 요소가 없고 정렬되지 않은 자료형
    • 딕셔너리(Dictionary): 중괄호 { }를 이용하여 key:value를 선언하며 가변(mutable) 자료형

IP Header

ip_header

  • Version: IP 프로토콜의 version
  • Type of Service: IP 데이터그램(=IP 패킷, IP프로토콜에서 데이터가 전달되는 기본 단위)의 서비스, FTP나 DNS, SMTP 같은 서비스의 유형 표시
  • identification: 패킷이 전송될 때 구분을 하기 위해서 붙은 식별 번호, IP 데이터그램이 단편화되었을 때 단편화된 데이터그램이 원래 어떤 데이터그램에 속해 있는 지를 알 수 있음
  • Flags(3): 프래그먼트 패킷의 상태나 생성 여부를 결정, IP 데이터그램이 단편화됬는지 안됬는지 알 수 있음
  • Fragmentation Offset(13): 조각나기 전 원래의 데이터그램의 바이트 범위
  • Time-to-live: IP패킷의 수명으로 패킷을 전송하기 전 네트워크에서 생존할 수 있는 시간
  • Header-Checksum(16): 데이터 checksum이 아닌 IP protocol header에 대한 checksum

TCP Header

tcp_header

  • Source Port: 세그먼트의 출발지를 나타내는 전송 포트
  • Destination Port: 세그먼트의 목적지를 나타내는 수신 포트
  • Sequence Number: 전송하는 데이터 순서, 수신 측에서 Sequence Number로 순서를 파악해서 다시 올바른 순서로 재조립
  • Acknowledge Number: 다음에 수신될 것으로 예상되는 세그먼트의 번호
  • Header Length(4): HLEN, 데이터가 시작되는 위치가 어디인지를 나타내서 이 값을 통해 데이터의 시작 위치를 알 수 있음
  • Reserve(6): 미래를 위해 남겨놓는 필드
  • Flag Bits(6): 데이터를 관리하거나 제어
    • URG 플래그: Urgent, 이 포인터가 가리키는 긴급한 데이터는 제일 먼저 처리
    • ACK 플래그: Acknowledgment number, 필드에 값이 채워져 있음
    • PSH 플래그: TCP 버퍼가 일정한 크기만큼 쌓여야 전송을 하는데 버퍼를 채우지 않고 바로 전송을 수행(push) 하는 플래그
    • RST 플래그: 이미 TCP 연결이 되어 있을 때 이 연결을 강제로 해제하기 위해 사용
    • SYN 플래그: 상대방과 연결을 생성할 때, 시퀀스 번호의 동기화를 맞추기 위하여 사용
    • FIN 플래그: 연결 종료(전송할 데이터가 없음)를 의미
  • Window Size(16): 자신의 수신 버퍼 여유용량 크기를 통보해 얼만큼의 데이터를 받을 수 있는지 상대방에게 알려주어 흐름제어
  • Checksum: 데이터를 송신하는 중에 발생할 수 있는 오류를 검출
  • Urgent Pointer: 이 포인터가 가리키는 데이터는 긴급한 데이터로 처리되어 제일 먼저 처리

프로세스 스케쥴링

: 프로세스가 생성되어 실행될 때 필요한 시스템의 여러 자원을 해당 프로세스에 할당하는 작업

  1. 비선점(Non-Preemptive): 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법
    • FCFS: First Come First Served,
    • SJF: Shortest Job First
      • 가장 적은 평균 대기 시간을 제공하는 최적 알고리즘
      • 실행 시간이 긴 프로세스는 실행 시간이 짧은 프로세스에게 할당 순위가 밀려 무한 연기 상태(기아 현상)가 발생 ▶ (대안) HRN
    • HRN: Hightest Response-ratio Next
      • 대기 시간과 서비스(실행) 시간을 이용하는 기법
      • 우선순위를 계산하여 그 숫자가 가장 높은 것부터 낮은 순으로 우선순위가 부여
      • (대기 시간 + 실행 시간)/(실행 시간)
    • 우선순위
    • 기한부
  2. 선점(Preemptive): 하나의 프로세스가 CPU를 할당받아 실행하고 있을 때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법
    • Round Robin: 프로세스는 할당된 시간 동안만 실행한 후 실행이 완료되지 않으면 다음 프로세스에 CPU를 넘겨주고 큐의 뒤로 배치
    • SRT: Shortest Remaining Time
    • MLQ(다단계 큐): 그룹에 따라 각기 다른 준비상태 큐를 사용
    • MFQ(다단계 피드백 큐): 그룹화 된 큐마다 실행 시간을 부여하여 시간 내 실행이 완료되지 않을 경우 프로세스에 CPU를 넘겨주고 큐의 뒤로 배치

Routing Protocol

routing_protocol

  1. EGP: 외부 게이트웨이 프로토콜
    • BCG: Board Gateway Protocol
  2. IGP: 내부 게이트웨이 프로토콜
    • Distance Vector
      • RIP: Routing Information Protocol, 인접한 라우터간 일정 시간마다 상태 공유
    • Link State
      • OSPF: Open Shortest Path First, 변경된 데이터가 있을 때마다 상태 공유, 가장 많이 사용되는 내부 라우팅 프로토콜

OSI 7 Layer Model

OSI_7_layer

  1. 물리 계층(Physical Layer)
    • 0과 1의 비트 정보를 회선에 보내기 위한 전기적 신호 변환
    • 단위: 비트
    • 주요 장비: 허브, 리피터 등
  2. 데이터 링크 계층(Data Link Layer)
    • 인접 시스템 간 데이터 전송, 전송 오류 제어를 통한 신뢰성 구축
    • 단위: 프레임
    • 주요 장비: 스위치, 브릿지 등
  3. 네트워크 계층(Network Layer)
    • 단말기 간 데이터 전송을 위한
      최적화된 경로 제공
    • 단위: 패킷
    • 주요 장비: 라우터
    • 프로토콜
      • IP: 데이터 전달
      • ICMP: IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜
      • ARP: 논리 주소인 IP 주소 ▶ 실제적인 물리 주소인 MAC 주소로 변환
      • RARP: 실제적인 물리 주소인 MAC 주소 ▶ 논리 주소인 IP 주소로 변환
  4. 전송 계층(Transport Layer)
    • 송수신 프로세스(종단) 간의 연결. 신뢰성 있는 통신 보장
    • 단위: 세그먼트
    • 프로토콜
      • TCP
        • telnet(23): 원격 컴퓨터 간
        • FTP(20-데이터, 21-제어): 파일 전송
        • HTTP(80): 웹 서비스
        • SMTP(25): 메일 전송
        • POP3(110): 메일 수신
      • UDP
        • DHCP: IP 자동 할당
        • SNMP: 네트워크 관리
        • DNS(53): 도메인 ▶ IP 주소로 변환
  5. 세션 계층(Session Layer)
    • 송수신 간의 논리적 연결
    • 단위: 데이터
  6. 표현 계층(Presentation Layer)
    • 데이터 형식 설정, 암/복호화
    • 단위: 데이터
  7. 응용 계층(Application Layer)
    • 일반적인 응용 서비스를 수행
    • 단위: 데이터

소프트웨어 3R

  1. 역공학(Reverse-Engineering)
    : 기존 개발된 시스템의 코드나 데이터로부터 설계 명세서나 요구 분석서 등을 도출하는 작업
  2. 재공학(Re-Engineering)
    : 소프트웨어의 위기를 해결하기 위해 개발의 생산성이 아닌 유지 보수의 생산성으로 해결하려는 방법
  3. 재사용(Re-Use)

응집도

: 모듈 내부의 기능적인 집중 정도

  1. 우연적: 모듈 내부의 각 구성요소들이 연관이 없을 경우
  2. 논리적: 유사한 성격을 갖는 요소들이 한 모듈에서 처리
  3. 시간적: 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리
  4. 절차적: 모듈 안의 구성요소들이 그 기능을 순차적으로 수행
  5. 통신적: 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여있을 경우
  6. 순차적: 모듈 내에서 한 활동으로 부터 나온 출력값을 다른 활동이 사용할 경우
  7. 기능적: 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우

결합도

: 모듈과 모듈간의 상호 의존 정도

  1. 자료(데이터): 모듈간의 인터페이스 전달되는 파라미터를 통해서만 모듈간의 상호 작용이 일어나는 경우
  2. 스탬프: 모듈간의 인터페이스로 배열이나 오브젝트, 스트럭쳐등이 전달되는 경우
  3. 제어: 어떻게 처리를 해야 한다는 제어 요소가 전달되는 경우
  4. 외부: 어떤 모듈에서 반환한 값을 다른 모듈에서 참조해서 사용하는 경우
  5. 공통: 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 전역변수를 갱신하는 식으로 상호작용하는 경우
  6. 내용: 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용 하는 경우

페이지 교체 알고리즘 (Page Replacement Algorithm)

LRU(Least Recently Used)

: 가장 오랫동안 사용하지 않은 페이지를 교체하는 알고리즘

OPT(Optimal)

: 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체

MFU(Most Frequently User)

: 참조 횟수가 가장 많은 페이지를 교체

Thread

사용자 수준에서의 Thread

  • 커널 수준에서의 Thread 관리 X
  • 동시성 지원 X
  • 커널 모드로의 전환 없이 스레드 교환이 가능하므로 오버헤드가 줄어듦

 

 

 

참고 자료

 

흥달쌤

흥달쌤과 함께하는 IT 채널입니다. 정보처리기사 자격증 관련된 강의 및 실무 노하우, 프로그래밍 언어(JAVA, C언어, Python) 특강 등이 진행됩니다. 앞으로 진행 예정인 동영상은 IT 관련된 이야기

www.youtube.com

 

2021 #정보처리기사 필기요약 #4-3. 네트워크 기초 활용

2021년 NCS기반 정처기 필기입니다. 참고1. 노랑마킹은 시험에 나온 중요한 부분입니다. 참고2. 주황강조는 약어 혹은 중요한 내용입니다. 참고3. 회색마킹은 예시입니다. 제 4과목 > 응용 SW 기초 기

simuing.tistory.com

 

라우터와 라우팅프로토콜에 대해 설명하시오(서)

1. 개요 - 라우터는 동일한 전송 프로토콜을 사용하는 분리된 네트워크를 연결하는 장치로 네트워크 계층간...

blog.naver.com

 

정보처리기사 - 라우팅 프로토콜

자율 시스템 내에서 사용. 근거리에서 주로 사용. 거리벡터 알고리즘에 근거하여 만든 프로토콜 RIP Open Shortest Path First. 가장 많이 사용되는 내부 라우팅 프로토콜. 계층 동적 라우팅 프로토콜 OSP

velog.io

 

[정보처리기사 실기] OSI 7계층

🎵 정처기 필기, 실기 단골 문제인 OSI 7계층에 대해서 정리 해보자 (●'◡'●)OSI 7계층은 모든 네트워크 통신에서 생기는 여러가지 충돌을 완화하기 위해 국제표준기구인 ISO에서 표준화된 네트

velog.io

 

IPv4 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. IPv4는 인터넷 프로토콜의 4번째 판이며, 전 세계적으로 사용된 첫 번째 인터넷 프로토콜이다. 과거에 인터넷에서 사용되는 유일한 프로토콜이였으나 오늘날에

ko.wikipedia.org

 

IT위키

IT에 관한 모든 지식. 함께 만들어가는 깨끗한 위키

itwiki.kr

 

[소프트웨어공학] 3R(역공학, 재공학, 재사용)

소프트웨어공학의 3R(역공학, 재공학, 재사용) 소프트웨어 3R의 정의 완성된 소프트웨어 프로그램을 기반으로 역공학(Reverse-Engineering), 재공학(Re-Engineering), 재사용(Re-Use)를 통해 소프트웨어의 ...

itnovice1.blogspot.com