자료와 정보
데이터와 변수
이 문서에서는 데이터
, 정보
, 그리고 변수
에 대해서 다룬다.
자료(Data)
프로그램의 목적은 계산
이다. 계산을 하기 위해서는 값
이 필요하며, 추상적인 값보다 구체적인 값이 필요하다.
다음은 추상적인 값들의 예시이다.
맛있다
기분이 좋다
비가 올 것 같다
공기가 깨끗하다
분위기 있다
추상적인 값들은 프로그래밍에서 계산할 수 없다. 사람마다 느끼는 정도가 다르며, 수치로 나타낼 수 없기 때문이다.
다음은 구체적인 값들의 예시이다.
음식의 가격이 10000원이다
강수량이 25mm이다
미세먼지 농도가 20㎛이다
몸무게가 50kg이다
키가 180cm이다
이처럼 수치화가 가능하며, 측정이 가능한 값들을 자료(Data)라고 한다. 하지만 자료를 가지고는 단순한 확인밖에 할 수 없기 때문에 이를 계산을 통해 의미있는 내용으로 변화시켜야 하며, 이를 정보(Information)이라고 부른다.
정보(Information)
정보는 자료를 가공하여 만들어낸 의미있는 결과를 말한다.
다음은 자료의 예시이다.
1주일간 강수량 측정치
1주일간 매출액
1주일간 일일 공부시간
1주일간 미세먼지 농도 변화
다음은 정보의 예시이다.
온난화와 강수량 변화의 상관관계
전년도와 비교한 매출 변화 및 원인
나와 전교 1등의 공부 시간 분석 결과
이웃 나라와 우리 나라의 미세먼지 농도 차이
정보는 의사 결정을 수행하는데 도움을 주며, 정보의 신뢰성이 높을 수록 좀 더 합리적인 의사결정을 할 수 있다. 따라서 프로그램에서는 자료를 어떻게 수집하여 어떻게 계산할 것인지가 매우 중요한 요소가 된다.
자료의 형태
현실세계에서의 자료는 다양한 형태로 존재한다. 크기가 10이라고 해서 모두 같은 값이 아니라는 점에 유의해야 하며, 다음 예시를 통해 살펴본다.
값 | 분류 |
10원 | 화폐 |
10유로 | 회폐 |
10달러 | 화폐 |
10g | 무게 |
10kg | 무게 |
10cm | 길이 |
10km | 길이 |
10L | 부피 |
10평 | 넓이 |
10헥타르 | 넓이 |
10데시벨 | 소리 |
10Lux | 밝기 |
위에서 언급한 값들은 모두 10이라는 값을 가지고 있지만 다른 형태이다. 이를 형태별로 분류하면 다음과 같다.
분류 | 값 |
화폐 | 10원, 10유로, 10달러 |
무게 | 10g, 10kg |
길이 | 10cm, 10km |
부피 | 10L |
넓이 | 10평, 10헥타르 |
소리 | 10데시벨 |
밝기 | 10Lux |
다음과 같은 계산식이 있다고 가정해본다.
우리는 위의 계산식을 계산할 수 있을까? 정답은 할 수 있다
이다. 물론 있는 그대로는 안되고, 변환을 통해서 가능하다. 만약 환율이 1유로에 1500원이라면, 식은 다음과 같이 변할 수 있다.
10원 + 15000원 = ?
0.006 유로 + 10유로 = ?
이처럼 같은 분류
의 값들은 서로 변환을 통해 계산이 가능하다는 것을 우리는 이미 알고 있다.
그렇다면 다음의 계산식을 살펴보자.
위의 식은 계산이 가능한가? 정답은 할 수 없다
이다. 다른 분류의 값은 어떠한 형태로도 계산이 불가능하다. 단위를 통일할 수 없기 때문이다. 우리는 이미 이러한 사실들을 알고 있으며, 이는 프로그래밍에서도 그대로 적용된다.
자바의 자료 형태
자바 뿐 아니라 프로그래밍 언어에서는 다음의 전제조건에 의해 데이터를 구분한다.
단위는 계산을 복잡하게 하므로 단위는 생략한다.
같은 분류의 값들은 변환을 통해서 계산할 수 있다.
다른 분류의 값들은 당연히 계산할 수 없다.
프로그래머는 이 사실을 반드시 알고 있어야 한다.
프로그램의 핵심 요소 중 하나는 속도
이기 때문에 이를 위해 단위는 프로그래머에게 위임하도록 구성되어 있다. 따라서 모든 데이터의 단위를 배제하고 값 자체를 다음과 같이 분류한다.
분류 | 설명 | 종류 | |
숫자 | 정수 | 소수점이 없는 숫자 | byte, short, int, long |
숫자 | 실수 | 소수점이 있는 숫자 | float, double |
문자 | 번호가 부여된 글자(ASCII, Unicode) | char | |
논리 | 예/아니오 처럼 두 가지 상태를 표현하는 값 | boolean | |
문자열 | 문장을 표현하는 값 | String | |
객체 | 복잡한 데이터를 표시하기 위한 값 | 사용자 정의 자료형 |
위의 표에 따라 다음 형태의 규칙이 성립하게 된다.
숫자끼리는 변환을 통해 계산이 가능하다.
그 외의 형태와는 분류가 다르므로 계산이 불가능하다.
우리에게 필요한 능력은 데이터를 봤을 때, 프로그래밍 자료형에서 어느 분류에 해당하는지 파악하는 능력이며 변수를 이용하여 실제 데이터를 저장하고 사용하는 과정은 다음 문서에서 다룬다.
예제
다음은 출력 명령을 이용한 간단한 예제이다.
Last updated