카테고리 없음

[정보처리기사] 4과목 프로그래밍 언어 활용 핵심정리

SeungbeomKim 2024. 2. 8. 16:37

C/Java 자료형

  • char(1), int(4), long(8), boolean(1, Java)

 

C언어의 구조체

  • 자료의 종류가 다른 변수의 모임, struct를 이용해 정의

 

Python의 시퀀스 자료형

  • 리스트: 필요에 따라 개수를 늘리거나 줄일 수 있음
  • 튜플: 요소의 추가, 삭제, 변경은 불가능함
  • range: 연속된 숫자 생성

 

변수명 작성 규칙

  • 영문자, 숫자 _사용, 첫 글자 숫자 X, 특수문자 X, 공백 X, 대소문자 구분, 예약어 변수명 X

 

가비지 컬렉터

  • 선언만하고 사용하지 않는 변수들이 점유한 메모리 공간을 강제로 제거

 

산술 연산자

  • %, ++, —

 

비트 연산자

  • &(and), ^(xor), |(or), ~(not), <<, >>

 

논리 연산자

  • !, &&, ||

 

조건 연산자

  • 조건에 따라 다른 수식 수행

 

연산자 우선순위

 

주요 서식 문자열

  • %d, %c, %s

 

printf()

  • 인수로 주어진 값을 화면에 출력

 

자바의 출력함수

  • printf(), print(), println()

 

단순 if문

  • 조건 1개

 

switch

  • 조건에 따라 분기할 곳이 여러 곳인 경우 간단하게 처리할 수 있는 제어문
  • break문 또는 switch문이 종료될 때까지 모든 문장이 실행

 

for문

  • 초기값, 최종값, 증가값을 지정하는 수식을 이용해 정해진 횟수를 반복하는 제어문

 

while문

  • 조건이 참인 동안 실행할 문장을 반복 수행하는 제어문

 

do~while문

  • 조건이 참인동안 정해진 문장을 반복 수행
  • 실행할 문장을 무조건 한 번은 실행

 

1차원 배열

  • 일직선상의 개념으로 조합한 배열

 

2차원 배열

  • 행과 열로 조합한 배열

 

배열 형태의 문자열 변수

  • C언어에서는 큰따옴표로 묶인 글자는 글자수에 상관없이 문자열로 처리
  • 배열에 문자열을 저장하면 문자열의 끝을 알리기 위한 널 문자가 문자열 끝에 삽입

 

포인터와 포인터 변수

  • 선언 시, 간접 연산자*
  • 포인터 변수에 주소를 저장하기 위해 & 사용
  • *를 붙이면 해당 포인터 변수가 가리키는 곳의 값을 말함

 

포인터와 배열

  • 포인터를 이용해 배열의 요소에 접근 가능
  • 배열의 대표명만 지정하면 배열의 첫 번째 요소의 주소를 지정하는 것과 같다
  • a[0] = *(a+0)

 

Python의 input() 함수

  • 키보드로 입력받아 변수에 저장하는 함수, 입력되는 값은 문자열로 취급되어 저장

 

Python의 print()함수

  • 인수로 주어진 값을 화면에 출력하는 함수

 

 

입력 값의 형변환

  • input() 함수는 입력되는 값을 무조건 문자열로 저장하므로 숫자로 사용하기 위해서는 형변환을 해야 함
  • a = int(input()) a, b = map(int, intput().split())

 

Python의 리스트(List)

  • 선언할 때 크기를 적지 않고
  • 다양한 자료형을 섞어서 저장 가능
  • 리스트의 위치는 0부터 시작

 

Python의 딕셔너리

  • 연관된 값을 묶어서 저장
  • 딕셔너리에서는 사용자가 원하는 키를 직접 지정한 후 사용 a = dict ({이름:홍길동, 나이:25, ..})

 

Python의 Range

  • 연속된 숫자 생성 a = list(range(5) , 0, 1, 2, 3, 4)
  • b = list(range(4, 9), 4, 5, 6, 7, 8)
  • c = list(range(1, 15, 3), 1, 4, 7, 10, 13))

 

Python의 슬라이스

  • 문자열이나 리스트와 같은 순차형 객체에서 일부를 잘라서 반환하는 기능


Python의 for문

  • range
    • for i in range (1, 11)
  • list
    • for i in a

 

Python의 while문

  • while i ≤ 10;
    • i = i + 1

 

Python의 클래스

  • 클래스 이름을 정하고 객체 생성을 위한 속성과 메서드를 정의한 후, 객체를 선언하면 된다

 

 

Python의 클래스 없는 메소드

  • C언어의 사용자 정의 함수와 같이 클래스 없이 메서드만 단독으로 사용 가능

 

스크립트 언어의 종류

  • 자바스크립트, PHP, 파이썬, 쉘 스크립트, Basic

 

쉘 스크립트에서 사용되는 제어문

  • 선택형: if, case
  • 반복형: for, while, until

 

라이브러리

  • 표준 라이브러리: 프로그래밍 언어에 기본적으로 포함되어 있는 라이브러리
  • 외부 라이브러리: 개발자들이 필요한 기능들을 만들어 인터넷 등에 공유해 놓은 것

 

C언어 stdlib.h

  • 자료형 변환, 난수 발생, 메모리 할당에 사용되는 기능 제공

 

Unix의 특징

  • 이식성, 호환성이 높고, 다중 사용자, 작업을 지원, 트리구조

 

Unix Kernel 기능

  • 프로세스 관리
  • 기억장치 관리
  • 파일 시스템 관리
  • 입, 출력관리

Unix - 쉘

  • 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기
  • 시스템과 사용자 간의 인터페이스를 담당

 

기억장치의 배치 전략

  • 최초 적합(첫 번째 분할 영역), 최적 적합(단편화 최소), 최악적합(단편화 최대)

 

페이지 교체 알고리즘 - FIFO

  • 가장 오래 있었던 페이지를 교체하는 기법

 

스레싱

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

 

프로세스 상태 및 상태 전이

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

 

스케줄링 - SJF

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

 

스케줄링 - HRN

 

 

UNIX 명령어

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

 

IPv4

  • 8bit 4 부분, 총 32비트로 구성
  • A ~ E 클래스까지 총 5단계로 구성

 

IPv6

  • 16bit 8 부분, 총 128비트로 구성
  • 16진수로 표현, :(콜론)으로 구분
  • 주소의 확장성, 융통성, 연동성이 뛰어나고, 품질 보장이 용이
  • IPv6 주소 체계: 유니캐스트, 멀티캐스트, 애니캐스트

 

OSI 7계층 - 데이터 링크 계층

  • 인접한 개방 시스템들 간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 함
  • 기능: 흐름 제어, 프레임 동기화, 오류 제어, 순서 제어 등
  • 프로토콜: HDLC, LAPB, PPP, LLC

 

OSI 7계층 - 네트워크 계층

  • 개방 시스템들 간의 네트워크 연결을 관리하고 데이터를 교환 및 중계
  • 기능: 경로 설정, 트래픽 제어, 패킷 정보 전송

 

OSI 7계층 - 전송 계층

  • 종단 시스템(end-to-end) 간에 투명한 데이터 전송을 가능하게 함
  • 기능: 전송 연결 설정, 데이터 전송, 연결 해제 기능, 주소 설정, 다중화, 오류 제어, 흐름 제어

 

OSI 7계층 - 세션 계층

  • 송, 수신 간의 관련성을 유지하고 대화 제어를 담당
  • 대화의 생성, 관리, 종료를 위해 토큰을 사용함
  • 기능: 대화 구성 및 동기 제어, 데이터 교환 관리 등

 

네트워크 관련 주요 장비

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

 

TCP/IP 프로토콜 - MQTT

  • 발행 - 구독 기반의 메세징 프로토콜로, IoT 환경에서 자주 사용됩니다

 

TCP/IP 프로토콜 - TCP

  • 신뢰성 있는 연결형 서비스를 제공
  • 양방향 연결형 서비스를 제공
  • 기능: 패킷의 다중화, 순서 제어, 오류 제어, 흐름 제어, 스트림 전송

 

TCP/IP 프로토콜 - UDP

  • 비연결형 서비스를 제공
  • 흐름 제어나 순서 제어가 없어 전송 속도가 빠르다
  • 실시간 전송에 유리

 

TCP/IP 프로토콜 - ARP

  • 호스트와 IP주소를 호스트와 연결된 네트워크 접속 장치의 물리적 주소(MAC Address)로 바꿈

 

CSMA/CD

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