1. 데이터와 연산의 이해
데이터란 세계에 존재하는 정보를 총칭하는 것이다.
프로그래밍에서 말하는 데이터는 컴퓨터의 저장 장치에 기록한 정보를 말하는데, 컴퓨터는 기계어를 통해 데이터를 인식하고 처리한다.
때문에 컴퓨터의 데이터는 2진수(0, 1)를 기준으로 단위가 정해지는데, 1bit는 0과 1의 1쌍을 말한다.
컴퓨터의 데이터는 1bit가 최소 단위이며, 실질적으로 데이터를 저장하기 위해서는 1bit 이상의 데이터가 필요하다.
데이터 단위에 따라 byte, megabyte, gigabyte 등으로 나뉘지만, 각 범위를 알 필요는 없다.
다만 데이터 타입의 이해를 위해 1byte가 8bit에 해당한다는 정보만 알아두자.
2. 데이터 할당과 경우의 수
컴퓨터의 연산에서 통계와 확률은 매우 중요한 의의를 가지는데, 기본적으로 논리 회로란 특정 데이터를 가지고 규칙에 따라 값을 도출하는 것이기 때문이다.
bit는 0과 1의 정보를 담을 수 있다.
1bit는 0과 1로 2가지의 경우의 수를 가지나 2bit는 4가지, 3bit는 8가지의 경우의 수를 가진다.
즉 2의 n 승으로 데이터의 값이 늘어나는 것을 확인할 수 있다.
결국 bit가 증가한다는 것은 경우 수가 늘어난다는 것이고, 경우의 수가 늘어난다는 것은 더욱 많은 데이터를 다룰 수 있다는 것이다.
자바에서 정수형 명령어 byte는 할당되는 처음 1bit를 [부호 비트]로 사용하고 (음수 혹은 양수 표현), 나머지 7bit로 데이터를 구현한다.
7bit는 2의 7승이므로 128가지의 데이터를 저장할 수 있다.
즉, 위의 기본 타입 명령어는 데이터할당 단위에 해당하는 최대 수용량에 따라 범위가 정해진다.
3. 데이터의 구동 방식 이해
컴퓨터는 모든 연산을 기본적으로 2진수로 진행한다.
전류가 흐르지 않는 것을 0(정확히는 0.25V, 0V는 컴퓨터가 꺼진다.), 흐르는 것을 1(정확히는 5V)로 데이터 저장과 논리 회로를 구동한다.
때문에 데이터의 할당은 2진수를 기준으로 한다.
2진수는 01010으로 표현하는 것이며, 가장 오른쪽부터 2의 0승, 2의 1승으로 할당된다.
즉, 1, 2, 4, 8, 16…. 으로 할당되며 해당 값이 유효하면 1, 무효하면 0으로 처리한다.
예를 들어 10진수를 기준으로 10인 경우 1010, 15인 경우 1111, 8인 경우 1000과 같이 정보 할당에 따라 2진수를 10진수로 변경할 수 있고, 반대의 경우도 가능하다.
때문에 컴퓨터의 구동에서 데이터는 전류량에 따른 차이로 구분하는 것이며 2진수를 사용하는 이유는 이러한 전류량의 차이가 2가지의 경우로 정의되기 때문이다.
이러한 구동 방식을 이해하면 데이터 타입에 따른 변수의 범위를 이해할 수 있고, 기본적으로 알고리즘의 구조와 컴퓨팅 사고가 2분법으로 진행된다는 사실을 바탕에 둘 수 있다.
다르게 말하면, 프로그래머는 프로그램을 구축하는 모든 과정에서 복잡한 알고리즘과 시스템의 단위를 최소 단위로 쪼개고, 이를 바탕으로 어떠한 동작이라도 만들어 낼 수 있다는 것이다.
'Java > 기본 이론' 카테고리의 다른 글
[JAVA] Chapter 06. 데이터 영역의 이해 (0) | 2021.04.23 |
---|---|
[JAVA] Chapter 05. 변수 - 데이터 타입과 형변환 (0) | 2021.04.23 |
[JAVA] Chapter 03. 변수와 자바 기초 문법 (0) | 2021.04.22 |
[JAVA] Chapter 02. Hello World! (0) | 2021.04.22 |
[JAVA] Chapter 01. Java와 프로그래밍 (0) | 2021.04.21 |