일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 애니메이션 기술의 발전 과정
- 데이터 전송 코드
- 교환 통신망과 데이터의 교환 방식
- 병렬처리 시스템의 분류 방법
- 통신제어의 원리
- 전방 처리기의 개념과 기능
- 링크 연결의 해제 원리
- 애니메이션의 활용 분야
- 병렬처리기의 정의
- 애니메이션 저작도구의 특징
- 애니메이션 기법
- 교환 통신망과 데이터
- 통신제어의 구조
- 링크 연결의 설정 원리
- 전송매체의 종류
- 체증제어의 정의
- 네트워크의 형태
- 네트워크 아키텍처의 종류
- 변복조기의 개념과 기능
- 흐름제어의 정의
- 네트워크 아키텍처의 기본 개념
- 상호연결망의 구조
- 병렬처리 시스템의 개념
- 비디오 처리 기술의 발전
- 비디오 처리 기술의 개요
- 네트워크 아키텍처의 비교
- 애니메이션 기법의 종류
- 병렬처리기의 종류
- 애니메이션 저작도구의 종류
- 애니메이션 기술의 개요
- Today
- Total
하드웨어와 소프트웨어의 정의와 구성 요소에 관하여
하드웨어와 소프트웨어의 정의와 구성 요소에 관하여 알아보도록 하겠습니다. 컴퓨터 시스템은 기본적으로 하드웨어와 소프트웨어로 구성됩니다. 하지만 경우에 따라서는 펌웨어도 따로 구분됩니다. 여기서 소프트웨어라는 것은 프로그램을 의미하며 컴퓨터를 효율적으로 제어하는 시스템 소프트웨어와 특정 분야의 업무를 처리하는 응용 소프트웨어로 구분됩니다. 그리고 하드웨어는 소프트웨어와 달리 기계적인 장치입니다. 중앙처리장치, 메모리 장치, 입력장치, 출력장치 등이 바로 하드웨어라고 볼 수 있습니다. 보다 쉽게 이해하기 위해서 손으로 직접 만질 수 있는 것은 하드웨어, 직접 만지지 못하는 것을 소프트웨어라고 생각하시면 됩니다. 앞서 설명했던 장치들은 모두 상호 시스템 버스로 연결되어 있습니다. 여기서 상호 시스템 버스는 중앙처리장치와 기억장치, 입력장치와 출력장치들을 상호 연결 해 주는 중심 통로라고 보시면 되는데 주소를 지정하는 단방향 어드레스 버스와 지정한 주소에서 데이터를 읽고 쓰는 양방향 데이터 버스, 제어신호를 주고받는 양방향 제어 버스로 연결되어 있습니다. 다음으로 입력 장치에 대해서 알아보도록 하겠습니다. 먼저 입력 장치는 문자와 기호 등을 컴퓨터가 이해할 수 있는 전기적인 신호로 변환하는 장치입니다. 우리가 실생활에서 사용 중인 키보드, 마우스, 센서, 통신포트, 스캐너, 마이크, 터치스크린, 생체 인식기 등이 바로 입력장치입니다. 다음으로 출력장치는 중앙처리장치에서 처리한 결과를 출력하는 장치입니다. 사람이 인지할 수 있는 문자, 기호, 도형, 소리 등으로 출력됩니다. 가장 대표적인 출력장치로는 모니터, 스피커, 프린터 등이 있습니다. 다음으로 기억장치입니다. 기억장치는 크게 2가지로 나누어집니다. 프로그램과 데이터를 기억하여 중앙처리장치에서 명령어를 읽어가는 주기억장치와 이러한 주기억장치를 보조하는 보조기억장치가 있습니다. 주기억장치는 롬 메모리와 램 메모리를 말하며, 보조기억장치는 디스크, 테이프, USB 등이 있습니다. 다음으로 사람으로 치면 두뇌라고 볼 수 있는 중앙처리장치입니다. 중앙처리장치는 명령을 수행하고 데이터를 처리하는 장치입니다. 연산장치, 제어장치, 레지스터로 구성되어 있으며 명령어를 기억장치에서 읽고 제어장치에서 해독해서 연산장치와 레지스터 그리고 외부 장치로 제어신호를 발생합니다. 이때 연산장치는 사칙연산이나 논리연산을 담당하고 레지스터는 중앙처리장치 내의 기억장치를 담당하며 제어장치는 프로그램을 처리하는 가장 중심적인 장치라고 볼 수 있습니다. 하드웨어에서는 입력장치로 정보를 수집하고 기억장치에서 정보를 저장해 중앙처리장치로 정보를 처리하고 출력장치로 정보를 제공합니다. 다음으로 소프트웨어의 정의와 구성요소에 관하여 알아보도록 하겠습니다. 하드웨어 장치를 우리가 원하는 대로 움직이게 하기 위해서 지시하고 통제할 때 프로그램을 사용합니다. 이 프로그램은 명령어들의 집합인데 이것이 바로 소프트웨어입니다. 앞서 설명했던 시스템 소프트웨어의 가장 대표적인 예시는 바로 운영체제입니다. 운영체제는 컴퓨터 내의 하드웨어와 소프트웨어 자원들을 관리하고 제어하며 여러분이 컴퓨터에 쉽게 접근할 수 있도록 편리한 인터페이스를 제공합니다. 또한 수행 중인 프로그램들의 효율적인 운영을 도와주고 작업처리 과정 중에 데이터를 공유합니다. 특히 입력과 출력에 대해서 보조적인 기능도 수행하며 만일 오류가 발생해도 오류를 원활하게 처리합니다. 이렇게 하드웨어와 소프트웨어는 모두 프로그래머가 프로그래밍 언어를 사용해 사용자들이 보다 쉽게 컴퓨터를 사용할 수 있도록 프로그래밍하게 됩니다. 이러한 프로그래밍 언어는 고급언어, 중급언어, 저급언어로 등급을 나누며 사람의 언어체계와 가까울수록 등급이 높아집니다. 먼저 저급언어는 컴퓨터가 이해할 수 있는 언어인 기계어와 가장 근접한 언어입니다. 대표적인 언어로 어셈블리어가 있습니다. 이러한 어셈블리어를 사용하기 위해서는 사용하고 있는 중앙처리장치에 대한 체계적인 지식을 요구합니다. 중앙처리장치마다 고유의 어셈블리 언어체계를 보유하고 있기 때문에 언어의 호환성이 없는 것이 특징입니다. 특히 기계어로 변환할 때는 언어 번역기인 어셈블러가 필요합니다. 다음으로 중급언어는 이용자가 쉽게 프로그래밍이 가능하고 처리 속도도 빠르며 프로그램 양도 저급언어와 비슷한 수준을 가집니다. 대표적인 중급언어로 C언어가 존재합니다. 다만 C언어는 고급언어로 분류되기도 하지만 대부분의 프로그래머는 중급언어로 따로 분류합니다. 마지막으로 고급언어는 앞서 설명한 바와 같이 인간이 사용하는 가장 유사한 언어체계입니다. 그렇기 때문에 사람이 프로그래밍하기에 가장 쉬운 언어입니다. 대표적인 고급언어로 베이직, 파스칼, 코볼 등이 있습니다. 이때 고급언어를 기계어로 변환하기 위해서 번역기를 사용하게 되는데 이 번역기를 컴파일러 또는 인터프리터라고 칭합니다. 컴퓨터 공학에서 C언어는 굉장히 필수적인 프로그래밍 언어입니다. 컴퓨터가 발전하면서 많은 프로그래밍 언어가 개발되었지만 여전히 C언어는 많은 곳에서 쓰이기 때문입니다. 저는 개인적으로 가장 기초적인 프로그래밍 언어인 C언어는 초등학교 필수과목에 한 과목 정도는 넣어야 한다고 생각합니다. 어린 나이에도 개념만 잡힌다면 습득하기 쉽고 아이들의 발상은 어른들의 발상을 뛰어넘는 경우가 종종 있기 때문에 아이들이 프로그래밍을 어렸을 때부터 친근하게 습득하면 우리나라 장래가 밝다고 생각하기 때문입니다. 지금까지 하드웨어와 소프트웨어의 정의와 구성요소를 포함해 프로그래밍 언어까지 알아봤습니다.