본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
자바 데이터 보관함: 변수, 상수, 그리고 자료형 파헤치기! 📦🔍

안녕하세요! 자바의 세계를 함께 탐험 중인 여러분, 다시 만나 반갑습니다! 👋
지난번에는 자바 코드의 뼈대인 '클래스'와 JVM의 네비게이션 '클래스패스'에 대해 알아보는 시간을 가졌죠? 🏗️🗺️ 건물의 설계도를 이해하는 것처럼 중요하다고 말씀드렸는데, 다들 잘 따라오셨으리라 믿어요! 😊
오늘은 그 설계도 위에 실제 재료를 어떻게 준비하고 보관하는지에 대한 이야기를 해보려고 해요. 바로 자바에서 데이터를 다루는 가장 기본적인 방법, 변수(Variable)와 상수(Constant), 그리고 이 데이터들이 어떤 종류인지 알려주는 자료형(Data Type)에 대해서 제가 오늘 배운 내용을 여러분께 공유해 드릴게요!
데이터를 잘 담고 관리하는 것은 프로그래밍의 핵심 중 하나랍니다. 자, 그럼 오늘도 저와 함께 자바의 데이터 보관함을 열어볼 준비되셨나요? 🚀

1. 데이터 보관함의 기본: 변수(Variable)란 무엇일까요? 🤔
프로그램이 실행되는 동안 데이터는 계속 변할 수 있어요. 예를 들어 게임 캐릭터의 레벨, 은행 계좌의 잔액, 사용자가 입력한 이름 등등... 이런 '변할 수 있는' 데이터를 담아두는 공간이 바로 변수입니다!
마치 우리가 내용물을 필요에 따라 넣었다 뺐다 할 수 있는 '이름표가 붙은 상자' 📦 와 같다고 생각하면 이해하기 쉬울 거예요.
- 선언 (Declaration): 어떤 종류의 데이터를 담을 상자(변수)를 만들지 자바에게 알려주는 거예요. "이런 타입의 데이터를 담을, 이런 이름의 공간을 준비해줘!" 라고 요청하는 거죠.
-
int score; // 'int' 타입(정수)의 데이터를 담을 'score'라는 이름의 변수 선언 String nickname; // 'String' 타입(문자열)의 데이터를 담을 'nickname'이라는 변수 선언 - 할당 (Assignment): 선언된 변수(상자)에 실제 데이터(값)를 넣는 과정이에요. = 기호를 사용합니다.
-
score = 100; // score 변수에 100이라는 값을 넣는다 nickname = "자바탐험가"; // nickname 변수에 "자바탐험가"라는 문자열을 넣는다 - 선언과 동시에 초기화: 변수를 만들면서 바로 값을 넣어줄 수도 있어요. 이게 더 흔하게 쓰이죠!
-
int level = 1; // int 타입 변수 level을 선언하고 동시에 1로 초기화
변수는 이름 그대로, 프로그램 실행 중에 값을 바꿀 수 있습니다.
level = level + 1; // level 변수의 값을 1 증가시킨다 (이제 level은 2가 됩니다!)
System.out.println(level); // 콘솔에 2가 출력됩니다.
2. 한 번 정하면 끝! 변하지 않는 값, 상수(Constant) 🔒
변수와 달리, 프로그램 실행 중에 절대로 변하지 않아야 하는 값들도 있어요. 예를 들어 원주율(π) 값 (3.141592...), 일주일은 7일이라는 사실, 혹은 프로그램 전체에서 사용될 특정 설정값 같은 것들이죠. 이런 값들을 실수로라도 변경하면 프로그램이 오작동할 수 있겠죠? 😱
이럴 때 사용하는 것이 바로 상수입니다! 상수는 한 번 값을 정하면 그 이후에는 절대 바꿀 수 없는, 마치 '봉인된 상자' 같아요.
자바에서는 final 이라는 키워드를 사용해서 상수를 선언합니다.
final int DAYS_IN_WEEK = 7; // 'DAYS_IN_WEEK'는 이제 항상 7이라는 값을 가지며 변경 불가!
final double PI = 3.14159; // 원주율 PI 값도 상수로 선언
final String GREETING_MESSAGE = "환영합니다!";
여기서 잠깐! ✋ 상수 이름은 왜 대문자로 쓸까요?
자바 개발자들 사이의 약속(Convention)이에요! 변수 이름은 주로 소문자로 시작하고(예: score, nickname), 상수 이름은 모든 글자를 대문자로 쓰고, 단어 사이는 밑줄(_)로 연결하는 것이 일반적입니다 (예: DAYS_IN_WEEK, MAX_SPEED).
이렇게 하면 코드만 봐도 "아, 이건 변하지 않는 상수구나!" 하고 쉽게 알아볼 수 있답니다. 가독성이 좋아지는 거죠! ✨
3. 데이터의 종류를 알려줘! 자료형(Data Type) 🏷️

변수나 상수를 선언할 때 int, String, double, final 키워드 앞에 붙는 것들... 이게 바로 자료형입니다. 자료형은 해당 변수나 상수가 어떤 종류의 데이터를 담을 수 있는지, 그리고 얼마나 큰 공간(메모리)을 차지할지를 자바에게 알려주는 중요한 정보예요.
마치 택배 상자에 "이 안에는 유리그릇이 들었으니 조심하세요!" 또는 "이건 냉장 보관해야 해요!" 라고 표시하는 것과 비슷하죠. 📦🏷️
자바의 자료형은 크게 두 가지로 나눌 수 있어요.
- 기본 자료형 (Primitive Types): 자바가 기본적으로 제공하는 가장 기초적인 데이터 타입들입니다. 실제 '값' 자체를 저장해요.
- 정수형: 소수점 없는 숫자 (예: byte, short, int, long - 크기별로 종류가 나뉘어요!)
- 실수형: 소수점 있는 숫자 (예: float, double - 정밀도에 따라 나뉘어요!)
- 문자형: 글자 하나 (예: char - 작은따옴표 '로 감싸요. 'A', '가' 등)
- 논리형: 참(true) 또는 거짓(false) (예: boolean)
int age = 30; // 정수 double height = 175.5; // 실수 char bloodType = 'A'; // 문자 boolean isMarried = false; // 논리 (미혼이시군요!) - 참조 자료형 (Reference Types): 기본 자료형을 제외한 나머지 모든 타입입니다. 클래스(Class), 배열(Array), 인터페이스(Interface) 등이 여기에 속해요. 이 타입들은 실제 데이터 값이 아니라, 데이터가 저장된 메모리 주소를 저장합니다. (이건 약간 어려운 개념이니, 지금은 '객체(Object)를 가리키는 타입이다' 정도로만 이해하고 넘어가도 괜찮아요!)
- 우리가 지난 시간에 배운 String도 사실 클래스 기반의 참조 자료형이랍니다! (그래서 대문자로 시작하죠!)
- 우리가 직접 만드는 클래스들 (SimpleBox 같은 것들)도 모두 참조 자료형이 됩니다.
String name = "홍길동"; // 문자열 (참조 자료형) SimpleBox myBox = new SimpleBox(); // 우리가 만든 클래스 타입 (참조 자료형)
자료형, 왜 중요할까요? 🤔
자료형을 명확히 지정해주면, 자바는 해당 데이터에 딱 맞는 크기의 메모리 공간을 효율적으로 할당할 수 있어요. 그리고 int 타입 변수에 갑자기 문자열을 넣으려고 하는 등, 타입에 맞지 않는 데이터를 저장하려는 실수를 컴파일 시점에 미리 방지해줘서 더 안정적인 프로그램을 만들 수 있게 도와줍니다! 👍

4. 정리하며 📝
와~ 오늘은 자바에서 데이터를 다루는 기본 중의 기본! 변수, 상수, 그리고 다양한 자료형에 대해 알아봤습니다. 🤓
- 변수(Variable): 변할 수 있는 데이터를 담는 이름표 붙은 상자 📦
- 상수(Constant): final로 선언하며, 절대 변하지 않는 값을 담는 봉인된 상자 🔒 (이름은 대문자와 _로!)
- 자료형(Data Type): 데이터의 종류(정수, 실수, 문자, 논리 등)와 크기를 알려주는 꼬리표 🏷️ (기본형 vs 참조형)
이 개념들은 앞으로 자바 코드를 작성하면서 정말 계속, 꾸준히 사용하게 될 거예요! 처음에는 조금 헷갈릴 수 있지만, 자꾸 사용하다 보면 금방 익숙해지실 겁니다. 데이터를 담는 규칙을 배웠으니, 이제 이 데이터들로 더 다양한 연산과 로직을 만들어나갈 수 있겠죠?
오늘 화요일도 새로운 개념 배우시느라 정말 수고 많으셨습니다!
다음에 또 재미있는 자바 이야기로 만나요! 👋
'데이터 엔지니어링' 카테고리의 다른 글
| 패스트캠퍼스 환급챌린지 24일차: 데이터엔지니어링 초격차 강의 후기 (1) | 2025.04.24 |
|---|---|
| 패스트캠퍼스 환급챌린지 23일차: 데이터엔지니어링 초격차 강의 후기 (0) | 2025.04.23 |
| 패스트캠퍼스 환급챌린지 21일차: 데이터엔지니어링 초격차 강의 후기 (1) | 2025.04.21 |
| 패스트캠퍼스 환급챌린지 20일차: 데이터엔지니어링 초격차 강의 후기 (0) | 2025.04.20 |
| 패스트캠퍼스 환급챌린지 19일차: 데이터엔지니어링 초격차 강의 후기 (0) | 2025.04.19 |