2021. 12. 8. 13:23ㆍDocument
컴퓨터의 구성요소는 하드웨어(Hardware)와 소프트웨어(Software)로 나눌수 있다. 하드웨어는 기계적 장치를 말하며 소프트웨어는 프로그램을 가리킨다. 우리가 사용하는 물리적인 컴퓨터를 하드웨어라 하고 그 안에 있는 운영체제나 각종 프로그램들을 소프트웨어라고 한다.
컴퓨터를 사용한 사람이라면 다들 알고 있듯이 컴퓨터는 하드웨어이고 그 안에서 구동되는 프로그램이 소프트웨어이다.
하드웨어(Hardware)
컴퓨터의 모든 물리적 부품(장치)을 뜻한다. 입력, 연산, 제어, 기억, 출력 등 다섯 가지 기능을 구현하며 이를 위해 컴퓨터는 여러 가지 부품들로 구성되어 있다.
소프트웨어(Software)
컴퓨터 소프트웨어는 컴퓨터에게 동작 방법을 지시하는 명령어 집합의 모음이다. 프로그램 소프트웨어는 컴퓨터 하드웨어에 직접 명령어를 주거나 다른 소프트웨어에 입력을 제공함으로써, 명령어의 기능을 수행한다. 이처럼 소프트웨어는 컴퓨터의 하드웨어 상에서 구동되거나 처리되는 무형물을 지칭하는 말이다. 컴퓨터 프로그램은 0과 1로만 이루어져 있기 때문에 아무리 복잡한 프로그램도 물질이 아닌 데이터로 이루어져 있기 때문에 인터넷으로 다운 받아서 사용할 수 있다. 만약 프로그램이 물질이였다면 다운 받고 프로그램이 택배로 도착할 때까지 기다려야 할 것이다. 하지만 0과 1로 이루어져 있기 때문에 인터넷만 연결되어 있으면 언제 어디서든 프로그램을 다운로드할 수 있다.
운영체제(OS)
운영체제도 소프트웨어의 일종이다. 하드웨어와 소프트웨어를 연결해 주는 특수한 소프트웨어이다. 우리가 흔히 접하는 MS의 윈도우나 Apple의 Mac이 운영체제이다. 운영체제라는 특수한 소프트웨어를 컴퓨터에 설치한 후, 그 운영체제 속에 게임 등의 다른 소프트웨어를 설치하는 것이다. 즉, 컴퓨터라는 기계를 실제로 움직여 주는 소프트웨어가 운영체제이다.
사람에 대입해서 얘기해 보자면
사람 | 컴퓨터 |
육체 | 하드웨어 |
자아 | 운영체제 |
지식 | 소프트웨어 |
육체가 있어야 사람은 생각할 수 있고 생각대로 움직일 수 있다. 그리고 자아가 있어야 다양한 지식들을 받아들이며 살아갈 수 있다.
이처럼 하드웨어가 있어야 소프트웨어를 가동시킬 수 있고 소프트웨어를 가동하기 위해 하드웨어와 연결해주는 운영체제라는 소프트웨어가 필요한 것이다.
JVM 가상 세계
자바 또한 위와 같은 환경을 가지고 있다. JVM(Java Virtual Machine)은 이름 그대로 가상 세계다. 현실 세계에서 컴퓨터를 구동하기 위해서는 물리적 컴퓨터인 하드웨어와 운영체제, 그리고 그 위에서 구동될 소프트웨어가 필요하다. 거기에 더해 소프트웨어를 개발할 수 있는 개발 도구가 필요하다. 자바의 가상세계는 이러한 현실 세계를 그대로 모방하고 있다.
현실 세계 | 가상 세계 | |
소프트웨어 개발 도구 | JDK - 자바 개발 도구 | JVM용 소프트웨어 개발 도구 |
운영체제 | JRE - 자바 실행 환경 | JVM용 OS |
하드웨어 - 물리적 컴퓨터 | JVM - 자바 가상 기계 | 가상의 컴퓨터 |
현실 세계에서 소프트웨어, 즉 프로그램은 개발자가 개발 도구를 이용해 개발하고 운영체제를 통해 물리적 컴퓨터인 하드웨어 상에서 구동된다. 자바가 만들어 주는 가상 세계도 이와 마찬가지다. 자바 개발 도구인 JDK를 이용해 개발된 프로그램은 JRE에 의해 가상의 컴퓨터인 JVM 상에 구동된다.
참고 자료
스프링 입문을 위한 자바 객체 지향의 원리와 이해 - YES24
자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량 애플리케이션 프레임워크인 스프링은 자바와 객체 지향이라는 기반 위에 굳건히 세워져 있다. 따라서 스프링을 제대로 이해하고 활용
www.yes24.com
'Document' 카테고리의 다른 글
[컴퓨터 기초] 런타임(Run Time)과 컴파일타임(Compile Time) (0) | 2021.11.16 |
---|---|
[JSP/Servlet 개념정리] POJO를 사용하는 이유가 뭘까 (0) | 2021.07.20 |
[JSP/Servlet 개념정리] JSTL/EL문 구동 방식 (0) | 2021.07.18 |
2진법과 비트(bit) (0) | 2021.02.17 |