Variable(변수)와 데이터 종류
프로그래밍 언어는 크게 "High Level 언어"와 "Low Level 언어"가 있습니다.
이중 "High Level 언어"중 대표적인 게 Python이며, "Low Level 언어"는 C 언어입니다.
Low Level 언어는 저수준이라고 번역되는 경우가 많은데, 이는 수준이 낮다는 의미가 아닙니다.
상세하고, 세부적인 사항을 다를 수 있다는 의미입니다. 컴퓨터에 더 가깝다는 의미로 봐야 합니다.
사람이 프로그램을 작성하려면 세세한 부분을 지정해줘야 하며, 대신 더 실행 속도가 빠르고 OS 관련 세부 사항들을 처리할 수 있습니다.
컴퓨터에 가깝다는 말은 컴퓨터가 알아듣는 숫자로 변환하기가 더 용이하다는 의미(컴파일)도 됩니다.
High Level 언어는 반대로 사람에 더 가깝기 때문에 코딩을 하기 편하지만 컴퓨터가 알아듣는 숫자로 변환하기에는
더 어려우며 실행속도가 느려집니다.
High Level 언어와 Low Level 언어의 큰 차이점 중 하나는 Variable을 사용하는 방식입니다.
아래는 C 언어의 코드입니다.
int sum;
sum = 1 + 2;
동일한 기능의 python code입니다.
sum = 1 + 2;
차이점은 low level 언어는 변수에 값을 넣기 전(사용하기 전)에 미리 variable의 이름과 variable이 가지는 데이터의 종류를 정해줘야 하는 것입니다.
Low Level 언어 : Static Binding (C , Java 등)
위의 코드에서
int sum; 이 앞으로 사용할 sum이라는 variable을 사용할 것이니 만들어 달라, 그런데 sum 에는 정수형 값(int) 데이터를 사용할 것이다. 라고 미리 정의를 하는 것입니다. 이런 방식을 static binding 이라고 합니다.
variable을 사용하기 전에 미리 , 어떤 값을 넣은 어떤 이름의 variable 을 준비해 줘.라고 명령을 내리는 것입니다.
이때, 데이터의 종류는 크게 ,
- 정수 (얼마나 큰 수까지 저장할 수 있는지를 지정하는 것입니다. - 몇 byte를 공간을 차지할지를 지정하는 것과 같습니다. )
- 실수 (정수와 같이 얼마나 큰 수까지 저장할 수 있는지 지정할 수 있습니다.)
- 문자열 (원하는 길이의 문자열을 지정할 수 있습니다. )
variable의 이름 규칙은 앞의 글에 적은 것과 같이 숫자로 시작하면 안 되며, 알파벳과 "_" , 숫자의 조합으로 만들면 됩니다.
int sum; (정수)
float pi = 3.14; (실수)
chat *greeting = "Hello!"; 등과 같습니다.
High Level 언더 : Dynamic Binding (Python , JavaScript 등)
high level 언어인
- variable을 미리 정의(선언) 할 필요 없이 처음 값을 대입할 때 자동으로 만들어집니다.
- 대입하는 값에 따라서 자동으로 variable의 종류가 정해지며, 새로의 종류로 변하기도 합니다.
python의 예를 들으면
value = 1
value = 3.14
value = "Hello!"
와 같이 미리 어떤 variable을 사용할 것이다를 미리 알려줄 필요없이 값을 대입하면 자동으로 변수가 만들어지며,
이미 만들어진 변수에 다른 종류의 값을 넣으면 , 알아서 variable 이 저장하는 데이터 종류가 변하게 됩니다.
각 언어별로 variable 을 선언하는 법, 데이터 종류는 모두 다릅니다.
variable 을 다루는 법은 코딩의 가장 기본 사항이므로 , 거의 대부분의 책들이 항상 책을 앞부분에 설명을 하고 있으니,
위의 static binding과 dynamic binding 중 어떤 방식인지를 확인하고, 데이터의 종류는 어떤 것들인지 학습을 해야 합니다.