[Kotlin] #001. 변수

이동현·2020년 9월 27일
0

Kotlin의 모든 문법과 기능을 완벽하게 이해하고 싶어 작성하는 글입니다.
잘못된 지식 및 오타가 있을 시 댓글로 알려주시면 감사하겠습니다😎

안녕하세요 이동현입니다.

Kotlin에서의 변수에 대해 공부를 하면서 정리해보았습니다.

변수

예시

변수란 무엇일까요? 예를 통해 접근하면 이해가 쉽습니다.

간단한 계산기 프로그램을 만든다고 가정해봅니다.
'더하기' 기능을 구현 할 계획이라면, 아래와 같은 로직을 생각 해 볼 수 있습니다.

  1. 한 개의 숫자를 입력받습니다.
  2. 또 하나의 숫자를 입력받습니다.
  3. 입력받은 두개의 수를 더해줍니다.
  4. 결과를 화면에 출력해줍니다.

프로그램은 1, 2번 과정에서 입력받은 각각의 숫자들을 어떠한 공간에 담아두는 방식으로 기억을 하고 있어야 합니다. (더하는 과정에서 기억했던 값을 꺼내어 사용해야 하기 때문입니다.)
또한, 3번 과정에서 더한 결과값을 어떠한 공간에 담아두어야 4번 과정에서 출력시 사용할 수 있습니다.

🤔어떠한 공간?

입력받은 값, 출력할 값 등을 저장하는 공간이 기기 내부적으로 필요합니다.
수치 혹은 자료등을 저장하는 기기의 메모리가 그 부분을 담당하기에 적합합니다.

위에서 언급했던 어떠한 공간메모리를 의미합니다.

즉, 프로그램에서는 사용할 여러 값들을 메모리에 저장하게 됩니다.

변수란?

값을 저장하려면 메모리가 필요하다는 것을 알았습니다.
하지만, 메모리는 매우 넓은 공간이며, 우리가 넣어줄 데이터는 상대적으로 아주 작은 양입니다.

메모리에 값을 넣어주면, 그 값이 들어간 공간이 생기게 됩니다.
공간의 주소/위치를 알고있어야, 나중에 공간에 접근하여 값을 사용할 수 있습니다.

변수는 그러한 공간의 주소를 기억하는 역할을 합니다.

변수의 선언

변수의 선언이란?

변수를 프로그램에서 사용 및 활용하기 위해서는 아래와 같은 과정을 거쳐야합니다.

  1. 어떤 을 저장을 할까?
  2. 저장한 값이 하는 역할을 쉽게 기억하기 위한 이름을 정해야 한다.

값을 메모리에 저장하면 공간은 자동으로 할당됩니다.
따라서, 우리는 '어떤 을 저장 할 것이냐'만 생각해주면 됩니다.

후에 변수에 저장된 값을 사용하려면 어떻게 해야할까요?
해당 값이 들어있는 메모리 공간 주소에 접근을 해야하고, 그 주소에 들어있는 값을 꺼내와야합니다.
이 때, 변수의 이름을 지정해주면, 메모리 공간 주소에 이름을 통해 접근이 가능해집니다.

이러한 일련의 과정을 변수를 선언한다고 부릅니다.

예시

위의 계산기 프로그램을 다시 보겠습니다.
그 중, 첫번째 숫자의 정보를 변수로 선언하는 아이디어를 보겠습니다.

1. 어떤 값을 저장을 할까?

첫 번째로 입력받을 숫자를 10으로 두고 싶습니다.
→ 10

2. 저장한 값이 하는 역할을 쉽게 기억하기 위한 이름을 정하자

첫 번째 숫자임을 명시적으로 나타내는 이름이 좋을 것 같습니다.
→ firstNumber

연결을 어떻게 할까?

변수의 연결은 아래와 같은 형식으로 이루어집니다.

1) val 이름 =2) var 이름 =

앞에 존재하는 valvar은 변수를 선언한다는 의미를 가진 키워드입니다.
두가지 방법이 있음을 알 수 있는데, 둘의 차이는 다음 포스팅에서 이야기를 해 볼 생각입니다.

따라서, 앞서 계산기에 입력 할 첫 번째 숫자 정보를 저장하는 변수의 선언은 아래와 같이 행해질 수 있습니다.

val firstNumber = 10
var firstNumber = 10

마찬가지로, 두 번째 숫자 정보의 저장도 가능합니다.

val secondNumber = 20
var secondNumber = 20

변수의 사용

앞서, 값을 저장하는 방식에 대해 살펴보았습니다.
그렇다면, 저장한 값을 사용하는 방법에 대해 알아 볼 필요가 있습니다.

저장한 값을 사용하려면, 값을 저장했던 변수의 이름을 알고 있어야합니다.
변수의 이름을 직접 사용하면, 기억하고 있던 공간의 주소에 접근하여 값을 불러옵니다.

예시

계산기 프로그램을 이어서 만들어봅니다.
3번 과정에서는 입력받은 두개의 수를 더해주는 과정을 거칩니다.

입력받은 두개의 수는 각각 firstNumber, secondNumber 라는 이름을 가진 변수를 사용해서 값을 저장 해두었습니다.

값을 사용하기 전에, 결과값을 담는 변수를 하나 만들어보도록 하겠습니다.
덧셈 결과를 저장하는 것이 목적이기 때문에 resultSum이라는 이름을 선택했습니다.

val resultSum = 덧셈결과
var resultSum = 덧셈결과

덧셈결과에는 값이 들어가게 되는데, 여기에서의 값은 firstNumber에 저장된 값을 호출하고, secondNumber에 저장된 값을 호출하여 서로 더해준 결과가 됩니다.

변수의 이름을 직접 사용해서 값을 불러주면 됩니다.

val resultSum = firstNumber + secondNumber
var resultSum = firstNumber + secondNumber

마무리

마지막으로, 결과를 출력하면 프로그램 수행이 완료됩니다.

print(resultSum)

이 또한, 변수 이름을 단순히 사용만 해서 값을 불러냈습니다.

가능한 값들

위의 예에서는 숫자 값만을 변수의 값으로 넣어주었습니다.
하지만 숫자이외에 문자, 배열.. 혹은 다양한 계산 식 역시 값으로 할당 가능합니다.

간단한 상황을 우선적으로 제시합니다.

// 정수
val number1 = 10
val number2 = -10

// 실수
val number3 = 3.14
val number4 = -3.14

// 문자
val word1 = 'A'
(X) val wrongWord = 'ABCD' 

// 문자열
val word2 = "A"
val word3 = "ABCD"

// 논리
val boolean1 = true
val boolean2 = false

특히나, 문자와 문자열은 다른 개념이므로 표현 방식을 확실히 구분해야 합니다.
0개 이상의 여러 문자가 합쳐져 문자열이 만들어집니다.

문자는 작은 따옴표 사이에, 문자열은 큰 따옴표 사이에 값을 입력하면 됩니다.
따라서, 두 개 이상의 문자를 작은 따옴표 사이에 담을 수 없습니다.

복잡한 상황에 대해서는 나올 때 마다 정리를 하도록 하겠습니다.

변수 이름 명명 규칙

프로그래밍은 값/데이터의 연속적이고 지속적인 관리를 통해 이루어집니다.
그 값을 저장하고 사용하는 수단으로 변수가 사용됩니다.

결국, 변수를 선언하는 지점은 관리할 데이터의 시작이 되는것이며, 계속해서 데이터를 관리하기 위해서는 접근을 어렵게 만들어 주어서는 안됩니다.

따라서, 변수이름을 잘 정하는 것이 매우 중요합니다.

일반적인 규칙들이 존재합니다.

  • 첫 번째 글자는 문자이다. 숫자로 시작해서는 안된다.
    (단, '_' 기호는 첫 글자로 사용 가능하다.)
  • 영어 대소문자를 구분한다. (ex firstNumber, FirstNumber는 다른 변수)
  • 길이의 제한은 없다.
  • 첫 문자는 소문자로 시작하며, 여러 단어가 연결되어 있을 경우 두 번째 단어부터의 첫 문자는
    대문자로 한다. (Camel 표기법)
  • 예약어는 변수명으로 사용할 수 없다.

다음 포스팅

변수 값을 저장하는 디테일한 방식에 대한 글을 작성할 계획입니다.

  • 자료형
  • val, var
profile
영차영차

0개의 댓글