11
24

pixabay 저작권 무료 이미지 by Shafin_Protic

 

자료형은 자료의 형태, 변수는 변하는 수 아니야?

 

당신이 자료형과 변수가 무엇인지 배우지 않은 채 그 단어만을 본다면 위와 같은 생각을 할 수도 있다. 필자도 일전에 그러한 적이 있다.

 

모 영단어- self-explanatory -처럼 단어의 형태 스스로가 그 뜻을 알려주고 있다고 생각하며 그런 답을 주었다면 당신은 절반 정도 맞았다. 축하한다.

 

하지만 우리들은 절반의 성공과 이해만으로는 살아남을 수 없는 사회에 살고 있기에 더욱 깊은 설명으로 들어가보자.

 


변수(variable)는 특정 값(들)을 저장하기 위한 저장공간이고, 자료형(data type)은 그러한 변수의 성질을 나타내는 자료의 모습이다.

들어도 무슨 뜻인지 잘 모르겠는가? 그렇다면 아래의 예제를 살펴보도록 하자.

 

예를 들어 당신이 파티에 간다고 하자.

그러면 당신은 엘리자베스라는 이름의 파티용 가방을 챙기고 파티 물품을 가방에 넣을 것이다.

엘리자베스는 변수이고 파티용 가방은 자료형이며 파티 물품은 변수에 들어간 값이다.

 

예를 들어 당신이 마트에 간다고 하자.

그러면 당신은 마봉팔이라는 이름의 장바구니를 챙기고 마트 물건을 가방에 넣을 것이다.

마봉팔은 변수이고 장바구니는 자료형이며 마트 물건은 변수에 들어간 값이다.

 

예를 들어 당신이 '1, 유, 6, 사연, 87, 수정'이라는 단어와 숫자들 중 숫자만을 고르고 싶다고 하자.

그러면 당신은 num이라는 이름의 int를 쓰고 1, 6, 87을 넣을 것이다.

num은 변수이고 int는 자료형이며 1, 6, 87은 변수에 들어간 값이다.

+ int형인 num에는 여러 값이 들어갈 수 없고 자료형이 array(배열)인 경우에만 여러 값이 저장될 수 있다고는 하지만 일단 무시하도록 하자. 우리들은 초보가 아닌가.

 

이제 어느정도 감이 오는가?

 

변수의 타입(자료형)에는 기본형(primative type)과 참조형(non-primative or reference type)이 존재한다. 아래의 표를 한번 살펴보자.

 

자바의 자료형 설명도 by Neotam in getKT (his/her blog)

Neotam's blog

 

기본형 (Primative type)

 

변수의 타입이 기본형일 경우, 변수는 변수의 실제 값을 저장한다.

기본형에는 정수형, 실수형, 문자형, 논리형이 존재하는데 각자의 형에 해당하는 자료형이 따로 있다.

 

 

정수형(Integers): byte, short, int, long

정수형의 구성원인 byte, short, int, long은 그 이름처럼 '정수'만을 다룬다. 소수점이 포함된 실수, 문자 등등은 이 정수형에 담을 수 없는 것이다.

 

각 구성원은 그 값을 담을 수 있는 범위도 다른데 byte는 1바이트만큼(-128 ~ 127), short는 2바이트만큼(-32,768 ~ 32,767), int는 4바이트만큼(대략 21억 즈음), long는 8바이트만큼(매우 긴 길이)을 담을 수 있다고 한다.

때문에 어느 변수에 128이라는 값을 넣고 싶으면 byte가 아닌 다른 정수형을 사용해야 옳은 것이다.

 

실수형(Floating point): double, float

실수형은 정수는 물론 소수점을 가진 실수까지 담을 수 있는 자료형이다. 이도 정수형과 같이 두 구성원의 범위가 다르다. double은 -1.8 x 10^308 ~ 1.8 x 10^308, float는 -3.4 x 10^38 ~ 3.4 x 10^38의 범위를 가진다.

 

문자형(Character): char

문자형은 한 글자로만 이루어진 문자를 담을 수 있는 자료형이다. A는 괜찮아도 Apple 같은 단어는 담을 수 없는 것이다. 단, '벌'과 같이 ㅂ, ㅓ, ㄹ로 이루어진 단어도 하나로 합쳐지면 하나의 단어로 봐준다.

 

문자형을 사용할 때에는 값의 양 옆을 싱글쿼터(')로 감싸주어야 한다.

 

논리형(Boolean): boolean

논리형은 그 이름 그대로 논리의 값을 담는 자료형이다. 논리형에 들어갈 수 있는 값은 참(true)과 거짓(false), 두 가지로 구성되어 있다.

 

기민한 독자라면 정수형의 int와 실수형의 double이 강조되어 있는 것을 알아차렸을 것이다. 이 둘은 기본 타입(default type)이라고 불리는데, 기본편에서 이에 대한 설명은 추가로 하지 않고, 정수나 실수로 된 값은 기본적으로 각각 int와 double로 인식된다는 말 정도만 하겠다.

 

기본 자료형에 대해 알아보자.

byte b = 129;				//byte의 범위 -128~127 초과!
short s = 250;
int i = 32903;
long l = 91283092L;

// System.out.println(변수 이름);은 결과값을 출력하는 데에 쓰이는 출력문이다.
System.out.println(b);			//결과 = Error! 프로그램이 돌아가지 않는다.
System.out.println(s);			//결과 = 250
System.out.println(i);			//결과 = 32903
System.out.println(l);			//결과 = 91283092


// +배움 플러스+

// 변수끼리 더한(뺀, 곱한, 등등) 값을 새로운 변수에 저장하는 것도 가능하다.
int x = 5;
int y = 6;
int z = x+y;
System.out.println(z);			//결과 = 11

/* 
 * 긴 주석
 * 긴 글자도 적을 수 있다.
 */
더보기

💡 코드블럭에 있는 코드에 //를 넣으니 글씨가 회색이 되었다.

JAVA에서 //를 친다는 것은 그 칸에 오는 말을 주석 처리 하겠다는 선언이 된다.

/* ~*/ 은 긴 주석이다. 창에 /*만 치고 엔터를 하면 저절로 뒤의 부분이 생기게 된다.

 

참조형 (Non-primative or Reference type)

반면 참조형은 객체의 주소를 저장한다. 새로운 클래스를 정의하면 새로운 참조형이 하나 생성된다고는 하는데 이건 뭔 소린지 모르겠다. 필자도 이건 아직 안 배웠다. 당장 앞의 몇 주간 사용할 지식이 아니기 때문이다.

 

기본형이라며 위에서 소개한 자료형이 아닌 모든 자료형은 참조형이다. 이 중 String은 명예 기본형이라는 타이틀을 줘야 할 정도로 자주 사용된다. 문자형인 char에 비해, 문자열형이라 불리는 String은 여러 글자를 값으로 담을 수 있다는 이점이 있다. 때문에 문자를 변수에 담을 때에는 대부분 char 대신 String을 사용한다.

 

이후에 나올 코딩에는 기본적으로 기본형만이 쓰이다 싶이 할 것이기 때문에 참조형은 후에 자세히 알아보는 시간을 가지도록 하겠다. 참조형 중에서는 String, 원한다면 Array까지만 기억해두면 된다.

Array는 배열이라는 뜻으로, 여러 값을 담을 수 있는 변수의 자료형이다.

 

 

 

이번 포스트에서는 기본 자료형과 변수에 대해 알아보았다. 간단히 축약해 기본적인 것에 대해서만 서술한 것이니, 무엇 하나 배울 때 모든 세세한 것까지 다 알아두는 것을 좋아하는 필자와 같은 변태는 심화편을 봐주길 바란다.

COMMENT