정보처리기사(4과목 프로그래밍 언어 활용)
카테고리: IPE
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보다 보안성이 강화되었다
댓글 남기기