[ruby] 변수 앞의 @

`@`는 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에서 인스턴스 변수를 구분하는 데 사용되는 특별한 접두사입니다. 이 변수는 객체 내에서 다른 메소드에서 공유되며 객체의 상태를 유지하는 데 사용됩니다.

'┝ 개발 언어 > ┝ ruby' 카테고리의 다른 글

[ruby] 모델 테스트하는 방법  (0) 2023.08.10
[ruby] orm : unscoped  (0) 2023.07.24
[ruby] validates_inclusion_of  (0) 2023.07.18
[ruby] '=>'는  (0) 2023.07.10
ruby의 RSpec  (0) 2023.06.30