최근 수정 시각 : 2024-08-30 11:10:49

변수

1. 變數
1.1. 수학에서1.2. 컴퓨터 프로그래밍
1.2.1. 변수의 종류
1.3. 관련 문서
2. 인물

1. 變數

1.1. 수학에서

연산
Numbers and Operations
{{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px)"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px"
<colbgcolor=#765432> 수 체계 자연수 (수학적 귀납법 · 홀수 · 짝수 · 소수 · 합성수) · 정수 · 유리수 (정수가 아닌 유리수) · 실수 (무리수 · 초월수) · 복소수 (허수) · 사원수
표현 숫자 (아라비아 숫자 · 로마 숫자 · 그리스 숫자) · 기수법(자연어 수 표기법 · 과학적 표기법 · E 표기법 · 커누스 윗화살표 표기법 · 콘웨이 연쇄 화살표 표기법 ·BEAF · 버드 표기법) · 진법 (십진법 · 이진법 · 8진법 · 12진법 · 16진법 · 60진법) · 분수 (분모 · 분자 · 기약분수 · 번분수 · 연분수 · 통분 · 약분) · 소수 {유한소수 · 무한소수 (순환소수 · 비순환소수)} · 환원 불능 · 미지수 · 변수 · 상수
연산 사칙연산 (덧셈 · 뺄셈 · 곱셈 구구단 · 나눗셈) · 역수 · 절댓값 · 제곱근 (이중근호) · 거듭제곱 · 로그 (상용로그 · 자연로그 · 이진로그) · 검산 · 연산자 · 교환자
방식 암산 · 세로셈법 · 주판 · 산가지 · 네이피어 계산봉 · 계산기 · 계산자
용어 이항연산(표기법) · 항등원과 역원 · 교환법칙 · 결합법칙 · 분배법칙
기타 수에 관련된 사항 (0과 1 사이의 수 · 음수 · 작은 수 · 큰 수) · 혼합 계산 (48÷2(9+3) · 111+1×2=224 · 2+2×2) · 0으로 나누기(바퀴 이론) · 0의 0제곱 }}}}}}}}}

variable

수학에서의 변수란, 어떤 정해지지 않은 임의의 값을 표현하기 위해 사용된 '기호' 이다. 보통 쉽게 설명하기 위해서 '변하는 숫자' 라는 표현을 자주 쓰고는 한다. 반대말로는 상수가 있다.

변수의 본격적인 도입은 프랑수아 비에트에 의해 16세기에 이루어졌다. 이 변수라는 존재는 수학이라는 학문에 대수학이 가져다준 가장 큰 산물 중 하나이자, 또한 16세기 말을 기점으로 대수학이 본격적으로 엄밀하고 이전과는 다른 수준의 수학으로 진화될 수 있게 해준 장본인이기도 하다.

변수가 등장하기 이전까지의 대수학은 현대의 대수학과 달리 '엄밀한 증명' 같은 내용에는 관심 없는 '아랍에서 건너온 산수 방법' 또는 '똑똑한 이탈리아인들이 발견한 방정식을 푸는 기술' 정도에 불과하였다.[1] 그러나 비에타에 의해 변수가 도입되자 대수학은 '연산 방법'에서, '연산 그 자체의 성질에 대한 추론과 연구'로 진화할 수 있게 된다. 예컨대 당장 '덧셈 연산'의 성질인 '교환 법칙'만 보더라도, 변수를 사용하지 않는다면 이의 일반화된 표현조차 불가능하다. 즉 '□+△ = △+□' 라는 표현 대신 '어떤 두개의 숫자를 더할 때, 더하는 순서를 바꾸더라도 그 결과는 동일하다'라는 표현을 써야되는 것이다. 그렇기에 변수는 대수학을 '연산 기술'로부터 연산 대상과 연산자의 성질에 대해서 연구하는 수학으로 바꿔버린 주인공이 된다.

더불어 이러한 대수 구조를 엄밀하게 연구할 수 있게 해줄 뿐 아니라, 변수를 이용하면 방정식미지수 또한 기호로 표현할 수 있다. 그렇기에 이는 변수가 등장하기 이전의 대수학에서도 이미 중요한 주제였던 '방정식의 해를 구하는 기술'에 대한 연구도 이전보다 훨씬 더 엄밀하게 이뤄질 수 있게 해줬다. 예를 들어 이차 방정식의 근의 공식은 고작 중학교 때 배우는 내용이다. 그러나 만약 변수라는 개념이 아예 존재하지 않는다고 가정한 채 이를 표현하고자 한다면, 이는 결코 만만치 않은 일이다.

또한 변수는 대수학의 진화의 촉매 역할뿐 아니라 수학의 다른 대부분의 분야에서도 필수적인 기반이 되어준다. 미적분학함수의 입력값들과 출력값들을 변수로 표현한 덕분에 존재할 수 있다. 극한을 엄밀한 개념으로 바꿔주는 것도 엡실론과 델타라는 변수(와 집합론)이다. 함수를 정의하고 그 성질을 연구할 때 입력과 출력을 각 경우별로 하나하나 나열하지 않고 변수로 일반화시켜 한꺼번에 표현한 후 이들을 다루면서 엄밀한 논리를 차근차근 적용해 가는 것은 모든 해석학에서 당연스럽게 취하는 핵심적인 태도와 방식이다. 흔히 쓰이는 표현인 '해석적인(analytical) 방식으로 방정식을 푼다'라는 표현[2]의 의미 또한, 바로 이렇게 해석학에서 대상을 다루듯이 '변수를 그대로 이용하고 연산하며 엄밀한 논리의 전개를 펼쳐가는 방식'을 말한다.

수학이 아닌 일상생활에서 변수라는 단어가 쓰일 때는 행위에 대한 결과가 여러 가지인 경우, 혹은 어떤 것을 하기 위한 선택지가 많은 상황 등, 현재 정해져 있지 않은 요인들을 뜻한다.

1.2. 컴퓨터 프로그래밍

특정값을 저장하는 메모리 공간을 뜻한다. 해당 메모리 공간에 저장되는 값은 정수형(integer(int)), 실수형(float, double), 문자(char)[3] 및 문자열(string(str)) 등 여러 가지 형식이 있으며 이를 이용하여 프로그래밍한다. 해당 메모리 공간에는 허용되는 범위 내에 어떤 값이든 저장할 수 있으므로 변수라고 하며, 허용되는 범위보다 큰 값을 저장하려고 할 때 오버플로가 발생한다.

각 프로그래밍 언어에 따라 변수의 선언 방법 및 값 대입 방법, 연산하는 방법 등, 문법에는 비슷한 점이 많으나 조금씩 차이가 있다. 자세한 내용은 해당하는 프로그래밍 언어의 문서 참조.

1.2.1. 변수의 종류

처리 가능 영역에 의한 구분이 일반적이다.
  • 블록(예: 함수) 내에서 선언되어 블록 내에서만 이용할수 있는 변수를 지역 변수(local variable)라고 한다.
    처리가 끝난 이후에는 해당 변수는 이용할 수 없으며, 상위 혹은 다른 블록에 같은 이름의 변수가 있더라도 메모리 공간 자체는 다르므로 다른 변수라고 보아야 한다. 다른 블록에 전달되는 변수를 매개 변수라고 하며, 변수에 저장되어 있는 값뿐만 아니라, 해당 메모리 공간 자체를 활용하기 위하여 메모리 공간의 주솟값을 이용하는데, 이를 보통 포인터라고 하며, 포인터를 저장하고 있는 변수를 포인터 변수라고 한다.
  • 지역 변수와는 반대로, 프로그램 내 전체에서 사용 가능한 변수를 전역 변수(global variable)라고 한다.

이름 영역(namespace)에 따른 구분법도 있다.

1.3. 관련 문서

2. 인물

  • 변수(卞隨) - 중국 고대사에 나오는 은자이자 청백리
  • 변수(辯秀) - 당나라의 승려 (714년 ~ 780년)
  • 변수(1861) - 한국인 최초의 미국 학사 학위자. 조선의 관료, 미국의 공무원.


[1] 반면 이와 달리 같은 시기의 기하학은 이미 현대의 수학과 마찬가지 엄격한 논증으로 이루어진 수학이었다.[2] 반대되는 표현은 '수치적인(numerical) 방식'. 변수에 특정값들을 하나 하나 직접 넣어가 보며 솔루션을 찾아나가는 방식이다.[3] character의 줄임말이다.