본문 바로가기

Apple/Swift

[Swift] 상수와 변수

해당 포스팅은 The Swift Programming Language (5.9.2) 버전으로 작성되었습니다.

 

 

 

 

안녕하세요! 마루입니다. 😬

 

오늘 저녁으로 BBQ 깐풍 치킨 먹었는데

전 BHC의 맛쵸킹이 더 맛있더라구요!

(tmi)저는 완전한 순살파 입니다.

 

 

 

 

Swift 문법에서 제일 처음 포스팅 될 내용은

바로바로~~~~~~~~~~~~~~~~~~~

상수(constant)와 변수(variable)

입니다.

 

(Apple 공식 문서에서도 제일 처음으로 상수와 변수가 나온답니다ㅎ.ㅎ)

 

상수와 변수의 정의

 

혹시 여러분들은 상수와 변수가 뭔지 기억하고 계신가요?

저는 상수와 변수를 처음 접했을 때 이게 뭐였더라...? 했습니다;; 😅

(수학을 싫어했던 마루...)

 

상수는 변하지 않고, 항상 일정한 값을 갖는 수.

변수는 값이 정해져 있지 않고 변하는 수.

 

예를 들면,

최대 탑승 인원이 15명인 엘레베이터가 있다고 하면

15 라는 숫자는 상수가 될 것이고,

현재 탑승 중인 인원이 있다고 하면 그 탑승 인원 숫자를 변수라고 볼 수 있겠죠!

 

 

프로그래밍적인 정의를 보자면

상수나 변수는 앱 내에서 사용할 데이터를 저장하기 위해
컴퓨터 메모리(RAM) 내에 미리 위치(혹은 공간)를 확보하는 것을 말합니다.

변수는 데이터를 바꿀 수 있지만, 상수는 데이터를 한 번 저장하면 바꿀 수 없지요.

 

조금은 이해가 되시나요?

한 번 저장한 데이터를 바꿀 수 있느냐, 없느냐가 핵심 뽀인트 입니다!!!!

 

 

 

 

그럼 swift.org에는 뭐라고 나와있는지 볼까요!
(앞으로 Apple의 공식 문서 ➡️ swift.org 라고 부르겠습니다.
)

Constants and variables associate a name (such as maximumNumberOfLoginAttempts or welcomeMessage) with a value of a particular type (such as the number 10 or the string "Hello"). The value of a constant can’t be changed once it’s set, whereas a variable can be set to a different value in the future.

constant: 상수 / variable: 변수 / associate: 연관 짓다 / particular: 특정한 / whereas: 반면에

 

상수와 변수의 이름은 (특정 타입의)값과 연관되도록 짓는다.

상수는 한 번 설정하면 바꿀 수 없다.

변수는 한 번 설정해도 나중에 바꿀 수 있다.

 

정도로 요약할 수 있겠네요.

타입이란 단어도 잠시 나오고, 상수나 변수의 이름 짓는 법에 대해서도 설명해주고 있네요!

타입에 대해서는 다음 주제로 포스팅할 예정이니 지금은 살짝 넘어가자구요 😁

 

 

상수나 변수에 이름을 짓는다?

위에서 데이터를 저장한다고 했는데, 어떻게 하는거지?

지금부터 알아봅시다!!!

 

 

 

상수나 변수 선언하기

 

선언을 한다고? 뭔가 비장하다..!!! 먼저 예제 코드를 한 번 볼까요?

(swift.org의 예제 코드입니다.)

let maximumNumberOfLoginAttempts = 10
var currentLoginAttempt = 0

 

예제 코드를 한 번 분석해봅시다. 🥸

 

1. 상수인지, 변수인지 키워드를 먼저 써준다.

상수를 만들기 위해서는 맨 앞에 let 이라는 *키워드를 붙입니다.

변수를 만들기 위해서는 맨 앞에 var이라는 *키워드를 붙입니다.

*키워드(Keyword): 프로그래밍 언어에서 특정한 목적으로 사용되기 위해 이미 만들어진 단어를 말합니다.

 

 

2. 그 다음에 상수나 변수의 이름을 넣어줍니다.

위 예제코드에서는 maximumNumberOfLoginAttempts는 상수의 이름,

currentLoginAttempt가 변수의 이름이 되는 것이죠.

 

근데 읽기가 좀 불편하죠?

'아버지가방에들어가신다' 같은 느낌이죠???

 

 

프로그래밍 언어에서는 상수, 변수 등의 이름짓는 방법에는 크게 2가지가 있습니다.

스네이크 케이스(snake case)

카멜 케이스(camel case)

 

스네이크 케이스는 

maximum_number_of_login_attempts
current_login_attept

단어와 단어 사이에 언더바(_)를 넣어 구분하는 방식을 말합니다.

그 모양이 마치 뱀과 같다고 해서 스네이크 케이스라고 합니다. 🐍

대표적으로 Python, Ruby 언어 등에서 스네이크 케이스를 사용합니다.

 

Swift가 사용하는 카멜케이스 방식은

// 소문자 카멜 케이스: 소문자로 시작
maximumNumberOfLoginAttempts
currentLoginAttempt

// 대문자 카멜 케이스: 대문자로 시작
MaximumNumberOfLoginAttempts
CurrentLoginAttempt

단어와 단어 사이를 띄어쓰지 않고 대문자를 넣어 구분하는 방식을 말합니다.

그 모양이 마치 낙타와 비슷하다고 해서 카멜 케이스라고 합니다. 🐫

대표적으로 Swift, C#, C++ 등에서 카멜 케이스를 사용합니다.

 

예시 코드에는 소문자 카멜 케이스와 대문자 카멜 케이스가 있습니다.

Swift에서는 상수, 변수, 함수 등에서는 소문자 카멜 케이스를 사용하고

타입에서는 대문자 카멜 케이스를 사용하고 있습니다.(기억만 해두세용!)

 

 

자, 그럼 상수나 변수의 이름을 짓는 데에도 규칙이 있을까요!?

네, 몇 가지 규칙이 있습니다.

 

- 숫자로 시작할 수 없다.

- 공백을 포함할 수 없다.

- 대/소문자는 구분되어 사용된다.

- 유니코드를 포함한 문자 사용이 가능하다. (수학 기호나 화살표 등 안되는 문자도 있습니다.)

- 이름만 읽어도 어떤 데이터를 담고 있는지 예상이 가야한다.

- 명사로 만든다.

- 약어를 쓰지 않는 것을 추천한다.

 

몇 가지라면서요!! 왜이렇게 많은가요!?

ㅎㅎ 이 규칙들은 다 외울필요는 없습니다...분명 코딩하시다보면 저절로 외워집니다!!!

 

 

3. = 을 이용하여 데이터 할당하기

Swift 언어에서 등호(=) 의 정식 명칭은 할당 연산자(assignment operator)라고 합니다.

이 할당 연산자는 연산자 파트에서 자세하게 설명 드릴게요!

 

지금은 할당 연산자를 기준으로

오른쪽에 있는 것을 왼쪽에 담는다.(=할당한다) 라고 생각하시면 됩니다!!!

 

 

자, 그러면 다시 예제 코드를 볼까요?

let maximumNumberOfLoginAttempts = 10
var currentLoginAttempt = 0

다음과 같이 해석할 수 있겠군요.

 

- maximumNumberOfLoginAttempts 이름을 가진 상수에 숫자 10의 데이터를 할당한다고 선언되어있다.

- currentLoginAttempt 이름을 가진 변수에 숫자 0의 데이터를 할당한다고 선언되어있다.

 

상수와 변수의 정의를 대입해서 해석해본다면

maximumNumberOfLoginAttempts에 저장된 10이라는 데이터는 앞으로 바뀔 수 없고,

currentLoginAttempt에 저장된 0의 데이터는 앞으로 바뀔 수 있을거에요!

로그인 시도 회수를 총 10번으로 한정해놨으니 10번 안으로 로그인에 성공해야겠죠??

 

 

 

 

그럼 swift.org를 살펴보겠습니다.

(위에서 설명하지 않은 내용만 발췌했습니다.)

Constants and variables must be declared before they’re used. You declare constants with the let keyword and variables with the var keyword.

If a stored value in your code won’t change, always declare it as a constant with the let keyword. Use variables only for storing values that change.

declare: 선언하다

 

상수와 변수는 사용되기 전에 반드시 선언되어야 한다.

만약 저장한 값이 코드에서 바뀌지 않는다면 반드시 상수를 사용한다.

변수는 오직 값이 변할 때만 사용할 수 있다.

 

Swift에서는 상수와 변수의 구분을 철저하게 해주고 있습니다.

 

코드를 작성하실 때 변수와 상수 중에 무엇을 사용할 지 잘 모르시겠다면

일단, 상수로 작성하는게 좋습니다!!

왜냐하면 상수로 작성했다가 나중에 값이 변하게 되면 Xcode에서 친절하게

변수로 바꿔줄까? 라고 물어보거든요ㅎ.ㅎ

 

마지막으로 이런 내용도 있군요.

You can declare multiple constants or multiple variables on a single line, separated by commas.

separate: 분리하다

 

한 줄에 여러 개의 상수나 변수를 선언하고 싶다면 콤마(,)로 구분해서 선언할 수 있다.

 

예제 코드로 보면 한 번에 이해가 가실 겁니다!

var x = 0.0, y = 0.0, z = 0.0

 코드 한 줄에 x, y, z 변수를 선언하고 각각 0.0의 값을 할당하여 선언했습니다.

근데 사실 콤마가 눈에 잘 안들어와서 위 예제 코드처럼은 잘 안쓰는 것 같습니다!

 

 

 

 

= = = = = = = = = =

 

지금까지 [상수와 변수]라는 주제로

 

상수와 변수의 정의

상수나 변수 선언하기

 

내용을 살펴보았습니다!!!

 

코딩하면서 정말 많이 만날 상수와 변수이기 때문에

기초 개념을 튼튼히 가져가면 좋겠져!!!

 

오탈자나 설명의 틀린 부분, 추가적으로 해주고 싶으신 설명이 있으시다면

주저없이 댓글을 달아주세요. 🙏

 

다음 포스팅은

[데이터 타입] 라는 주제로 찾아뵙겠습니당~~

 

긴 글 읽어주셔서 감사합니다.

'Apple > Swift' 카테고리의 다른 글

[Swift] 제너릭(Generic)  (1) 2024.03.02
[Swift] 데이터 타입_문자형  (1) 2024.02.15
[Swift] 데이터 타입_숫자형  (0) 2024.02.03
[Swift] 타입 명시와 타입 추론  (0) 2024.01.21
[Swift] 마루의 공부 방법  (0) 2024.01.06