1. 프로그래밍 언어 활용
1. 변수
1) 비트 (Bit, Binary Digit)
- 프로그램은 비트라고 불리는 0과 1의 값으로 작성되거나 변환되어 컴퓨터가 이해할 수 있도록 함
- 컴퓨터를 이해하기 위한 가장 기본적인 용어, 정보를 표현하는 최소 단위
- 1 byte = 8 bit
구분 | 설명 |
Byte | 1 byte = 8 bit |
KB(킬로바이트) | 1 KB = 1024 byte = 8192 bit |
MB(메가바이트) | 1 MB = 1024 * 1024 byte |
GB(기가바이트) | 1 GB = 1024 * 1024 * 1024 byte |
TB(테라바이트) | 1 TB = 1024 * 1024 * 1024 * 1024 byte |
PB(페타바이트) | 1 PB = 1024 * 1024 * 1024 * 1024 * 1024 byte |
EB(엑사바이트) | 1 EB = 1024 * 1024 * 1024 * 1024 * 1024 * 1024 byte |
2) 표현 값의 범위
- 4 bit = 0000(0) ~ 1111(5) -> 2^4 = 16개 표현 가능
- 8 bit = 00000000(0) ~ 11111111(127) -> 2^8 = 256개 표현 가능 (-128~127)
- 16 bit = 0000000000000000 ~ 1111111111111111 -> 2^16 = 65535개 표현 가능
- n bit = 2^n개 표현 가능
2. 컴퓨터 시스템 구조
(1) CPU: 프로그램 실행 및 데이터 처리
- 처리장치: 하나의 산술논리연산장치 + 내부 레지스터 + 데이터 전송을 위한 데이터 버스
- 제어장치: 명령어 해독기, 명령어 레지스터, 타이밍회로, 제어논리 등
(2) 메모리: 작업에 필요한 프로그램과 데이터를 저장
(3) I/O Device: CPU로부터 명령을 받아 데이터를 입력 또는 출력
(4) 특수 목적 레지스터
- PC(Program Counter): 다음에 실행될 명령어 주소를 저장
- AAC: 명령어의 결과를 일시 저장 (=누산기)
- MAR(Memory Address Register): 기억장치 주소 레지스터
- MBR(Memory Buffer Register): 기억장치 버퍼 레지스터
(5) 명령어 실행 단계
IF(Fetch) | ID(decode) | EX(execute) | WB(Write Back) |
- 인출(Fetch): 주 기억장치(RAM)에서 프로그램 명령어를 하나씩 인출 제어 버스를 통해 보냄
- 해석(Decode): 프로그램 명령에 따라 데이터를 해석
- 실행(Execute): 제어장치(CPU)에서 해석한 명령어를 연산장치(ALU)로 보내 연산
- 쓰기(Write Back): 처리된 데이터를 Disk에 저장할 수 있도록 주 기억장치로 보냄
3. 명령어 형식
명령어(opcode) | 주소(operand1) | 주소(operand2) |
- opcode: 수행될 연산을 지정(LOAD, ADD 등)
- 오퍼랜드: 연산을 수행하는 데 필요한 데이터 또는 데이터의 주소
1) 주소지정방식
(1) 직접 주소 지정 방식 (Direct Mode)
- 오퍼랜드부에 사용할 자료의 주소를 표현
(2) 간적 주소 지정 방식 (Indirect Mode)
- 오퍼랜드부에 실제 데이터 주소가 저장된 곳의 주소를 표현, 최소 2번 접근
(3) 즉시적 주소 지정 방식 (Immediate Mode)
- 명령어 자체 오퍼랜드를 가지고 있는 방식, 별도 기억장소에 액세스 하지 않고 바로 자료 이용 가능, 속도가 빠름
4. 자료 구조
- 컴퓨터에 데이터를 삽입, 삭제, 수정하게 해주는 논리적인 공간 구조
1) 단순 구조(Simple): 프로그래밍 언어에서 제공하는 기본 데이터 타입
ex) int, float, double, char 등
2) 선형 구조(Linear): 자료들 사이의 선후 관계가 일대일인 구조
ex) 연결 자료 구조, 순차 자료 구조, 스택, 큐 등
3) 비선형 구조(Non-Linear): 자료들 사이의 선후 관계ㅏㄱ 계층 또는 그물 형태를 가지는 구조
ex) 트리, 그래프 등
4) 파일 구조(File): 보조 기억 장치에 데이터 값이 실제로 기록되는 자료 구조
ex) 순차 파일, 색인 파일 등
5. 바인딩: 변수와 변수에 관련된 속성을 연결하는 과정
1) 정적 바인딩: 프로그램 실행 시간 전에(컴파일 시간) 속성을 연결하는 방식
2) 동적 바인딩: 프로그램 실행 시간에 속성을 연결하는 방식
6. 연산자
1) 산술 연산자(Arithmetic Operator)
+ | 더하기 |
- | 빼기 |
* | 곱하기 |
/ | 나누기 |
% | 나머지 |
2) 시프트 연산자(Shift Operator)
<< | 왼쪽 값을 오른쪽 값만큼 비트를 왼쪽으로 이동 (곱하기 2) |
>> | 왼쪽 값에 오른쪽 값만큼의 부호 비트를 채우면서 왼쪽으로 이동 (나누기 2) |
3) 보수
1의 보수 | 1 -> 0, 0 -> 1 (1은 0으로 0은 1로 변경) |
2의 보수 | 1의 보수 결과 + 1 |
4) 논리 연산자(Login Operator)
&& | AND, 두 개의 논리 값이 모두 참이면 참, 그렇지 않으면 거짓 |
|| | OR, 두 개의 논리 값 중 하나가 참이면 참, 그렇지 않으면 거짓 |
* 논리 회로
(1) AND
x | y | x*y |
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
(2) OR
x | y | x+y |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
(3) NOT
x | x' |
0 | 1 |
1 | 0 |
(4) XOR
x | y | xy'+x'y |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
(5) 부울 대수의 공식
x + 0 = x |
x * 1 = x |
x + 1 = 1 |
x * 0 = 0 |
x + x = x |
x * x = x |
4) 연산 표기법
(1) 전위(Prefix): 연산자 데이터 데이터 ex) + a 4
(2) 중위(Infix): 데이터 연산자 데이터 ex) a + 4
(3) 후위(Postfix): 데이터 데이터 연산자 ex) a 4 +
7. 프로그래밍 언어
1) 프로그래밍 언어별 특성
언어 | 특성 |
FORTRAN | 1954년, 시스템 의존적이고 프로그램 작성을 위해서는 컴퓨터 시스템 관련 지식이 많이 필요함 |
COBOL | 1960년, 프로그램 크기가 크고 구문이 복잡, 순차적 방식의 언어 |
PASCAL | 1971년, 잘 짜인 구조와 간결성, but 분리 컴파일과 문자열의 적절한 처리 제공 x |
C | 1972년, UNIX 운영체제 구현에 사용됨, 문법의 간결성, 효율적 실행, 효과적인 포인터 타입 제공 |
C++ | C언어를 발전시킨 언어 클래스 상속 등을 제공하는 객체 지향 프로그래밍 언어 |
JAVA | C++에 비해 단순하고 분산 환경 및 보안성을 지원, 컴파일을 통해 생성된 class 파일을 가상머신을 통해 실행 |
JAVASCRIPT | 1995년, 객체 지향 스크립트 언어, 웹 페이지 동작을 구현, 확장성이 좋고 배우기 쉬움 |
PERL | 텍스트 처리에 주안점을 두고 개발된 인터프리터 언어, CGI용으로 많이 사용 |
PYTHON | 배우기 쉽고 이식성이 좋은 언어, ㅇ니터프리터 언어이면서 객체 지향 언어, 스크립트 언어 |
C# | C와 C++의 발전된 형태로 사용자 인터페이스를 쉽게 만드는 컴포넌트 기능을 제공 |
GOLANG | 2009년, Google에서 만든 언어(GO), C언어와 유사 |
DART | JAVASCRIPT와 JAVA의 영향을 받아 개발된 객체 지향적인 언어 |
CEYLON | JAVA에 기반을 둔 언어로 모듈성을 주요 특징으로 가짐 |
2) 구현 기법
(1) 컴파일 방식: 고급 언어를 기계어로 번역하는 방식, 실행 속도가 높음
ex) FORTRAN, PASCAL, C, C++, JAVA 등
(2) 인터프리터 방식: 고급 언어 명령문을 하나씩 번역하고 실행하는 방식, 프로그램 실행 시에 계산됨
ex) BASIC, PROLOG, LISP, SNOBOL 등
3) 프로그램, 프로세스, 프로세서
(1) 프로그램(Program): 저장 장치에 저장되어 있는 실행 가능한 파일
(2) 프로세스(Process): 저장 장치에 저장되어 있다가 CPU 내에서 실행되고 있는 하나의 프로그램
(3) 프로세서(Processor): 프로그램이 동작하게끔 해주는 하드웨어, CPU (5대 기능: 입력, 출력, 저장, 제어, 연산)
4) 코드 종류
(1) BCD Code [6비트]: 숫자, 영어 대문자, 특수 기호를 나타내기 위해 6비트로 이루어진 코드 > 2^6 = 64개 표현 가능
Zone | Digit | ||||
(2) ASCII Code [7비트]: 통신에 주료 사용됨 > 2^7 = 128개 표현 가능
Zone | Digit | |||||
(3) EBCDI Code [8비트]: 대형 컴퓨터에 사용 > 2^8 = 256개 표현 가능
Zone | Digit | |||||||
8. 멀티플렉서 & 디멀티플렉서
1) 멀티플렉서 (Multiplexer)
- 여러 개의 입력 중 하나를 선택해 출력으로 내보내는 논리 회로
2) 디멀티플렉서 (Demultiplexer)
- 한 개의 입력을 어느 출력단에 내보낼 지 선택할 수 있는 기능을 가진 논리 회로
'STUDY > 정보처리기능사' 카테고리의 다른 글
정보처리기능사 [필기] - 응용 SW기초 기술 활용 (0) | 2021.11.11 |
---|---|
정보처리기능사 [필기] - 응용 SW기초 기술 활용 (0) | 2021.11.11 |