서론
안녕하세요, 여러분! 오늘은 Swift에서 굉장히 중요한 역할을 하는 self 프로퍼티에 대해 이야기를 나눠볼까 합니다.
Swift를 처음 배우는 분들이나, 다른 언어에서 넘어오신 분들이라면 '이 self는 도대체 뭐지?'라는 생각을 해보셨을 겁니다. (사실 제가 그랬어요 ㅎ..) 오늘은 그런 의문점을 풀어드리겠습니다!! 바로 살펴보도록 하겠습니다.
self가 뭐야?
Swift에서 self는 현재 인스턴스를 가리키는 키워드입니다. 클래스, 구조체, 열거형 내부에서 사용되며 해당 인스턴스 자신을 참조하게 됩니다. 이 개념을 알고 나면 "어? 이거 다른 언어들에서 쓰던 this 키워드랑 비슷한데?"라고 하실 텐데요. 맞습니다!
Swift의 self와 Java나 JavaScript 등의 언어에서의 this는 매우 흡사한 개념입니다.
이들 모두 현재 인스턴스를 가리키는 키워드로서, 클래스나 구조체, 열거형의 내부에서 사용되며 해당 인스턴스 자신을 참조하게 됩니다.
따라서, self와 this는 각각의 언어에서 현재 인스턴스에 접근할 때 사용하는 키워드라고 이해하시면 됩니다.
예를 들어 아래와 같은 코드가 있다고 해봅시다.
class Car {
var speed = 0
func accelerate() {
self.speed += 10
}
}
여기서 accelerate() 메소드 안의 self.speed는 "자기 자신(Car 인스턴스)의 속도"라는 것을 의미합니다.
그럼 self는 왜 쓰는 거지?
self를 이해하셨다면 근본적인 질문이 생기실 겁니다. "self가 뭐하는 키워드인지 알겠는데, 그걸 왜 써?" 라는 질문 말이죠.
왜 굳이 '자기 자신'을 가리켜야 할까요? 그 이유 중 하나는 모호함을 방지하기 위해서입니다.
예를 들어 아래와 같은 코드가 있다고 해봅시다.
class Car {
var speed = 0
func setSpeed(speed: Int) {
speed = speed
}
}
여기서 setSpeed(speed: Int) 메소드 안의 speed = speed 부분은 어떤 속도에 대한 것인지 알 수 없습니다. 매개변수인 속도인지, 클래스 프로퍼티인 속도인지 혼동될 수 있습니다.
하지만 이때 self를 사용하면 명확해집니다.
func setSpeed(speed: Int) {
self.speed = speed
}
위 코드에서 self.speed 는 클래스의 프로퍼티인 속도를 의미하고, 우측의 'speed'는 메소드 파라미터인 속도 값을 가리켜 명확성과 가독성이 향상됩니다.
마무리
Swift의 self는 '자기 자신'을 가리키는 키워드로, 코드의 명확성과 가독성을 위해 사용됩니다. 처음에는 이해하기 어려울 수 있지만, 적절하게 활용하면 매우 유용한 도구가 될 것입니다.
감사합니다.
틀린 부분이 있거나 더 좋은 내용 훈수 환영합니다!
공감과 댓글 부탁드립니다.
'Apple > Swift' 카테고리의 다른 글
[Swift] 예외처리 - 만약 에러가 발생한다면?? (2) | 2024.01.03 |
---|---|
[Swift] Dictionary 완벽 이해하기 (2) | 2024.01.02 |
[Swift] 객체 인스턴스(object instance) (0) | 2023.10.20 |
[Swift] 저장 프로퍼티와 지연 저장 프로퍼티(Stored Properties, Lazy Stored Properties) (2) | 2023.10.19 |
[Swift] 후행 클로저(trailing closure) (0) | 2023.10.18 |