입문서에서는 변수를 자주 상자에 비유한다. 이 비유는 시작점으로는 괜찮지만, 상태가 바뀌는 프로그램을 이해하기에는 금방 한계가 온다.
변수는 값 보관함이기도 하지만, 더 본질적으로는 지금 프로그램이 어디까지 왔는지를 기억하는 수단이다.
상태라는 관점으로 보면 쉬워진다
예를 들어 점수를 누적하는 프로그램에서 score는 숫자 하나가 아니라 현재까지 쌓인 결과를 의미한다. 반복문 안에서 값이 바뀐다면, 코드는 상태 변화를 따라가고 있는 셈이다.
변수를 읽을 때는 여기에 뭐가 들어 있지보다 이 값이 언제, 왜 바뀌지를 같이 봐야 한다.
STATE
score = 0
for point in [10, 20, 15]:
score = score + point
print(score)
이 코드는 숫자 계산보다 score가 어떻게 바뀌는지를 읽는 것이 핵심이다.
변수를 볼 때 스스로 물어볼 질문
- 이 변수는 지금 무엇을 대표하나?
- 처음 값은 왜 이렇게 시작하나?
- 어느 줄에서 값이 바뀌나?
- 마지막에 기대하는 상태는 무엇인가?
변수를 이해한다는 것은 값을 보는 일이 아니라 변화의 의미를 읽는 일에 더 가깝다.
이 글의 포인트
- 변수는 값 보관함이면서 동시에 현재 상태를 나타내는 표식이다.
- 값 자체보다 변화 시점과 이유를 읽는 습관이 중요하다.
- 초보자는 값이 어떻게 바뀌는지 추적하는 연습을 더 많이 해야 한다.