Java 기본 배우기 -컴퓨터 기본상식, 자바가상머신-

1. 프로그램(program)

 

컴퓨터에서 실행될 때 특정 작업을 수행하는 일련의 명령어들의 모음, 집합

 

2. 운영체제(Operating system, OS)

 

window, Ios, linux, android, mac, ...

 

시스템 하드웨어를 관리 + 사용자와 상호작용하는 것을 도와주는 소프트웨어

 

응용 소프트웨어를 실행하기 위해 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어

 

운영체제도 하나의 프로그램

 

하드웨어 = 키보드, 마우스, 모니터, ....

 

 

3. 컴퓨터 자료표현

 

3-1) 비트(bit, binary digit)

 

컴퓨터가 값을 저장할 수 있는 최소 단위

 

하나의 비트는 2가지 정보 0,1을 표현

 

그러면 비트가 2개라면? 2*2 = 4가지, >>> 00,01,10,11

 

비트가 3개라면? 2*2*2 = 8가지

 

...

 

비트가 n개라면... $2^{n}$가지 표현 가능

 

3-2) 바이트(byte)

 

1byte = 8bit

 

bit는 너무나 적어 8개씩 묶어서 하나의 1byte로 처리

 

컴퓨터가 정보를 처리하기 위한 최소 단위

 

-----------------------------------------------------------------------------------------------------------------------------

 

SI vs. IEC

 

참고로 컴퓨터 c드라이브 용량보면.. 예를 들어 난 500GB를 샀는데 실제 컴퓨터 보면 475GB로 되어 있던데..

 

이 차이가 어디서 나오냐면

 

byte 표현에 SI표현과 IEC표현이 있음

 

SI표현은 $10^{3}$을 기준으로 B, MB, KB, GB...를 표현하고..

 

IEC표현은 $2^{10}$을 기준으로 MIB, KIB, GIB,...라고 표현한다

 

(상식) 컴퓨터 용량 단위에 대한 진실 | 오늘도 끄적끄적 (perfectacle.github.io)

 

(상식) 컴퓨터 용량 단위에 대한 진실

이제 사람들이 IT에 많은 관심이 생겨서1TB 짜리 저장장치를 사도 온전히 1TiB가 아님을 알 수 있다.내가 여기서 TB와 TiB를 사용했는데, 이에 대해 알아보자. SI 단위프랑스어로 Système international d’

perfectacle.github.io

 

 

500GB는 byte로 환산하면 5000억 byte인데.. 

 

컴퓨터에서는 이진수 계산을 하다보니 $2^{10}$ 단위로 나눠서 계산하다보니 475GB가 된다고함

 

계산은 이렇게 IEC로 하는데 표현은 컴퓨터에서도 GB로 표현해버리는거지

 

-----------------------------------------------------------------------------------------------------------------------------

 

3-3) 이진수(binary)

 

계산할줄 알지...

 

실제로 1바이트 기준으로 컴퓨터가 표현할 수 있는 범위는 256가지니까.. 정수범위 표현은 -128~127까지이다

 

그러다보니 2번째 이진수 10001001은 1바이트 기준으로 127까지 표현할 수 있어서 137로 보지 않고

 

음수라고 판단을 하게 됨

 

이진수 보수법을 취해서 -119로 계산한다고함

 

 

 

4. 자바 가상 머신(JVM, Java virtual machine)

 

자바 바이트코드를 실행할 수 있는 주체

 

자바 바이트코드는 플랫폼(운영체제)에 독립적이다 

 

이 말은 운영체제마다 특별한 자바 바이트코드라는 것이 존재하는 것은 아니다. 어떤 운영체제에서든 자바 바이트코드는 똑같다

 

하지만 JVM은 플랫폼에 독립적인 것은 아니다.

 

모든 JVM은 자바 가상 머신 규격에 정의된대로 자바 바이트코드를 실행함

 

내가 맥이든 리눅스든 윈도우든 어디서 자바 코드를 짜든 동일하게 짜지만, 이것을 실행시키기 위해서는 JVM을 사용해야하는데..

 

JVM은 맥 전용 JVM, 리눅스 전용 JVM, 윈도우 전용 JVM, ... 따로 있다 

 

4-1) 컴파일

 

사람이 작성한 소스코드(.java)를 컴퓨터가 이해할 수 있는 기계어로 바꿔주는 과정

 

이를 수행하는 것이 컴파일러

 

자바는 특이하게 컴파일을 거친다고 바로 컴퓨터가 알아먹을 수 있는 상태로 만들어주는 것은 아니다

 

컴퓨터가 알아먹을 수 있을법한.. 중간정도의 단계까지만 컴파일을 수행해줌

 

이를 자바 바이트 코드(.class)라고 부른다

 

JVM은 이 .class파일을 읽어서 결과를 보여준다

 

 

 

4-2) JRE, JDK?

 

JRE = Java Runtime Environment 자바 실행환경

 

JVM이 자바 프로그램 실행을 위해 필요한 것들을 가지고 있다

 

== 자바 프로그램 실행을 위해 반드시 있어야한다는 소리

 

JDK = Java Development Kit

 

JRE + 자바 개발에 필요한 것들(=컴파일러 등등)

 

따라서 JDK를 다운 받아 사용(zulu???)

 

아니 근데 이제 설치 어떻게함...

TAGS.

Comments