일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- webhacking
- HTML
- 국가정보원
- codeup
- 불법유통
- 화학물질
- 프로젝트
- UKPT
- Los
- 웹 해킹 입문
- 여행
- 국정원
- 화학물질불법유통온라인감시단
- UKPT level
- 국가기록원
- MITRE ATT&CK
- 정보보안
- 대외활동
- 파이썬
- 12기
- 경기팀
- nurisec
- 기타정보
- PHP
- 불법유통근절
- suninatas
- 연구모임
- 도구모음
- 화학물질안전원
- Service
- Today
- Total
agencies
컴퓨터개론 정리 Ⅰ 본문
컴퓨터개론 정리본
포털(Portal)의 사전적 의미는 현관문으로, 인터넷 포털이란?
인터넷 사용자가 원하는 정보를 얻기 위해 가장 먼저 접속하는 사이트를 의미합니다.
* 포털 사이트는 이용자가 필요로 하는 서비스를 종합적으로 모아 놓으며 네티즌들이
굳이 특정한 서비스를 위해 다른 사이트를 방문하지 않도록 다양한 서비스를 마련하고 있다.
포털 사이트의 주요 수익 모델이 광고이므로 접속하는 네티즌이 많은 것은 바로 회사의 수익과 직결된다.
그러므로 포털 사이트는 최대한 많은 이용자들이 자사 사이트를 통과하도록 한다.
블로그(Blog)는 인터넷을 의미하는 웹과 자료를 뜻하는 로그를 합쳐서 만든 용어로,
개인 스스로가 가진 느낌이나 생각 알리고 싶은 견해나 주장 같은 내용을 웹에다 올려
다른 사람도 보고 읽을 수 있게 공개된 개인 사이트이다.
컴퓨터의 정의는 전자적으로 계산을 수행하는 장치이다.
컴퓨터는 빠르고 정확한 계산을 위하여 처리, 저장, 입력, 출력 기능을 수행합니다.
컴퓨터가 수행하는 계산의 대상을 데이터 또는 자료라 하며, 처리 기능을 거쳐 출력된 의미 있는 자료를 정보라고 합니다.
* 컴퓨터는 기본적으로 전기가 흐르거나 흐르지 않는 정보를 의미하는 1과 0 두가지 신호인 디지털 데이터만을 인식하므로 컴퓨터 외부의 문자, 영상, 음성과 같은 여러 형태의 데이터는 컴퓨터 내부에서 모두 디지털 데이터로 변환된어 처리된다.
중앙처리장치 : CPU는 연산을 수행하는 ALU와 연산을 제어하는 제어장치로 구성되며 이 중앙처리장치의 칩을 프로세서라고 합니다.
소프트웨어 : 컴퓨터가 수행할 작업을 지시하는 전자적 명령어들의 집합으로 구성된 프로그램을 의미합니다.
입력장치 : 데이터 처리를 위하여 데이터를 컴퓨터 내부로 입력하는 기계로, 스캐너, 키보드가 있습니다.
주기억장치 : CPU에서 처리 중인 프로그램과 데이터를 임시로 저장하는데 이용됨 (RAM:휘발성 메모리)
보조기억장치 : 프로그램이나 데이터를 저장하기 위한 저장공간을 의미함 (USB, HDD)
출력장치 : 컴퓨터의 처리 결과를 사용자가 사용 가능한 형태나 적당한 최종적인 형태로 바꾸어 주는 장치 (프린터)
현재 화면 디스플레이로 대부분 LCD나 LED를 사용하고 있다.
액정 디스플레이인 LCD는 액정에 정해진 전압을 가하면 결정 방향이 일정하게 줄을 지어 빛의 반사가 변화해서
문자나 그림을 표시하는 디스플레이 장치이다
LED는 자체 발광 다이오드라고도 하는데 다이오드란 전류가 한쪽 방향으로만 흐르게 만드는 회로 소자를 의미한다.
소프트웨어는 크게 응용 소프트웨어와 시스템 소프트웨어로 나눈다.
시스템 소프트웨어 : 컴퓨터가 잘 작동하도록 도와주는 기본 소프트웨어 (운영체제)
응용소프트웨어 : 문서 작성이나 인터넷 검색과 같은 특정 업무에 활용되는 소프트웨어 (엑셀, 워드, 한글)
* 운영체제는 컴퓨터 시스템의 전반적인 동작을 제어하고 조정하는 시스템 프로그램으로
하드웨어와 응용프로그램 간의 인터페이스 역할을 하면서 컴퓨터 자원을 관리한다.
즉 인간과 컴퓨터 간의 상호작용을 위한 인터페이스를 제공한다.
컴퓨터의 기원
- 주판과 파스칼의 계산기
* 파스칼의 계산기 : 톱니바퀴의 원리를 이용한 수동식 계산기
- 배비지의 분석엔진
* 그 당시 기술 수준으로 구현하지 못한 것으로, 지금의 모든 범용 컴퓨터의 모체가 됨
- 홀러리스의 천공카드기계
- 천공카드기계(PCS)를 발명하여, 미국의 인구 조사에 사용됨
- 계산이론의 발전
* 폰노이만(프로그램 내장 방식 컴퓨터 개념 제시)
- ABC와 마크-I
* 최초의 자동 전자식 디지털 컴퓨터 ABC, 마크-I : 72개의 톱니바퀴로 구성된 계산기
- 진공관을 이용한 제 1세대 컴퓨터
* 기계어를 이용하여 프로그램을 만들어 컴퓨터를 작동함 (최초의 전자식 컴퓨터 에니악)
- 트렌지스터를 이용한 제 2세대 컴퓨터
* 트렌지스터를 사용함에 따라 컴퓨터의 크기는 작아지며, 성능은 우수하고 가격은 저렴해짐 (주기억장치:자기 코어)
* 프로그래밍 언어(포트란, 코볼)등이 개발됨 : 소프트웨어가 발전하기 시작함
- 집적회로를 이용한 제 3세대 컴퓨터
* 컴퓨터는 더욱 소형화 됨, 컴퓨터가 동시에 여러 작업을 수행할 수 있는 다중프로그래밍 기술이 적용됨
- 고밀도 직접회로를 이용한 제 4세대 컴퓨터
- 미래의 제 5세대 컴퓨터
* 인간과 대화하고 자연 언어로 명령을 처리하며 컴퓨터도 인간과 같이 생각하고 창의적인 작업을 수행할 것으로 보임
* 인공지능 분야, 신경망 분야 등이 존재
인터넷과 WWW의 등장
1969년 미 국방성에 의해 최초의 인터넷 알파넷이 탄생된 이후 유럽의 입자물리학연구소에서 연구 결과 및 자료의 효율적인 공유를 목적으로 팀버너스 리는 월드와이드웹(WWW)을 개발했다.
단위 | 바이트 수 |
Byte | 1 |
Kilo Byte | 1024 |
Mega Byte | 1048576 |
Giga Byte | 1073741824 |
Tera Byte | 1099511627776 |
Peta Byte | 1125899906842624 |
Exa Byte | 1152921504606846976 |
Zetta Byte | 1180591620717411303424 |
Yotta Byte | 1208925819614629174706176 |
1Bit : 1 또는 0 (on/off)
1byte : 한 문자(8비트)
1KB : 1/2페이지(1000바이트)
1MB : 책 1권 (500페이지 분량)
1GB : 영화 1편 (약 700MB ~)
※ 이진수를 음수로 표현하는 방법 중 일반적으로 가장 많이 이용하는 방법은 2의 보수 표기 방식이다.
-1 : 1111
-2 : 1110
-3 : 1101
-4 : 1100
-5 : 1011
-6 : 1010
-7 : 1001
-8 : 1000
* 모든 음수는 4비트의 가장 왼쪽 비트가 1이라는 사실을 알 수 있다.
n 비트에서 -a의 2의 보수 계산 방법 : 2ⁿ - a
논리
참(true)과 거짓(false)을 의미하는 두 가지 정보를 논리 값이라 한다.
하나의 비트 정보도 0과 1이므로 이를 각각 거짓과 참으로 표현할 수 있다.
AND
0 0 0
0 1 0
1 0 0
1 1 1
OR
0 0 0
0 1 1
1 0 1
1 1 1
NOT
0 1
1 0
NAND
0 0 1
0 1 1
1 0 1
1 1 0
NOR
0 0 1
0 1 0
1 0 0
1 1 0
XOR
0 0 0
0 1 1
1 0 1
1 1 0
명령어
메모리에 저장되는 프로그램을 구성하는 명령어의 형식과 종류
- 연산부분과 피연산부분으로 구성됨
연산부분 : 명령어가 수행해야 할 기능을 의미하는 코드
피연산부분 : 연산에 참여하는 자료를 의미하는 코드
명령어는 실제로 메모리에 저장되는 이진수의 코드(기계어)이지만, 인간에게 친숙하게 표기하기 위해 ADD LDA STA 등의 기호 단어를 이용한 연산자와 A, B, C 등의 피연산자의 이름으로 명령어를 기술할 수 있다.
ADD A : 피연산자의 자료 A와 레지스터의 자료를 더하는 명령어
LDA B : 피연산자의 자료 B(주소 B의 자료)를 레지스터에서 가져오는 명령어
STA C : 레지스터의 내용을 피연산자 C(주소 C)에 저장하는 명령어
HLT : 컴퓨터를 종료하는 명령어
기억장치
메모리의 저장소는 주소(address)를 이용하여 각각 바이트 단위로 고유하게 식별할 수 있다.
컴퓨터가 한 번에 작업할 수 있는 데이터의 크기를 워드 크기(word size)라 한다.
자료는 주로 워드 단위로 기억장치와 중앙처리장치 사이를 이동한다.
개인용 컴퓨터에서 1워드는 32비트(4비트)이거나 64비트(8비트)이다.
버스 : 메모리와 중앙처리장치 또는 여러 장치의 제어기 사이에는 주소 버스, 자료 버스, 제어 버스가 연결되어 있다.
ROM : 읽기 전용 메모리로 한 번 저장된 자료는 더 이상 쓰기를 할 수 없어 읽기만 가능한 메모리이다.
플래시 메모리 : RAM과 ROM의 장점을 가진 메모리로, 소비 전략이 작고 전원이 꺼져도 저장된 정보가 사라지지 않은 채 유지된다(휴대전화, 디지털 카메라) 플래시 메모리는 메모리 셸들의 한 부분이 섬광(flash)처럼 단 한 번의 동작으로 지워질 수 있다고 해서 플래시라 명명하였다.
캐시 : CPU의 속도에 의해 컴퓨터의 속도가 결정된다고 볼 수 있으나, CPU 속도만 빠르고 다른 기억장치나 버스가 느리다면 빠른 CPU 속도의 장점을 최대로 살릴 수 없다. 따라서 이러한 문제점을 해결하기 위해 주변기기의 속도를 빠르게 하는 대표적인 방법인 캐시(cache)메모리의 사용으로, 주기억장치와 CPU의 속도의 차이를 해결한다.
* 캐시 메모리는 RAM과 CPU 간 처리속도의 차이로 인하여 발생하는 병목현상을 해결하기 위한 유용한 수단이다.
RAM은 CPU보다 처리속도가 훨씬 느리기 때문에 RAM과 CPU의 레지스터 간 데이터 이동이 CPU가 수행해야 할 연산들 가운데 가장 오래 걸린다.
따라서 RAM보다 훨씬 빠른 속도를 가진 캐시 메모리를 이용하면 컴퓨터의 처리속도를 향상시킬 수 있다.
※ 무어의 법칙
마이크로 칩의 처리 능력은 18개월마다 두 배로 증대된다.
명령어에 따른 프로세서 분류
CISC : 일반적으로 명령어의 구조가 복잡하고 100~250개의 다양한 명령어를 제공한다
인텔의 80x86 계열과 모토롤라의 680x0 계열의 프로세서는 CISC 프로세서이다.
현재 많이 사용되는 인텔 계열의 프로세서도 CISC 프로세서로 복잡한 프로그램을 적은 수의 명령어로 구성할 수 있는 장점이 있으나, CISC 칩은 복잡한 명령어의 실행을 위한 복잡한 회로가 이용되므로 생산가가 비싸고 전력 소모가 많아 열이 많이 발생하는 단점이 있다.
RISC : 명령어의 수가 적고 그 구조도 단순하다.
하나의 프로그램을 수행하려면 RISC 프로세서는 CISC보다 많은 명령어를 실행해야 하지만 하나의 명령어가 단순하여 그 처리 속도가 매우 빨라 전체적으로 RISC 프로세서는 CISC 프로세서보다 수행 속도가 빠르다고 알려져 있다.
RISC 프로세서는 레지스터 내부에서 모든 연산이 수행되며 메모리의 참조는 제한적이다. 이를 지원하기 위해 RISC 프로세서는 상대적으로 레지스터가 많은 특징을 갖는다, 또한 RISC 프로세서의 명령어는 고정 길이이며 쉽게 해독이 되도록 명령어 형식을 갖는다.
프로그래밍 언어의 필요성
컴퓨터와 사람이 서로 의사교환을 하기 위한 것이 프로그래밍 언어이다.
프로그래밍 언어는 사람이 컴퓨터에게 지시할 명령어를 기술하기 위해 만들어진 언어이다.
기계어 : 초기의 프로그래밍 과정은 프로그래머가 컴퓨터에게 지시할 명령을 기계어로 직접 표현하는 방식이었다.
기계어는 0과 1로 표현되는 프로그래밍 언어로서 컴퓨터가 직접 이해할 수 있는 유일한 언어이다.
어셈블리어 : 복잡한 기계어를 간략하게 기호화 한 어셈블리어를 사용하게 되었으며 시간이 흐름에 따라 컴퓨터의 상업적 이용이 늘어나게 되었고 그 결과 코볼, 파스칼, 포트란, C 등의 고급 언어가 등장했다.
통합개발환경
프로그램을 개발하기 위해서는 기본적으로 에디터, 컴파일러, 링커, 로더, 디버거 등이 필요하다.
프로그램을 개발하는 데 필요한 도구들을 통합적인 그래픽 환경으로 제공하는 개발 환경을 통합개발환경(IDE)라고 한다.
(예시) 비주얼 스튜디오
컴파일 : 프로그램 언어로 만들어진 코드가 저장된 소스(source) 파일(원시 파일)을 목적 파일(object file)로 만들어주는 프로그램을 컴파일러(compiler)라고 한다.
컴파일러는 고급 언어로 작성된 프로그램을 기계어로 바꾸어주는 프로그램이다.
즉 고급 언어로 작성된 프로그램을 컴퓨터가 직접 이해할 수는 없으므로 컴퓨터가 이해할 수 있는 언어인 기계어로 바꿔줘야 하는데 이 작업을 컴파일러가 수행한다.
※ 원시코드에서 실행파일이 변환되어 실행되는 과정
1. 원시코드
=> 어셈블러, 컴파일러, 인터프리터
2. 목적코드
=> 링커(linker)
3. 실행파일
=> 로더(loader)
4. 메모리
5. 실행
※ 자주 사용하는 프로그램들은 프로그램을 작성할 때마다 새로 작성하는 것이 아니라 미리 만든 다음 컴파일하여 저장해놓는데 이러한 파일들을 라이브러리라고 한다.
로더는 작성된 프로그램을 컴퓨터의 주기억장치에 로드함으로써 프로그램을 실행 가능하게 하는 역할을 수행한다.
디버거 : 프로그램의 명령을 수행함에 있어 컴퓨터의 상태를 보여주거나 오류(또는 에러) 발생 시 오류를 쉽게 찾을 수 있도록 도와주는 프로그램이다.
* 디버거의 유래는, 정상적으로 작동하던 프로그램이 갑자기 오작동을 했는데 원인을 알 수 없어 고민하던 중 우연히 컴퓨터 사이에 끼어서 죽어 있는 나방을 발견하고 이것을 제거했더니 프로그램이 정상적으로 작동했다.
나방이 전선 사이에 끼어서 전기 합선이 일어났던 것이었다.
인터프리터 : 컴파일처럼 고급 언어를 기계로 번역해주는 역할을 수행한다.
단 컴파일러는 원시 코드 전체를 읽은 다음 이를 기계어로 번역해주는 데 비하면, 인터프리터는 원시 코드를 한 줄씩 읽어 들여 목적 코드로 바꾸어준다. (프로그램 언어 베이직이 인터프리터를 사용하는 대표적인 프로그램이다)
따라서 인터프리터는 컴파일러에 비해 번역 속도가 느릴 수 밖에 없지만 프로그램을 작성할 때는 보다 융통성을 가질 수 있다.
'Ⅲ. 정보보안' 카테고리의 다른 글
컴퓨터 사용 흔적은 유틸리티로 확인할 수 있다. (0) | 2023.12.26 |
---|---|
컴퓨터개론 정리 Ⅱ (0) | 2023.12.26 |
UKPT #10 (0) | 2023.12.25 |
UKPT #9 (0) | 2023.12.25 |
UKPT #8 (0) | 2023.12.24 |