반응형
SMALL
■ 컴퓨터의 이해
■ 유례
- 컴퓨터는 먼저 계산한다는 의미에 라틴어 'computare'에서 유래되었다고 한다. 세계 2차 대전을 배경으로 한 영화 "이미테이션 게임"에서 앨런 튜링은 독일군의 암호를 풀어내기 위해 튜링 머신을 발명하였다. 이 튜링 머신은 컴퓨터의 시초로 평가되고 있다. 당시 튜링 머신을 보편 만능 기계(Universal Computing Machin)라고 불렀는 이 네이밍은 설계, 작곡, 디자인, 통신, 게임 등등 우리 일상의 깊게 관여하고 있는 현재의 컴퓨터의 의미와 부합하는 의미가 되었다.
■ 기능
컴퓨터란, 입력받은 데이터를 정해진 규칙대로 처리해서 처리 결과를 저장하고 출력하는 전자 장치이다.
■ 데이터 입력
- 컴퓨터는 사람으로부터 데이터를 받아들인다.
- 컴퓨터는 데이터를 입력장치를 통해 받는다.
■ 정해진 규칙 처리
- 정해진 규칙은 프로그램을 의미한다.
- 프로그램은 소프트웨어 및 애플리케이션이라고도 불린다.
■ 처리 후
- 위에서 언급한 규칙대로 연산을 수행한다.
- 즉, 컴퓨터는 중앙처리장치를 통해 연산을 수행한다.
■ 처리 결과 저장
- 컴퓨터는 데이터를 저장할 수 있는 장치를 가지고 있다.
- 즉, 컴퓨터는 처리 결과물을 기억장치에 저장한다.
■ 출력
- 컴퓨터는 데이터 처리 결과를 사람이 감각할 수 있는 형태의 정보로 사람에게 전달해준다.
- 즉, 컴퓨터는 처리 결과물을 출력장치를 통해 출력한다.
■ 컴퓨터의 구성요소
1. 소프트웨어
■ 소프트웨어란?
- 소프트웨어는 물리적인 형태가 존재하지 않는 컴퓨터의 구성요소로서, 하드웨어가 어떻게 동작해야 하는지 규정해놓은 명령어의 집합이다. 사람에게 대입하면 정신 또는 의식에 비교할 수 있겠다. 소프트웨어는 크게 시스템 소프트웨어와 응용 소프트웨어로 분류된다.
■ 시스템 소프트웨어(System SoftWare)
- 시스템 소프트 웨어는 응용 소프트웨어를 실행하기 위한 일종의 플랫폼 역할을 수행하며, 하드웨어와 직접적으로 소통하며 하드웨어 장치들이 제대로 동작할 수 있게 도와준다.
■ 응용 소프트웨어 실행 환경이다.
- Ex, Mac, Windows, Linux, 와 같은 운영체체 및 Node js, JRE와 같은 런타임 환경
■ 하드웨어 장치를 관리한다.
- Ex, 키보드 드라이버, 마우스 드라이버, USB 드라이버와 같은 각종 장치 드라이버
■ 응용 소프트웨어(Appilcation SoftWare)
- 응용 소프트웨어는 소프트웨어에서 시스템 소프트웨어를 제외한 모든 소프트웨어를 의미한다, 줄여서 애플리케이션 및 앱 이라고도 하며, 일반적으로 프로그램이라고 불린다. 종류는 사무용, 교육용, 멀티미디어, 통신용 , 게임 등 매우 다양하다.
2. 하드웨어
■ 하드웨어란?
하드웨어는 컴퓨터를 구성하는 기계적 장치들의 집합이다. 사람으로 비유하면 신체 그 자체라 할 수 있겠다. 즉, 우리의 손으로 만들 수 있는 컴퓨터의 물리적 장치를 하드웨어라 한다. 하드웨어는 중앙처리장치, 기억장치, 입력장치, 출력장치로 분류되며, 각 장치는 시스템 버스로 연결되어있다.
■ 중앙처리장치 (Central Processing Unit, CPU)
- CPU는 프로그램의 실행과 데이터 처리를 담당하는 컴퓨터의 핵심 장치로, 프로세서라고도 한다, CPU는 제어장치, 연산 장치 레지스터로 구성되는데, 각 요소들의 동장이 어우러져 CPU의 기능을 수행한다.
■ 제어장치
- CPU의 모든 동장과 데이터 흐름을 통제하고 관리한다.
- 운영체제와 소통하며 컴퓨터의 자원을 관리한다.
■ 연산장치
- 프로그램에 기술되어져 있는 명령어를 수행한다.
- 코드를 실질적으로 실행시키는 장치이다.
■ 레지스터
- CPU 내에 존재하고 작고 빠른 기억장치이다.
- 연상장치의 동작에 필요한 데이터들을 임시적으로 보관하여 제공한다.
■ 기억장치 (Memory Device)
- 기억장치는 저장장치라고도 불리며, CPU의 동장에 필요한 데이터들을 장기적으로 또는 단기적으로 보관한다. 여기에서 장기적으로 저장하는 장치를 보조기억장치라고 하며, 단기적 데이터를 저장하는 장치를 주기억장치라고 한다.
■ 보조기억장치
- 컴퓨터에게 필요한 지식을 반영구적으로 저장.
- 큰 용량의 데이터를 저장할 수 있지만, 데이터를 읽고 쓰는 속도가 느림
- CPU의 연산 속도는 매우 빠른 반면, 보조기억장치는 느리기 때문에 CPU는 보조기억장치와 소통 X
- Ex. SSD(Solid State Drive), HDD(Hard Disk Drive)
■ 주기억장치
- 컴퓨터가 프로그램을 수행하는 동안 필요한 모든 데이터를 저장.
- 큰 용량의 데이터를 저장할 수 없지만, 데이터를 읽고 쓰는 속도가 빠름.
- CPU 연산 속도를 어느 정도로 따라잡을 수 있을 정도로 빠르기에 CPU는 주 기억장치와 소통 ○
- Ex. RAM(Ramdom Access Memory), ROM(Read Only Memory)
■ 그 외
■ 입력장치 (Input Device)
- 사용자로부터 컴퓨터 내부로 데이터를 입력받는 장치
Ex. 키보드, 마우스, 마이크 트랙패드 등
■ 출력장치 (OutPut Device)
- 컴퓨터 내부로부터 얻은 정보를 사람의 감각으로 볼 수 있는 형태의 데이터로 출력해주는 장치
Ex. 모니터, 스피커, 프린터 등
■ 시스템 버스 (System Bus)
- CPU를 포함한 각 하드웨어 장치들 간에 통로. 즉, 각 하드웨어 장치를 물리적으로 연결한 전선을 의미하기 때문 에 시스템 버스 또한 하드웨어에 포함.
■ 데이터 버스
- 하드웨어 간에 데이터를 전달하는 통로
■ 주소 버스
- 데이터가 어디로 전달되어야 하는지에 대한 정보를 전달하는 통로
■ 제어 버스
- CPU의 제어장치가 생성한 제어 신호를 다른 장치로 전달하는 통로
■ 프로그래밍과 프로그램
프로그래밍이란 프로그램을 만드는 과정으로서, 특정 목적을 달성 하기 위해 설계된 알고리즘 프로그래밍 언어를 사용하여 코드로 작성하는 과정을 의미한다.
■ 프로그램
- 프로그램은 프로그래밍 언어로 만들어진 결과물이다. 즉, 프로그램은 어떠한 목적을 달성하기 위한
컴퓨터의 명령문의 집합체라 힐 수있다.
■ 컴퓨터는 기계어를 사용한다.
아래 코드는 " Hello World "를 출력하기 위한 컴퓨터 언어이다.
b8 21 0a 00 00 a3 0c 10 00 06 b8 6f 72 6c 64 a3 08 10 00 06 b8 6f 2c 20 57
a3 04 10 00 06 b8 48 65 6c 6c a3 00 10 00 06 b9 00 10 00 06 ba 10 00 00 00
bb 01 00 00 00 b8 04 00 00 00 cd 80 b8 01 00 00 00 cd 80
보다시피 컴퓨터의 언어는 사람의 언어로 이해하기 어렵기다. 컴퓨터가 이해할 수 있어도, 사람이 이해하지 못한다면 사람과 컴퓨터는 커뮤니케이션이 불가능하다, 즉 컴퓨터와 사람의 언어를 매개해 줄 무언가가 필요하다.
■ 프로그래밍 언어
- 프로그래밍 언어는 사람과 컴퓨터를 매개해주는 언어이며, 모든 프로그래밍 언어는 사람들이 이해할 수 있음과 동시에 컴퓨터의 자세한 동작을 기술할 수 있도록 만들어졌다. 우리는 기계어 대신 프로그래밍 언어를 사용함으로써 컴퓨터와 소통할 수 있다.
System.out.println("Hello World")
// 프로그래밍 언어를 사용하면 "hello World"를 손쉽게 출력할 수 있다.
■ 컴파일
- 프로그래밍 언어는 사람과 컴퓨터를 매개할 뿐, 컴퓨터는 프로그래밍 언어로 작성된 소스 코드를 이해하지 못한다. 그러하여 소스코드를 작성한 후에 컴퓨터에게 내용을 전달하기 위해 소스코드를 기계어로 바꿔주어야 하는데 이를 컴파일이라고 한다. 컴파일이 완료된 소소코드는 기계어로 변환되어 컴퓨터가 이해할 수 있다.
■ 빌드 (Build)
- 컴파일은 빌드라는 과정의 일부이다. 빌드는 작성한 소스 코드를 실행할 수 있는 산출물로 변환시키는 과정을 의미하는데, 그 과정 중에 소스코드를 기계어로 번역하는 컴파일 과정이 포함되어있다. 컴파일 마친 코드는 기계어 코드로 번역되어 컴퓨터가 이해할 수 있을 뿐, 아직 사용자가 소스 코드를 실행할 순 없다. 프로그램이 실행되려면. exe 또는. msi 확장자를 가진 실행파일로 빌드시키는 과정이 필요하다. 빌드가 완료되어야 소스 코드가 비로소 실행시킬 수 있는 하나의 프로그램으로 완성된다.
■ 통합개발환경 (integrated Development Environment, IDE)
- IDE 코드를 작성할 때 사용하는 프로그램으로, 프로그래밍에 필요한 모든 작업을 하나의 프로그램 안에서 처리할 수 있도록 만들어진 프로그램이다. IDE를 사용하면 단순히 코드를 작성하고 편집하는 것뿐만이 아니라 디버깅, 빌드, 등의 작업을 하나의 IDE 안에서 할 수 있다. Visual Studio Code, IntelliJ, Eclipse 등이 대표적인 IDE에 해당한다.
LIST
'Programming > Cs' 카테고리의 다른 글
[지식] 변수, 상수, 리터럴, 타입변환 (2) | 2022.05.04 |
---|---|
[지식] String (0) | 2022.05.04 |
[지식] Linux 기초 (0) | 2022.05.02 |
[지식] 넷플릭스의 4A 피드백 문화 (3) | 2022.04.25 |
[지식] 의사 코드 (pseudo Code) && SQ3R 방법론 (0) | 2022.04.25 |