정보처리기사(4과목 프로그래밍 언어 활용)

Date:     Updated:

카테고리:

태그:

정보처리기사


4과목 프로그래밍 언어 활용 필기 (요약)


54. C언어의 연산자

C언어의 연산자 우선순위(높음->낮음)

  • 괄호()->산술 연산자->비트 이동 연산자->관계 연산자->비트 논리 연산자->논리 연산자
  • 산술 연산자 : *, /, %, +, -
  • 비트 이동 연산자 : «, »
  • 관계 연산자 : <, <=, >, =, ==, !=
  • 비트 논리 연산자 : &, ^,
  • 논리 연산자 : !, &&,  
  • 삼항 연산자 : ?

C언어의 논리 연산자

  • 논리부정(!) 연산자 : ‘참’ 을 ‘거짓’ 으로 ‘거짓’을 ‘참’으로 부정
  • 논리곱(&&) 연산자 : 좌측과 우측 피연산자가 모두 ‘참’이어야 ‘참’의 결과
  • **논리합(   ) 연산자** : 좌측과 우측 피연산자 중 좌측 연산자가 ‘참’이면 ‘참’의 결과

55. C언어 변수명 작성 규칙과 라이브러리 함수

C언어의 변수명 작성 규칙

  • 영문 대소문자(A~Z, a~z), 숫자(0~9),’_‘를 혼용하여 사용할 수 있다
  • 첫 글자는 숫자로 시작할 수 없으며, 영문자나 ‘_‘로 시작해야 한다
  • 영문자는 대소문자를 구분한다
  • 공백을 포함할 수 없다
  • 예약어(Reserved Word)를 사용할 수 없다

라이브러리 함수

  • atoi() : 문자열을 정수형으로 변환
  • atof() : 문자열을 실수형으로 변환
  • itoa() : 숫자를 문자열로 변환
  • ceil() : 자리 올림
  • floor() : 자리 버림

56. for 반복문과 문자열 처리 함수

for 반복문

  • 일정 횟수만큼 반복 수행할 때 사용한다
  • 문법 구조

| for(초기식; 조건식; 증감식)
{
명령문1;

명령문n;
} | |————————————————————|

문자열 처리 함수

  • strlen() : 인수로 전달되는 문자열 길이 반환
  • strcat(), strncat() : 하나의 문자열에 다른 문자열을 연결
  • strcpy(), strncpy() : 문자열을 복사
  • strcmp(), strncmp() : 문자열 내용을 비교
  • atoi(), atol(), atoll(), atof() : 인수로 전달된 문자열을 숫자형으로 변환
  • toupper(), tolower() : 영문자를 대문자, 소문자로 변환

57.Java 연산자의 종류 및 우선순위

연산자 종류 결합 방향 우선순위
단항 연산자 +, =!, ~, ++, – 높음
산술 연산자 *, /, %
+, -
시프트 연산자 «, », »>
관계 연산자 <, <=, >, >=
==, !=
비트 연산자 &, ㅣ, ^
논리 연산자 &&, ㅐ
조건 연산자 ?:
할당 연산자 =, +=, -=, *=, /=, %=,
«=, »=
콤마 연산자 , 낮음

58. Java 의 배열 객체

Java의 배열 객체.length

  • 배열 객체.length : 배열 객체의 크기(요소의 개수)
  • 실행의 순서 : main() → marr()

Java 출력 함수

  • System.out.print() : 괄호 안을 출력하고 줄 바꿈을 안 한다
  • System.out.println() : 괄호 안을 출력하고 줄 바꿈을 한다
  • System.out.printf() : 변환 문자를 사용하여 출력한다

59. Java 삼항 연산자

if ~ else 문

| if(조건식
조건식의 결과가 참일 때 실행하는 명령문;
else
조건식의 결과가 거짓일 때 실행하는 명령문; | |—————————————————————————-|

삼항 연산자

| 조건식? 참일 때 명령문 : 거짓일 때 명령문 | |—————————|

60.Python

Python

  • 1991년 귀도 반 로섬(Guido van Rossum)이 개발한 고급 프로그래밍 언어이다
  • 플랫폼에 독립적이고 인터프리터식, 객체지향적, 동적 타이핑 대화형 언어이다. 매우 쉬운 문법 구조로 초보자들도 쉽게 배울 수 있다

Python 변수명 작성 규칙

  • 영문 대소문자(A~Z, a~z), 숫자(0~9), ‘_‘를 혼용하여 사용할 수 있다
  • 첫 글자는 영문자나 ‘_‘로 시작해야 한다
  • 영문자는 대소문자를 구분한다
  • 공백을 포함할 수 없다
  • 예약어(Reserved Word)를 사용할 수 없다

61. Python 함수

if ~ elif ~ else 조건문

| if 조건1:
조건1이 True 일 경우 실행문
elif 조건2:
조건1일 False이고 조건2가 True일 경우 실행문
else
조건1과 조건2가 모두 False일 경우 실행문 | |—————————————————————————————————————————-|

range()함수

  • for 반복문과 함께 많이 사용되며, 주어진 인수로 0부터 연속된 정수를 리스트 객체로 반환하는 함수이다
  • (예1)range(3) → (결과)[0,1,2]
  • (예2)range(1,3) → (결과)[1,2]

62. 파이썬의 리스트와 딕셔너리

  • 리스트 객체 : [요소1, 요소2, …]
  • 딕셔너리 객체 : {‘key1’ : ‘value1’, ‘key2’ : ‘value2’, …}

63. 기억 장치 교체 전략

주기억 장치의 모든 페이지 프레임이 사용 중일 때 어떤 페이지 프레임을 교체할 것인지 결정하는 전략이다

OPT
(OPTimal
replacement)
- 이후에 가장 오랫동안 사용되지 않을
페이지를 먼저 교체하는 기법이다
- 실현 가능성이 희박하다
FIFO
(First In First Out)
- 가장 먼저 적재된 페이지를 먼저 교체
하는 기법이다
- 구현이 간단하다
LRU
(Least Recently
Used)
각 페이지마다 계수기나 스택을 두어 한 시점에서 가장 오랫동안 사용하지 않은 페이지를 교체하는 기법이다
LFU
(Least Frequently
Used)
참조된 횟수가 가장 적은 페이지를 먼저 교체하는 기법이다

64. 운영체제 스케줄링

HRN(Highest Response-ratio Next)

  • 비선점 스케줄링 기법의 일종이다
  • 준비상태 큐에서 기다리고 있는 프로세스들 중에서 실행 시간이 가장 짧은 프로세스에게 먼저 CPU 를 할당하는 스케줄링 기법이다

65. 주기억 장치 배치 전략

  • 최초 적합(First Fit) : 프로그램/데이터가 할당 가능한 영역 중에서 첫 번째 영역에 할당
  • 최적 적합(Best Fit) : 프로그램/데이터가 할당 가능한 영역 중에서 단편화가 가장 작은 영역에 할당
  • 최악 적합(Worst Fit) : 프로그램/데이터가 할당 가능한 영역 중에서 단편화가 가장 큰 영역에 할당

66. 가상 기억 장치(Virtual Memory)

**가상 기억 장치(Virtual Memory)

  • 주기억 장치의 부족한 용량을 해결하기 위해 보조 기억 장치를 주기억 장치처럼 사용하는 기법이다
  • 가상 기억 장치의 일반적인 구현 방법에는 프로그램을 고정된 크기의 일정한 블록(페이지)으로 나누는 페이징 기법과 가변적인 크기의 블록(세그먼트)으로 나누는 세그멘테이션 기법이 있다

워킹 셋(Working Set)

  • 운영체제의 가상 기억 장치 관리에서 프로세스가 일정 시간동안 자주 참조하는 페이지들의 집합이다

67. UNIX, LINUX 의 쉘(Shell)과 커널(Kernel)

UNIX 의 특징

  • Multi-User 및 Multi-Tasking 을 지원한다
  • 네트워킹 시스템이며 대화식 운영체제이다
  • 높은 이식성과 확장성, 프로세스 간 호환성이 높다
  • 트리 구조의 계층적 파일 시스템을 갖는다

쉘(Shell)

  • 사용자가 지정한 명령들을 해석하여 커널로 전달하는 명령어 해석기이다
  • 시스템과 사용자 간의 인터페이스를 담당한다
  • 종류 : C Shell, Bourn Shell, Korn Shell 등

커널(Kernel)

  • 운영체제의 핵심 부분인 커널(Kernel)은 프로세스 관리, 기억 장치 관리, 입출력 관리, 파일 시스템 관리 등의 기능을 수행한다
  • 사용자 인터페이스 제공은 쉘(Shell)의 기능이다

umask

  • 파일이나 디렉터리 생성 시 초기 접근 권한을 설정할 때 사용한다
  • 초기 파일의 권한은 666이고 디렉터리는 777이며 여기에 umask 값을 빼서 초기 파일 권한을 설정할 수 있다
  • 파일 초기 권한 666 - ? = 파일 권한 644

68. OSI 7계층

데이터 링크 계층(Data Ling Layer)

  • 인접한 두 개의 통신 시스템 간에 신뢰성 있는 효율적인 데이터를 전송하는 계층이다
  • 링크의 설정과 유지 및 종료를 담당한다
  • 전송 데이터의 흐름 제어, 프레임 동기, 오류 제어 등을 수행한다
  • 링크의 효율성을 향상시킨다
  • 프로토콜 종류 : HDLC, PPP, LLC, LAPB, LAPD, ADCCP

전송 계층(Transport Layer)

  • 통신 양단간(End-to-End) 투명한 데이터 전송을 제공한다
  • 에러 제어 및 흐름 제어를 담당한다
  • 표준 : TCP, UDP

69. TCP/IP

TCP(Transmission Control Protocol)

  • OSI 7계층의 전송 계층에 해당한다
  • 특징 : 접속형 서비스, 전이중 전송 서비스, 신뢰성 서비스
  • 기능 : 패킷 다중화, 오류 제어, 흐름 제어, 순서 제어

**IP(Internet Protocol)

  • OSI 7계층의 네트워크 계층에 해당하며 비신뢰성 서비스를 제공한다
  • 비연결성으로 송신지가 여러 개인 데이터 그램을 보내면서 순서가 뒤바뀌어 도달할 수 있으며 IP 프로토콜의 헤더 길이는 최소 20~60byte이다
  • ARP(Address Resolution Protocol) : 호스트의 물리 주소(MAC 주소)로부터 논리 주소(IP 주소)를 구하는 프로토콜이다

ICMP(Internet Control Message Protocol, 인터넷 제어 메시지 프로토콜)

  • TCP/IP 계층의 인터넷 계층에 해당한다. 네트워크 컴퓨터에서 운영체제의 오류 메시지를 전송받는 데 주로 쓰이며, 인터넷 프로토콜에 의존하여 작업을 수행한다
  • IP의 동작 과정에서의 전송 오류가 발생하는 경우에 대비해 오류 정보를 전송하는 목적으로 사용하는 프로토콜이다

70. TCP/UDP

TCP(Transmission Control Protocol)

  • 신뢰성 있는 연결 지향형 전달 서비스를 제공한다
  • 순서 제어, 에러 제어, 흐름 제어 기능을 제공한다
  • 전이중 서비스와 스트림 데이터 서비스를 제공한다
  • 메시지를 캡슐화(Encapsulation)와 역캡슐화(Decapsulation)한다
  • 서비스 처리를 위해 다중화(Multiplexing)와 역다중화(Demultiplexing)를 이용한다

UDP(User Datagram Protocol)

  • 비연결형 및 비신뢰성 전송 서비스를 제공한다
  • 흐름 제어나 순서 제어가 없어 전송 속도가 빠르다
  • 수시된 데이터의 순서 재조정 기능을 지원하지 않는다
  • 복구 기능을 제공하지 않는다

71. IPv6(Internet Protocol version 6)

  • 16비트씩 8부분의 16진수로 표시한다
  • 인증 및 보안 기능을 포함하고 있어 IPv4보다 보안성이 강화되었다
  • IPv6 확장 헤더를 통해 네트워크 기능 확장이 용이하다
  • 자동으로 네트워크 환경 구성이 가능하다
  • 128비트 길이릐 IP 주소다
  • 인증 및 보안 기능을 포함하고 있어 IPv4보다 보안성이 강화되었다

IPE 카테고리 내 다른 글 보러가기

댓글 남기기