2026년 04월 07일

메모리 안의 정보 - 변수(Variable)

Java Spring Boot
Cover Image

메모리 안의 정보 — 변수(Variable)

왜 데이터를 메모리에 저장해야 할까?

프로그램이 의미 있는 일을 하려면 데이터를 기억해야 한다.

단순한 계산값뿐 아니라, 루프가 몇 번 돌았는지, 게임 캐릭터가 지금 어디 있는지, 현재 시각이 몇 시인지 같은 프로그램 내부 상태(state) 도 모두 데이터다. 이 상태를 추적하지 못하면 프로그램은 아무것도 "기억"하지 못하는 빈 껍데기가 된다.


변수(Variable)란?

변수는 메모리 내 데이터 위치(주소)를 가리키는 이름표다.

파일 캐비닛을 떠올려 보자. 폴더가 수백 개 있어도, 라벨만 잘 붙어 있으면 원하는 폴더를 바로 찾을 수 있다. 변수가 바로 그 라벨 역할을 한다.

변수를 선언하는 순간, 시스템이 자동으로 메모리 위치를 잡아 준다. 개발자는 메모리 주소를 직접 알 필요 없이, 변수 이름 만으로 그 위치의 데이터를 읽고 쓸 수 있다.


좋은 변수 이름이 중요한 이유

라벨이 할 일, 중요한 일, 다른 할 일처럼 모호하다면 어떤 폴더가 어떤 내용인지 파악하기 어렵다. 변수도 마찬가지다.

나쁜 예좋은 예
aloopCount
xplayerScore
flagisLoggedIn
datacoffeeRoastLevel

모호한 이름은 코드를 읽는 모든 사람(미래의 나 포함)을 혼란스럽게 만든다. 이름이 충분히 설명적이면 주석 없이도 코드가 스스로 말한다.


데이터 타입(Type)

많은 프로그래밍 언어에서 변수는 타입(type) 과 연결된다. 타입은 두 가지를 결정한다.

  1. 얼마나 많은 메모리를 사용할 것인가
  2. 저장된 값을 어떻게 해석할 것인가

주요 기본 타입

타입설명메모리예시
Integer정수작음42, -7, 0
Float / Double소수점 있는 실수3.14, 21.0
Boolean참/거짓 두 값만매우 작음true, false
String문자(열)가변"hello"
// 의사코드 (pseudocode) 표기: <타입>:<변수이름>
Integer: coffee_count = 5
Float: percentage_words_spelled_correctly = 21.0
Boolean: had_enough_coffee = false

Java처럼 정적 타입(statically typed) 언어는 컴파일 시점에 타입을 확정한다.
Python처럼 동적 타입(dynamically typed) 언어는 런타임에 타입이 결정된다.


변수를 사용하는 기본 연산

값 대입(Assignment)

coffee_count = coffee_count + 1  // 현재 값을 읽어 1 더한 뒤 다시 저장

산술 연산 (숫자 타입)

score = score * 2       // 점수 두 배
average = total / count // 평균 계산
remainder = n % 3       // 나머지

불린 연산 (Boolean 타입)

canEnter   = isAdult AND hasTicket   // 둘 다 참이어야 입장 가능
isWeekend  = isSaturday OR isSunday  // 하나라도 참이면 주말
isNotEmpty = NOT isEmpty             // 반전

변수가 없다면?

변수가 없으면 프로그램은 상태를 추적(track), 평가(evaluate), 변경(update) 할 수 없다.

즉, 변수는 프로그램에 시간과 맥락(context)의 개념 을 부여하는 가장 기본적인 도구다.


핵심 정리

개념한 줄 요약
변수메모리 주소에 붙인 이름표
타입값의 종류와 메모리 크기를 결정
좋은 이름코드 가독성과 유지보수의 첫걸음
상태 추적변수가 없으면 프로그램은 기억이 없다

💡 Java 개발자라면?
Java는 대표적인 정적 타입 언어다. int, double, boolean, String 등 타입을 명시적으로 선언해야 하며, 덕분에 컴파일 타임에 타입 오류를 잡을 수 있다. 변수 이름은 camelCase 관례를 따르는 것이 표준이다 (coffeeCount, isLoggedIn).

← 목록으로 돌아가기