[정리] 변수란 무엇일까?

2023. 5. 2. 22:17·개발/정리
728x90
반응형

지금까지 코딩을 해오며 아무 생각 없이 변수를 사용했다.

 

그러다 변수란 무엇일까라는 질문을 들었을때 매일 사용했던거였지만 바로 대답이 나오지 않았다.

 

변수란 무엇일까?

 

처음 질문을 듣고 메모리 주소를 가리키는 이름?? 이라고 생각했지만 확신은 없었다.

그렇다면 왜 다른이름도 많은데 하필 변수라는 이름이 탄생했을까라는 추가적인 생각이 들게 했다.

 

질문을 던진 분은 그릇을 빗대어 그릇안에 담는 물건은 바뀔수 있다를 비유하며 설명해주셨고

평소에 값을 변수에 담는다라는 표현을 하곤 했는데 이말을 들으니 이해가 됐다.

 

나무위키에 따르면 변수란 특정 값을 저장하는 메모리 공간이라고한다.

해당 메모리 공간에는 허용되는 범위 내에 어떤값이든 저장할수 있으므로 변수라고 한다고 한다.

 

위 고민을 거치니 '허용되는 범위 내' 라는 문구와  '어떤값이든 저장할수 있으므로' 라는 문구가 눈에 띄였다.

허용되는 범위 내라는 말은 자바의 byte,  short, int, long 등 지정된 범위를 떠올리며 쉽게 이해가 갔다.

 

다음은 정말 어떤값이든 다 담을수 있을까라는 생각이 들어 구글링도 해보고 chatGPT에게 물어봤다.

찾아본 결과 프로그래밍 언어마다 변수에 담을 수 있는값이 달랐다.

공통적으로 해당 언어가 지원하지 않는 타입이라면 변수에 저장할 수 없었다.

예를 들면  java에서 null 값을 변수에 담을 수 없었다.

그리고 일부 프로그래밍 언어에서는 네트워크 소켓 및 데이터 베이스 연결과 같은 직렬화할 수 없는 값을 저장할 수 없다고 한다.

이 모든 의미가 '허용되는 범위' 라는 범주에 포함된다고 생각했다.

 

결론으로 변수는 허용되는 범위의 값을 담는 메모리공간이다라고 생각이 들었다.

728x90
반응형

'개발 > 정리' 카테고리의 다른 글

[정리] 객체지향의 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)  (1) 2023.04.07
'개발/정리' 카테고리의 다른 글
  • [정리] 객체지향의 4가지 특징
  • [정리] 라이선스(저작권)
  • [정리] ubuntu java 개발자 세팅 (그래픽카드 드라이버 설치, vscode, ibus, LibreOffice, virtualBox, openJDK)
  • [정리] 브라우저의 작동 방식
TeTedo.
TeTedo.
  • TeTedo.
    TeTedo 개발 일기
    TeTedo.
  • 전체
    오늘
    어제
    • 분류 전체보기 (319)
      • 개발 (274)
        • Article (4)
        • 정리 (21)
        • Spring Boot (17)
        • JPA (2)
        • JAVA (6)
        • Database (4)
        • 자료구조 (11)
        • 알고리즘 (32)
        • React (20)
        • Docker (10)
        • node.js (18)
        • Devops (11)
        • Linux (4)
        • TypeScript (3)
        • Go (10)
        • HyperLedger (4)
        • BlockChain (43)
        • html, css, js (48)
        • CS (3)
        • AWS (3)
      • 모아두고 나중에 쓰기 (3)
      • 팀프로젝트 (18)
        • SNS(키보드워리어) (9)
        • close_sea (9)
      • 개인프로젝트 (1)
        • Around Flavor (1)
        • CHAM (13)
        • ethFruitShop (5)
      • 독서 (0)
        • 스프링부트와 AWS로 혼자 구현하는 웹 서비스 (0)
  • 블로그 메뉴

    • 홈
    • 개발일기
    • CS
    • 실습
    • 코딩테스트
    • 웹
    • Go
    • node.js
    • 팀플
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    CSS
    go언어
    erc20
    프로그래머스
    도커
    node
    하이퍼레저
    명령어
    30일 챌린지
    node.js
    html
    nodejs
    React
    js
    mysql
    go
    블록체인
    컨테이너
    30일챌린지
    ERC721
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
TeTedo.
[정리] 변수란 무엇일까?
상단으로

티스토리툴바