2023 정보처리기사 정리

정보처리기사 4강(프로그래밍 언어) 핵심 요약

choco2706 2024. 5. 7. 21:00

1. C / JAVA의 자료명

 

 

2. C언어의 구조체

  • 자료의 종류가 다른 변수의 모임
  • 예약어 struct를 이용해 정의한다

 

 

3. 변수명 작성 규칙

  • 영문자, 숫자, _(under bar)를 사용할 수 있다.
  • 첫 글자는 숫자를 사용할 수 없다.
  • 공백이나 *, +, -, / 등의 특수문자는 사용할 수 없다.
  • 대·소문자를 구분한다
  • 예약어를 변수명으로 사용할 수 없다

 

 

4. 가비지 콜렉터(Garbage Collector)

선언만 하고 사용하지 않는 변수들이 점유한 메모리 공간을 강제로 해제하여 다른 프로그램들이 사용할 수 있도록 하는 것이다.

 

 

5. 산술 연산자

 

 

 

6. 비트 연산자

  • & (and) : 모든 비트가 1일 때만 1
  • ^ (xor) : 모든 비트가 같으면 0, 하나라도 다르면 1
  • | (or) : 모든 비트 중 한 비트라도 1이면 1
  • ~ (not) : 각 비트의 부정, 0이면 1, 1이면 0
  • << (왼쪽 시프트) : 비트를 왼쪽으로 이동
  • >> (오른쪽 시프트) : 비트를 오른쪽으로 이동

 

 

7. 논리 연산자

  • ! (not) : 부정
  • && (and) : 모두 참이면 참
  • || (or) : 하나라도 참이면 참

 

 

8. 조건 연산자(삼항 연산자)

조건에 따라 서로 다른 수식을 수행한다

 

Ex) mx = a < b ? b : a;

a가 b보다 작으면 mx에 b를 저장하고 그렇지 않으면 a를 저장한다.

 

 

 

9. 연산자 우선 순위

 

 

 

10. 스크립트 언어의 종류

  • 자바스크립트 : 웹 페이지의 동작을 제어하는 데 사용되는 클라이언트용 스크립트 언어
  • PHP : Linux, Unit, Windows 운영체제에서 사용 가능한 서버용 스크립트 언어
  • 파이썬(Python) : 귀도 반 로섬이 발표한 대화형 인터프리터 언어
  • 쉘 스크립트 : 쉘에서 사용되는 명령어들의 조합으로 구성된 스크립트 언어
  • Basic : 절차 지향 기능을 지원하는 대화형 인터프리터 언어

 

 

11. 라이브러리

  • 표준 라이브러리 : 프로그래밍 언어에 기본적으로 포함되어 있는 라이브러리로, 여러 종류의 모듈이나 패키지로 구성됨
  • 외부 라이브러리 : 개발자들이 필요한 기능들을 만들어 인터넷 등에 공유해놓은 것으로 외부 라이브러리를 다운받아설치한 후 사용

 

 

12. UNIX의 특징

  • 대부분 C언어로 작성되어 있어 이식성이 높다.
  • 장치와 프로세스 간의 호환성이 높다.
  • 다중 사용자(Multi-User), 다중 작업(Multi-Tasking)을 지원한다.
  • 트리 구조의 파일 시스템을 갖는다. 
    1. UNIX - 커널(Kernel)의 기능
      • 프로세스(CPU 스케줄링) 관리
      • 기억장치 관리
      • 파일 시스템 관리
      • ·출력 관리
    2. UNIX - 쉘(Shell)
      • 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기
      • 시스템과 사용자 간의 인터페이스를 담당.

 

 

13. 기억장치의 배치 전략

  • 최초 적합(First Fit) : 첫 번째 분할 영역에 배치
  • 최적 적합(Best Fit) : 단편화를 가장 작게 남기는 분할 영역에 배치
  • 최악 배치(Worst Fit) : 단편화를 가장 많이 남기는 분할 영역에 배치

 

 

14.  페이지 교체 알고리즘 - FIFO

각 페이지가 주기억장치에 적재될 때마다 그때의 시간을 기억시켜 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체하는 기법

FIFO 예제
예제 풀이

 

 

15. 쓰레싱(Thrashing)

프로세스의 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상

 

 

16. 프로세스 상태 및 상태 전이

  • 프로세스의 상태 : 제출(Submit), 접수(Hold), 준비(Ready), 실행(Run), 대기(Wait, 보류, 블록), 종료(Teminated Exit)
  • 프로세스 상태 전이 : Dispatch, Wake-Up, Spooling

 

 

17. 스케줄링 - SJF

실행 기간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 기법

스케줄링 - SJF 예제

 

 

18. 스케즐링 - HRN

스케줄링 - HRN 예제

 

 

19. UNIX의 주요 명령어

  • fork : 새로운 프로세스를 생성
  • uname : 시스템 정보를 표시
  • wait : 상위 프로세스가 하위 프로세스 종료 등의 event를 기다림
  • chmod : 파일의 보호 모드를 설정
  • ls : 현재 디렉터리 내의 파일 목록을 확인
  • cat : 파일 내용을 화면에 표시
  • chown : 소유자를 변경

 

 

20. 인터넷 주소 체계 - IPv4

  • 8비트씩 4부분, 총 32비트로 구성되어 있다.
  • A클래스에서 E클래스까지 총 5단계로 구성되어 있다.
  • IPv4 주소 체계 : 유니캐스트(Unicast), 멀티캐스트(Multicast), 브로드캐스트(Broadcast)

 

 

21. 인터넷 주소 체계 - IPv6

  • 16비트씩 8부분, 총 128비트로 구성되어있다.
  • 각 부분을 16진수로 표현하고, 콜론(:)으로 구성한다.
  • 주소의 확장성, 융통성, 연동성이 뛰어나고, 품질 보장이 용이하다.
  • IPv6 주소 체계 : 유니캐스트(Unicast), 멀티캐스트(Multicast), 애니캐스트(Anycast)

 

 

22. OSI 7계층

  • OSI 7계층은 응용, 표현, 세션, 전송, 네트워크, 데이터링크, 물리계층으로 나뉨.
    1. 데이터 링크 계층(Data Link Layer)
      • 인접한 개방 시스템들 간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 한다.
      • 기능 : 흐름 제어, 프레임 동기화, 오류 제어, 순서 제어 등
      • 프로토콜 : HDLC, LAPB, PPP, LLC
    2. 네트워크 계층(Netword Layer)
      • 개방 시스템들 간의 네트워크 연결을 관리하고 데이터를 교환 및 중계한다.
      • 기능 : 경로 설정, 트래픽 제어, 패킷 정보 전송 등
    3. 세션 계층(Session Layer)
      • 송·수신 측 간의 관련성을 유지하고 대화 제어를 담당한다.
      • 대화의 생성, 관리, 종료를 위해 토큰을 사용한다.
      • 기능 : 대화 구성 및 동기 제어, 데이터 교환 관리 등

 

 

23. 네트워크 관련 주요 장비

  • 리피터(Repeater) : 원래의 신호 형태로 재생하여 다시 전송함
  • 브리지(Bridge) : LAN과 LAN을 연결하거나 LAN 안에서의 컴퓨터 그룹을 연결함
  • 라우터(Router) : 데이터 전송의 최적 경로를 선택
  • 스위치(Switch) : LAN과 LAN을 연결하여 훨씬 더 큰 LAN을 만드는 장치
  • 브라우터(Brouter)브리치와 라우터의 기능을 모두 수행하는 장치로, 브리치 기능은 내부 네트워크를 분리하는 용도로 사용하고, 라우터 기능은 외부 네트워크에 연결하는 용도로 사용

 

 

24. TCP / IP 프로토콜

  1. MQTT : 발행 - 구독 기반의 메시징 프로토콜로, IoT 환경에서 자주 사용된다.
  2. TCP
    • 신뢰성 있는 연결형 서비스를 제공한다.
    • 양뱡향 연결형 서비스를 제공한다.
    • 기능 : 패킷의 다중화, 순서 제어, 오류 제어, 흐름 제어, 스트림 전송 등
  3. UDP
    • 비연결형 서비스를 제공한다.
    • 흐름 제어나 순서 제어가 없어 전송 속도가 빠르다.
    • 실시간 전송에 유리하다.
  4. ARP : 호스트의 IP 주소를 호스트와 연결된 네트워크 접속 장치의 물리적 주소(MAC Address)로 바꾼다.

 

 

25. CSMA / CD

IEEE 802.3 LAN에서 사용되는 전송 매체 접속 제어(MAC) 방식이다.