반응형
안녕하세요, **'생각하는 개발자'**입니다.
우리는 지난 시간까지 iOS라는 새로운 세계의 규칙과 환경을 살펴보았습니다. 이제 본격적으로 앱의 영혼을 만드는 언어, **스위프트(Swift)**의 첫 페이지를 넘길 차례입니다.
모든 프로그래밍의 시작은 데이터를 어디에 어떻게 담느냐에서 시작됩니다. 오늘은 안드로이드 개발자에게는 너무나 익숙하지만, Swift만의 깔끔함이 돋보이는 변수와 상수에 대해 알아보겠습니다.

2.1 데이터를 담는 두 가지 그릇 : let과 var 🏺
비유: 박제된 보물상자 vs 열려있는 보관함
프로그래밍에서 데이터를 담는 그릇은 크게 두 종류로 나뉩니다. 한 번 넣으면 영원히 변하지 않는 것과, 필요할 때마다 갈아 끼울 수 있는 것이죠.
- let (상수): 한 번 값을 넣으면 '박제'됩니다. 절대 바꿀 수 없습니다. 코틀린의 val과 정확히 같은 역할을 합니다.
- var (변수): 언제든 내용물을 바꿀 수 있는 '열린 보관함'입니다. 코틀린의 var와 이름까지 똑같네요!
import UIKit
// 1. let: 한 번 정하면 끝! (Immutable)
let name = "생각하는 개발자"
// name = "다른 이름" // 🚨 에러 발생! 상수는 변경할 수 없어요.
// 2. var: 언제든 변신 가능! (Mutable)
var age = 20
age = 21 // ✅ 가능! 한 살 더 먹는 건 변수니까요.
print("이름: \(name), 나이: \(age)")
// 1. let: 한 번 정하면 끝! (Immutable)
let name = "생각하는 개발자"
// name = "다른 이름" // 🚨 에러 발생! 상수는 변경할 수 없어요.
// 2. var: 언제든 변신 가능! (Mutable)
var age = 20
age = 21 // ✅ 가능! 한 살 더 먹는 건 변수니까요.
print("이름: \(name), 나이: \(age)")
Tip: Swift는 **'안전'**을 최우선으로 합니다. 그래서 값이 변할 일이 없다면 무조건 let으로 선언하는 것을 권장하며, Xcode도 이를 추천해 줍니다.
2.2 타입 추론 : 똑똑한 Swift 컴파일러 📜
안드로이드에서 코틀린을 쓸 때 타입을 일일이 적지 않아도 알아서 판단해 주던 기능을 기억하시나요? Swift도 마찬가지입니다. 이를 **타입 추론(Type Inference)**이라고 합니다.
let message = "안녕하세요" // 컴파일러가 "아, 이건 String이구나!"라고 알아챕니다.
let version = 1.0 // "이건 소수점이니 Double이겠네!"라고 생각하죠.
// 물론 직접 명시해 줄 수도 있습니다. (Type Annotation)
let score: Int = 100
let version = 1.0 // "이건 소수점이니 Double이겠네!"라고 생각하죠.
// 물론 직접 명시해 줄 수도 있습니다. (Type Annotation)
let score: Int = 100
📝 핵심 포인트 요약
- let은 변하지 않는 상수를 선언할 때 사용합니다. (안정성 업!)
- var는 값이 변해야 하는 변수를 선언할 때 사용합니다.
- Swift는 매우 똑똑해서 대입되는 값을 보고 타입을 스스로 결정합니다.
관련 내부 링크 섹션
반응형
'iOS (Swift)' 카테고리의 다른 글
| [오늘의 코드 조각] [iOS 2-3] 제어문과 함수 : 조건문, 반복문, 그리고 Swift다운 함수 작성법 (0) | 2026.02.11 |
|---|---|
| [오늘의 코드 조각] [iOS 2-2] Optional : Swift가 안전한 이유 (nil을 다루는 법) (0) | 2026.02.10 |
| [오늘의 코드 조각] [iOS 1-3] Hello Swift World! : 첫 프로젝트 생성과 시뮬레이터 구동 (0) | 2026.02.09 |
| [오늘의 코드 조각] [iOS 1-2] 안드로이드 vs iOS : 개발자가 알아야 할 두 플랫폼의 철학 차이 (1) | 2026.02.04 |
| [오늘의 코드 조각] [iOS 1-1] 오래된 맥북의 재발견: Xcode 12.4 설치와 성능 최적화 (0) | 2026.02.04 |