┝ 개발 언어/┝ ruby
[ruby] 변수 앞의 @
홍호나
2023. 7. 10. 15:58
`@`는 Ruby에서 인스턴스 변수를 나타내는 접두사입니다. 인스턴스 변수는 객체의 수명 동안 유지되는 변수로, 객체 내에서 다른 메소드에서도 공유되는 데이터를 저장하는 데 사용됩니다.
def config
@config ||= Config.new
end
위의 코드에서 `@config`은 인스턴스 변수를 나타냅니다. `config` 메소드는 해당 인스턴스 변수에 접근하고, 값이 존재하지 않는 경우에만 `Config.new`로 초기화하는 로직을 가지고 있습니다. 이렇게 인스턴스 변수를 사용하는 것은 `config` 메소드를 여러 번 호출할 때마다 매번 새로운 `Config` 인스턴스를 생성하지 않고, 이미 생성된 인스턴스를 재사용하기 위한 목적으로 사용될 수 있습니다.
예를 들어, 아래와 같이 `config` 메소드를 호출할 때:
obj = MyClass.new
config1 = obj.config # Config 인스턴스 생성
config2 = obj.config # 이미 생성된 Config 인스턴스 반환
첫 번째 호출에서 `@config`은 `nil`이므로 `Config.new`를 통해 새로운 `Config` 인스턴스를 생성합니다. 그러나 두 번째 호출부터는 이미 생성된 `Config` 인스턴스인 `config1`을 반환합니다. 이렇게 함으로써 같은 인스턴스를 여러 번 사용하여 중복 생성을 피하고, 메모리 사용을 최적화할 수 있습니다.
따라서 `@`는 Ruby에서 인스턴스 변수를 구분하는 데 사용되는 특별한 접두사입니다. 이 변수는 객체 내에서 다른 메소드에서 공유되며 객체의 상태를 유지하는 데 사용됩니다.