변수가 없으면 안돼요?
더 편하게 보시려면 여기를 눌러주세요.
문법을 공부하면 아마도 가장먼저 배우는 것들이 변수일 것 입니다. 우리는 변수를 배우고 나서 어디에 그리고 왜 써야하는지 고민하기 시작합니다. 그렇기에 가장먼저 배운다는 것이 이유없이 가야할 필요는 없습니다.
개발을 할 때 변수가 없으면 어떤 일들이 일어날 지 그래서 변수로 해결하고 있는 문제들이 알아봅시다.
그리고 납득을 하지 못한다면, 변수를 건너뛰고 공부합시다!
데이터 관리
데이트를 관리해야하는 방법과 그 이유를 아주 쉬운 일상생활에서 예시로 찾아봅시다.
레시피를 따라 요리를 한다고 생각해봅시다. 레시피에는 다양한 재료와 그 양이 명시되어 있습니다. 이 재료들과 그 양은 "변수"와 같습니다. 만약 레시피를 따라 요리를 하다가 손님의 수가 늘어났다고 가정해봅시다. 재료의 양(변수)을 조절함으로써 쉽게 더 많은 양의 음식을 만들 수 있습니다. 반면, 재료의 양을 고정된 상수로 다루면, 변화하는 상황에 유연하게 대처하기 어렵습니다.
이 처럼 한 가지의 상황만 대처한다면은 변수가 필요하지 않습니다. 그래서 처음부터 변수를 넣기 보다는 필요가 없다면 고정된 값을 쓰다가 여러가지 상황에 대응하면서 필요한 부분에 변수를 넣으면 됩니다.
이제는 좀 더 코드로 예제를 만들어 보겠습니다.
print("직사각형의 면적은 \(4*8)입니다.")
위의 예제는 면적을 구하는 코드이고 32라는 면적을 계산합니다. 우리의 가로와 세로 변화에 대응 할 필요가 없다면 변수를 쓰지 않아도 됩니다.
let length = 4
let width = 8
let area = length * width
print("직사각형의 면적은 \(area)입니다.")
이렇게 변수, 저장하는 공간에 다른 데이터들이 들어온다면 대응을 하기위해 변수를 써서 계산하면됩니다.
코드의 재사용성
레시피를 생각해보세요. 레시피는 다양한 재료와 그 양, 조리 방법을 제공합니다. 이 레시피는 "재사용 가능한 코드"와 같습니다. 만약 당신이 다양한 사람들을 위해 같은 요리를 여러 번 해야한다면, 레시피를 참조하여 일관된 결과를 얻을 수 있습니다. 재료의 양이나 종류를 "변수"로 생각할 수 있으며, 이를 조절함으로써 다양한 상황에 맞게 요리를 할 수 있습니다.
아주 작은 코드의 재사용이지만 실제로 많은 부분에서 필요합니다. 코드로 본다면 어떤 편리한 부분이 있는지 확인할 수 있습니다.
print("직사각형의 면적은 \(4*8)입니다.")
print("\(4*8)가 최대 넓이입니다.")
print("절반의 크기는 \(4*8/2)입니다.")
위 코드는 재사용성이 떨어집니다. 그래서 또 다른 면적을 출력하는 문장을 써야한다면 우리는 또 다시 \(4*8)
를 가져와야 합니다. 지금은 문제가 없어보입니다. 사각형의 너비가 4에서 3으로 줄어들면 우리는 3군데의 수정을 해야합니다. 만약 실수로 하나를 빠트린다면 문제가 생길 것 입니다.
let length = 4
let width = 8
let area = length * width
print("직사각형의 면적은 \(area)입니다.")
print("\(area)가 최대 넓이입니다.")
print("절반의 크기는 \(area/2)입니다.")
이렇게 작성하면 길이가 4에서 3이 되었을 때 length를 수정하면 됩니다. 또한 넓이가 필요한 부분은 area
를 불러와쓰면 되기때문에 재사용성이 처음 코드보다는 높습니다.
가독성
물건을 수납할 때 아무렇게나 담는 것 보다는 담긴 곳에 이름을 붙여 놓으면 다음에 찾기가 쉽습니다. 그리고 잘 못 된 이름을 붙여 놓으면 오히려 물건을 찾기가 어렵습니다. 이렇게 잘 붙여진 이름이 주는 가독성을 일상생활에서도 알 수 있습니다.
정보에 명확한 이름을 붙여서 가독성이 높아진 경우를 살펴보겠습니다.
let temperature = 25
let temperature2 = (temperature * 9 / 5) + 32
print("\(temperature)°C is equal to \(temperature2)°F") // 25°C is equal to 77°F
이렇게 변수에 이름을 잘 못 붙여놓으면 읽기가 굉장히 힘듭니다. 온도가 두개인데 어느 것이 섭씨와 화씨인지 구분하기가 어렵습니다. 그래서 이름을 잘 붙여 놓으면 코드를 읽기가 편해집니다.
let celsiusTemperature = 25
let fahrenheitTemperature = (celsiusTemperature * 9 / 5) + 32
print("\(celsiusTemperature)°C is equal to \(fahrenheitTemperature)°F") // 25°C is equal to 77°F
실제 출력되는 값은 25이지만 우리의 눈에는 섭씨온도가 오는 자리가 잘 보이기 때문에 이 방법을 활용해 코드의 가독성을 높일 수 있습니다.
최종적으로 정리를 해보겠습니다. 변수를 사용하지 않으면, 모든 데이터를 상수(constant)나 리터럴 값으로 직접 적어야 합니다. 이는 데이터를 업데이트하거나 변경하기 어렵게 만들고, 코드의 유지보수를 힘들게 합니다. 그리고 가독성 또한 좋아집니다.
댓글
댓글 쓰기