Computer >> 컴퓨터 >  >> 프로그래밍 >> iOS

Swift에서 전역 변수를 만들고 사용하는 방법

애플 공식 문서에 따르면 “전역 변수(Global Variable)란 함수, 메서드, 클로저, 타입 컨텍스트 외부에서 정의된 변수”를 의미합니다.

전역 변수를 만드는 방법을 배우기 전에, 먼저 전역 변수가 정확히 무엇인지 이해해 보겠습니다.

전역 변수란 무엇일까요?

안쪽 원 안에 있는 “W”는 자신이 속한 안쪽 원의 모든 요소에 접근할 수 있습니다. 반면 “A”는 바깥쪽 원과 안쪽 원 양쪽 모두에 접근할 수 있으므로, A의 범위(scope)는 전역(global)이라고 할 수 있습니다.

즉, 전역 변수란 이처럼 더 큰 범위와 내부 범위의 모든 요소에 접근할 수 있는 변수를 뜻합니다.

전역 변수 선언하기

이제 전역 변수를 선언하거나 생성하는 방법을 살펴보겠습니다. 클래스나 구조체를 정의할 때 전역 변수를 함께 정의할 수 있습니다.

실습은 Xcode의 Playground를 사용합니다. Xcode → File → Playground 순서로 새 플레이그라운드를 열어 시작해 보겠습니다.

class Student {
    var section: String = "A"
    func getStudentData() {
        // some function
    }
}

위 코드에서 section은 클래스 내부이지만 함수 외부에 정의된 전역 변수입니다. 필요에 따라 접근 제한자(access modifier)를 전역 변수 앞에 붙여 사용할 수도 있습니다.

또한 static 키워드를 접두사로 붙여 전역 변수를 정적(static)으로 정의할 수도 있습니다.

private var name: String = "Aman"

구조체(Struct)로 전역 변수 캡슐화하기

전역 변수를 생성하고 관리하는 더욱 효율적인 방법은 구조체를 활용하는 것입니다. 하나의 구조체를 만들어 모든 전역 변수를 그 안에 캡슐화(encapsulation)하면, 어떤 클래스에서든 원하는 위치에서 자유롭게 사용할 수 있습니다. 실제 예제를 통해 확인해 보겠습니다.

struct Student {
    static let name: String = "Aman"
    static let age: Int = 22
}
class Employee {
    func getData() {
        print(Student.age)
        print(Student.name)
    }
}

이처럼 구조체 내부에 static let으로 상수형 전역 변수를 정의하면, 다른 클래스에서도 Student.name, Student.age 형태로 간편하게 접근할 수 있습니다. 이 방식은 전역 변수를 한곳에서 체계적으로 관리할 수 있어 코드의 가독성과 유지보수성을 높여줍니다.

마무리

지금까지 Swift에서 전역 변수를 선언하고 사용하는 다양한 방법을 알아보았습니다. 단순히 클래스나 함수 외부에 변수를 정의하는 방법부터, 접근 제한자와 static 키워드를 활용하는 방법, 그리고 구조체로 전역 변수를 캡슐화하여 관리하는 방법까지 프로젝트 상황에 맞게 활용해 보시기 바랍니다.