지금까지 코딩을 해오며 아무 생각 없이 변수를 사용했다.
그러다 변수란 무엇일까라는 질문을 들었을때 매일 사용했던거였지만 바로 대답이 나오지 않았다.
변수란 무엇일까?
처음 질문을 듣고 메모리 주소를 가리키는 이름?? 이라고 생각했지만 확신은 없었다.
그렇다면 왜 다른이름도 많은데 하필 변수라는 이름이 탄생했을까라는 추가적인 생각이 들게 했다.
질문을 던진 분은 그릇을 빗대어 그릇안에 담는 물건은 바뀔수 있다를 비유하며 설명해주셨고
평소에 값을 변수에 담는다라는 표현을 하곤 했는데 이말을 들으니 이해가 됐다.
나무위키에 따르면 변수란 특정 값을 저장하는 메모리 공간이라고한다.
해당 메모리 공간에는 허용되는 범위 내에 어떤값이든 저장할수 있으므로 변수라고 한다고 한다.
위 고민을 거치니 '허용되는 범위 내' 라는 문구와 '어떤값이든 저장할수 있으므로' 라는 문구가 눈에 띄였다.
허용되는 범위 내라는 말은 자바의 byte, short, int, long 등 지정된 범위를 떠올리며 쉽게 이해가 갔다.
다음은 정말 어떤값이든 다 담을수 있을까라는 생각이 들어 구글링도 해보고 chatGPT에게 물어봤다.
찾아본 결과 프로그래밍 언어마다 변수에 담을 수 있는값이 달랐다.
공통적으로 해당 언어가 지원하지 않는 타입이라면 변수에 저장할 수 없었다.
예를 들면 java에서 null 값을 변수에 담을 수 없었다.
그리고 일부 프로그래밍 언어에서는 네트워크 소켓 및 데이터 베이스 연결과 같은 직렬화할 수 없는 값을 저장할 수 없다고 한다.
이 모든 의미가 '허용되는 범위' 라는 범주에 포함된다고 생각했다.
결론으로 변수는 허용되는 범위의 값을 담는 메모리공간이다라고 생각이 들었다.
'개발 > 정리' 카테고리의 다른 글
[정리] 객체지향의 4가지 특징 (0) | 2023.05.03 |
---|---|
[정리] 라이선스(저작권) (0) | 2023.05.03 |
[정리] ubuntu java 개발자 세팅 (그래픽카드 드라이버 설치, vscode, ibus, LibreOffice, virtualBox, openJDK) (0) | 2023.04.24 |
[정리] 브라우저의 작동 방식 (0) | 2023.04.11 |
[정리] 개발 방법론 (Water Fall vs Agile) (0) | 2023.04.07 |