[swift] 변수와 상수의 전역, 지역 변수

스위프트에서는 변수와 상수를 사용하여 데이터를 저장하고 조작할 수 있습니다. 이러한 변수들은 전역 변수와 지역 변수로 구분됩니다. 이번 포스트에서는 스위프트에서 변수와 상수의 전역과 지역 변수에 대해 알아보겠습니다.

전역 변수 (Global Variable)

전역 변수는 어디에서든 접근 가능한 변수입니다. 즉, 어느 함수나 메소드에서든 해당 변수에 접근하여 값에 접근하거나 변경할 수 있습니다. 전역 변수는 스위프트 파일의 어느 곳에서든 선언할 수 있으며, 해당 스위프트 파일 내에서 어디든 사용할 수 있습니다.

var globalVariable = 10

func updateGlobalVariable() {
    globalVariable = 20
}

print(globalVariable) // 10
updateGlobalVariable()
print(globalVariable) // 20

위의 예제에서 globalVariable은 전역 변수로 선언되었습니다. updateGlobalVariable 함수에서 해당 변수의 값을 변경하고, 이후에 print 함수를 사용하여 값을 출력하였습니다. 결과적으로, 전역 변수의 값은 변경된 것을 확인할 수 있습니다.

지역 변수 (Local Variable)

지역 변수는 특정한 범위 내에서만 유효한 변수입니다. 즉, 해당 변수는 함수나 메소드 내에서만 사용할 수 있습니다. 함수 내에서 선언된 변수는 해당 함수 내에서만 접근 가능하며, 다른 함수에서는 접근할 수 없습니다.

func printLocalVariable() {
    let localVariable = 5
    print(localVariable)
}

printLocalVariable() // 5
print(localVariable) // Error: Use of unresolved identifier 'localVariable'

위의 예제에서 printLocalVariable 함수 내에서 localVariable이라는 지역 변수를 선언하고, 해당 변수를 출력하였습니다. 함수 외부에서는 해당 변수에 접근할 수 없기 때문에 컴파일 에러가 발생합니다.

전역 변수와 지역 변수의 차이점

전역 변수와 지역 변수의 가장 큰 차이점은 변수의 유효 범위와 접근 가능성입니다. 전역 변수는 어디서든 접근이 가능하므로, 여러 함수에서 해당 변수에 접근하여 값을 변경할 수 있습니다. 반면에 지역 변수는 특정 함수 내에서만 접근 가능하며, 다른 함수에서는 접근할 수 없습니다.

또한, 전역 변수는 프로그램이 실행되는 동안 메모리에 상주하고, 해당 값이 변경되지 않는 한 계속해서 유지됩니다. 반면에 지역 변수는 해당 함수가 호출될 때마다 메모리에 할당되고, 함수가 종료되면 메모리에서 제거됩니다.

결론

스위프트에서는 전역 변수와 지역 변수를 사용하여 데이터를 저장하고 조작할 수 있습니다. 전역 변수는 전역적으로 접근이 가능하고, 지역 변수는 특정 함수 내에서만 접근 가능한 것이 특징입니다. 이러한 변수들을 적절하게 사용하여 코드를 작성하면 더욱 유지보수가 용이하고 안정적인 프로그램을 개발할 수 있습니다.