학습
Ruby 변수와 상수
Ruby 변수와 상수 — 초급
변수와 상수
1. 도입 (왜 배워야 하는가)
프로그래밍에서 변수와 상수는 데이터를 저장하고 관리하는 기본적인 요소입니다. 실무에서는 데이터를 효과적으로 다루는 것이 필수적이며, 이를 위해 변수와 상수를 적절히 사용하는 것이 중요합니다. 만약 변수를 사용하지 않거나 잘못 사용하게 되면, 프로그램의 동작이 예기치 않게 변할 수 있으며, 이는 버그를 초래하거나 데이터 손실로 이어질 수 있습니다. 예를 들어, 쇼핑몰 사이트에서 가격 정보를 변수로 관리하지 않으면, 가격을 변경할 때마다 모든 코드를 수정해야 하는 비효율이 발생할 수 있습니다. 따라서 변수와 상수를 제대로 이해하고 활용하는 것은 매우 중요합니다.
2. 핵심 개념 설명
변수
변수는 데이터를 저장할 수 있는 이름이 붙은 메모리 공간입니다. 쉽게 말해, 변수를 냉장고의 서랍에 비유할 수 있습니다. 서랍 안에 음식을 보관하고 필요할 때마다 꺼내 먹을 수 있는 것처럼, 변수 안에 데이터를 저장하고 필요할 때마다 사용할 수 있습니다.
상수
상수는 한 번 값이 설정되면 변경할 수 없는 데이터입니다. 이는 마치 집 주소와 같아서, 주소가 바뀌지 않는 한 항상 동일한 값을 가집니다. 상수를 사용하면 코드가 더욱 명확해지고, 실수로 값을 변경하는 것을 방지할 수 있습니다.
| 용어 | 정의 |
|---|---|
| 변수 | 데이터를 저장할 수 있는 이름이 붙은 메모리 공간 |
| 상수 | 한 번 설정한 값을 변경할 수 없는 데이터 |
3. 기본 코드 예제
다음은 변수와 상수를 사용하는 가장 기본적인 예제입니다.
# 변수 선언
price = 1000
# 상수 선언
DISCOUNT_RATE = 0.1
# 가격에 할인율을 적용한 최종 가격 계산
discounted_price = price - (price * DISCOUNT_RATE)
puts "최종 가격: #{discounted_price}"
실행 결과
최종 가격: 900.0
코드 한 줄씩 동작 설명
price = 1000:price라는 이름의 변수를 선언하고 1000이라는 값을 저장합니다.DISCOUNT_RATE = 0.1:DISCOUNT_RATE라는 이름의 상수를 선언하고 0.1이라는 값을 저장합니다. 이 값은 변경할 수 없습니다.discounted_price = price - (price * DISCOUNT_RATE):discounted_price라는 변수를 선언하고, 원래 가격에서 할인된 가격을 계산하여 저장합니다.puts "최종 가격: #{discounted_price}": 최종 가격을 출력합니다.- 잘못된 코드: 상수는 변경할 수 없기 때문에 오류가 발생합니다.
- 올바른 코드: 상수는 한 번 설정한 값으로 그대로 두어야 합니다.
- 잘못된 코드: 변수를 선언하지 않고 사용하면 오류가 발생합니다.
- 올바른 코드: 변수를 사용하기 전에 반드시 선언해야 합니다.
- 변수는 데이터를 저장하는 이름 붙은 메모리 공간이며, 상수는 한 번 설정된 값을 변경할 수 없는 데이터입니다.
- 변수를 적절히 사용하면 코드를 더 유연하게 관리할 수 있으며, 상수를 사용하면 코드의 안정성을 높일 수 있습니다.
- 다음에 학습하면 좋은 주제는 '함수와 메서드'입니다. 변수를 활용하여 더 복잡한 로직을 처리하는 방법을 배워보세요.
4. 실전 활용 예제
예제 1: 쇼핑몰에서 장바구니 구현
쇼핑몰에서 장바구니에 담긴 상품의 총 가격을 계산할 때 변수를 사용할 수 있습니다.
item1_price = 1500
item2_price = 2000
item3_price = 3000
TOTAL_DISCOUNT = 0.05
total_price = item1_price + item2_price + item3_price
discounted_total = total_price - (total_price * TOTAL_DISCOUNT)
puts "장바구니 총 가격: #{discounted_total}"
이 예제에서는 각 상품의 가격을 변수로 저장하고, 총 가격을 계산한 후 할인을 적용합니다.
예제 2: 게임에서 플레이어의 점수 관리
게임에서 플레이어의 점수를 저장할 때 변수를 사용합니다.
player_score = 0
POINTS_PER_ACTION = 10
# 플레이어가 행동을 할 때마다 점수를 증가시킴
player_score += POINTS_PER_ACTION
puts "플레이어 점수: #{player_score}"
이 예제에서는 플레이어가 행동할 때마다 점수를 증가시키는 구조입니다.
5. 흔한 실수와 주의사항
실수 1: 상수의 값을 변경하려고 시도하기
DISCOUNT_RATE = 0.1
DISCOUNT_RATE = 0.2 # 오류 발생
실수 2: 변수를 선언하지 않고 사용하기
puts price # 오류 발생