728x90
반응형

var VS private var
새로운 함수 정의 키워드가 나와서 궁금해서 찾아봤다. var과 private var차이가 무엇을까?
var vs private var는 Swift에서 변수의 공개 범위(접근 제어)를 정하는 개념이라고 한다. 이해하기 쉽게, 실제 코드와 비유로 아주 간단하게 아래와 같이 정리해 보았다.
| 키워드 | 설명 |
| var | 어디서든 접근 가능 (같은 파일, 같은 모듈 안이면) |
| private var | 해당 파일이나 구조체 안에서만 사용 가능 (외부에 숨김) |
비유를 들자면
var는 누구나 볼 수 있는 공개 문서
private var는 회사 내부 직원만 볼 수 있는 비밀 문서 같은 느낌이다.
예시를 들어보자.
struct Person {
var name = "지민"
private var age = 25
func printInfo() {
print("이름: \(name), 나이: \(age)")
}
}
let p = Person()
print(p.name) // ✅ 가능!
print(p.age) // ❌ 오류! age는 private라 외부 접근 불가
그럼 왜 private var를 쓰는 것일까?
- 외부에서 실수로 건드리는 걸 막기 위해
- View 바깥에서는 못 보고, 내부에서만 쓰게 하고 싶을 때
- 코드의 보안, 안정성, 구조화를 위해
SwiftUI로 예시를 들면
struct ContentView: View {
@State private var score = 0
}
여기서 private var score는 이 View 안에서만 쓰게 하려고 private을 붙인 것이다.
즉, 외부 View나 다른 구조체에서 score를 직접 바꾸는 걸 막는다.
요약하면
| 키워드 | 의미 | 예시 사용처 |
| var | 어디서든 접근 가능 | 상태값 공유할 때 |
| private var | 해당 구조체/클래스 내부에서만 사용 가능 | 내부 로직, 외부에 숨길 상태값 |
접근 제어자를 찾아보던 중 아래와 같이 추가로 확인되어서 먼저 정리는 아래와 같이 했다.
| 키워드 | 설명 |
| public | 외부 모듈에서도 사용 가능 |
| internal (기본값) | 같은 앱/모듈 안에서 사용 가능 |
| fileprivate | 같은 파일 안에서만 사용 가능 |
| private | 같은 구조체/클래스 안에서만 사용 가능 |
다음 포스팅에서는 앞서 Command Line Tools에서 프로그래밍한 내용을 SwiftUI로 가져오는 것을 공부해서 포스팅하도록 하겠다.
728x90
반응형
'개인공부' 카테고리의 다른 글
| [iOS/Xcode] 기초 연습문제를 통한 프로그래밍 이해하기 9편: SwiftUI 공부 시작 iPhone iOS - 퀴즈앱 SwiftUI로 옮기기 (0) | 2025.03.26 |
|---|---|
| [iOS/Xcode] 기초 연습문제를 통한 프로그래밍 이해하기 7편: SwiftUI 공부 시작 iPhone iOS (0) | 2025.03.26 |
| [iOS/Xcode] 기초 연습문제를 통한 프로그래밍 이해하기 6편 (1) | 2025.03.25 |
| [iOS/Xcode] 기초 연습문제를 통한 프로그래밍 이해하기 5편 (1) | 2025.03.25 |
| [iOS/Xcode] 기초 연습문제를 통한 프로그래밍 이해하기 4편 (2) | 2025.03.25 |