변수는 데이터 분석·프로그래밍·엑셀 자동화 등 모든 정보 처리 과정에서 값을 기억·조작·관리하기 위해 반드시 이해해야 하는 기본 개념이다. 본 글은 변수의 정의, 종류, 선언·초기화 방법, 메모리 상의 역할, 실무 활용 팁을 종합적으로 설명하여 독자가 변수 활용 능력을 높이는 것을 목적으로 한다.
1. 변수란 무엇인가?
변수는 “변할 수 있는 수”라는 뜻이다. 프로그램이나 수식이 실행되는 동안 메모리 공간에 할당된 값을 이름으로 참조하게 하는 장치이다. 즉, 변수는 데이터 저장 공간 + 식별자 역할을 수행한다.
1.1 변수의 3요소
- 이름(Name) : 개발자가 지정하는 식별자이다.
- 자료형(Type) : 정수, 실수, 문자열 등 저장할 값의 형태이다.
- 값(Value) : 실제로 메모리에 기록되는 데이터이다.
1.2 변수의 필요성
- 가독성 향상 : 의미 있는 이름 부여로 수식·코드 이해가 쉬워진다.
- 유지보수 용이 : 값 변경이 필요할 때 변수만 수정하면 전체 로직이 자동 반영된다.
- 메모리 효율 : 동일 값 재사용 및 범위 제한으로 낭비를 줄인다.
2. 변수 종류 및 비교
구분 | 설명 | 실무 예시 |
---|---|---|
전역 변수 | 프로그램 전체(모든 모듈)에서 접근 가능하다. | 엑셀 VBA에서 Public TotalRows As Long |
지역 변수 | 선언된 블록 안에서만 유효하다. | Sub 내부의 Dim i As Integer |
상수 | 선언 후 값 변경이 불가능하다. | Const PI = 3.14159 |
파라미터(매개변수) | 함수·프로시저로 값을 전달하기 위해 사용된다. | Function Add(a As Double, b As Double) |
3. 변수 선언·초기화 Best Practice
Option Explicit
를 파일 최상단에 선언하면 모든 변수 사용 전 선언을 강제해 오타·자료형 오류를 예방한다.' VBA 예시
Option Explicit
Sub CalcProfit()
Dim revenue As Double: revenue = 15000000 '원화
Dim cost As Double: cost = 8200000
Dim profit As Double: profit = revenue - cost
MsgBox "당기순이익: " & Format(profit, "#,##0") & "원"
End Sub
3.1 초기화(Initialization)
초기화는 변수 선언과 동시에 예측 가능한 기본값을 할당해 런타임 오류를 방지한다.
' Python 예시
total_sales: float = 0.0 # 명시적 초기화
4. 변수와 메모리
컴퓨터는 변수를 스택(stack)과 힙(heap)영역에 저장한다.
- 스택 : 지역 변수·함수 호출이 저장된다. 자동으로 push/pop되어 속도가 빠르다.
- 힙 : 동적 할당 객체(리스트, 클래스 등)가 저장된다. 가비지 컬렉터가 메모리 회수한다.
4.1 Excel에서의 메모리 고려
대용량 시트 처리를 위해서는 루프 내부 변수 재사용 및 .ClearContents
호출로 불필요 메모리를 환원해야 성능이 향상된다.
5. 변수 네이밍 규칙
규칙 | 설명 | 예시 |
---|---|---|
CamelCase | 단어 첫 글자 대문자, 첫 단어는 소문자 | saleAmount |
PascalCase | 모든 단어 첫 글자 대문자 | TotalPrice |
Snake_case | 단어 사이에 밑줄 | avg_temp_c |
접두어 표기 | 자료형·역할을 축약어로 표시 | strName , lngCount |
6. 실무 사례: Excel 변수 활용
6.1 수식 내 변수(명명된 범위)
관리항목을 수식 > 이름 관리자로 정의하면 셀 주소 대신 의미 있는 변수명을 사용하여 가독성이 향상된다.
# 예: 명명된 범위
재료비 =Sheet1!$B$2:$B$100
노무비 =Sheet1!$C$2:$C$100
=SUM(재료비) + SUM(노무비)
6.2 VBA 변수로 반복 계산 자동화
Sub UpdateStock()
Dim lastRow As Long
Dim rngQty As Range
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
Set rngQty = Range("D2:D" & lastRow)
Dim i As Long, reorderCount As Long
For i = 1 To rngQty.Count
If rngQty(i).Value < 10 Then reorderCount = reorderCount + 1
Next i
MsgBox "재주문 필요 품목: " & reorderCount & "개"
End Sub
7. 변수 사용 시 흔한 오류와 해결책
오류 | 원인 | 대응 방법 |
---|---|---|
Type mismatch | 자료형 불일치 | 명시적 변환: CLng() , CStr() |
Undefined variable | 선언 없이 사용 | Option Explicit 활성화 |
Overflow | 자료형 범위 초과 | Long → Double 등 큰 자료형 사용 |
FAQ
Q1. 변수와 상수의 차이점은 무엇인가?
변수는 실행 중 값이 변경될 수 있으나 상수는 선언 이후 값이 고정된다. 유지보수 시 상수는 의도치 않은 값 변경을 방지해 버그를 줄인다.
Q2. Excel 수식에서 변수를 쓰려면 VBA가 필수인가?
아니다. ‘명명된 범위’ 기능으로 셀 범위 자체를 변수처럼 사용할 수 있다. 대규모 모델링 시 가독성과 유지보수가 크게 향상된다.
Q3. 파이썬에서 변수 선언 시 자료형을 지정해야 하나?
파이썬은 동적 타입 언어이므로 자료형을 명시할 필요가 없다. 다만, type hint
를 주면 협업·디버깅이 쉬워진다.
'#4 VBA > #4.2 코딩문법' 카테고리의 다른 글
변수를 선언하는 Dim 키워드 (0) | 2025.07.28 |
---|