Post

Day 09 - TIL

클래스 및 구조체 기초

Day 09 - TIL

📘 Day 09 - Today I Learned

🏷️ 클래스 (Class)

클래스를 사용하면 현실 세계의 개념을 코드로 표현할 수 있으며,
속성(프로퍼티)기능(메서드) 을 정의하는 사용자 정의 참조 타입입니다.

🔍 클래스가 필요한 이유

  • 사용자 정보 관리
    → 이름, 나이, 이메일 등을 묶어서 다룰 수 있음
  • 게임 캐릭터 설계
    → 체력, 공격력, 방어력 등 속성과 기능 포함 가능
  • 데이터베이스 연결 관리
    → 연결을 재사용하거나 관리하는 객체로 표현

📚 클래스 기본 문법

1
2
3
4
5
6
7
8
9
10
11
class 클래스이름 {
    var 속성이름: 타입

    init(초기화할값) {
        self.속성이름 = 초기화할값
    }

    func 메서드이름() {
        // 실행할 코드
    }
}

✅ 예시

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Person {
    var name: String 
    var age: Int 

    init(name: String, age: Int) { 
        self.name = name
        self.age = age 
    } 

    func introduce() {
        print("안녕하세요, 저는 \(name)이고 \(age)살이에요.") 
    }
}

let person1 = Person(name: "태윤", age: 26)
person1.introduce() // 안녕하세요, 저는 태윤이고 26살이에요.

💡 클래스의 특성: 참조 타입

  • 클래스는 참조 타입(reference type) 입니다.
  • 객체를 변수에 할당하거나 함수에 전달하면 값이 복사되지 않고 참조가 전달됩니다.

🏷️ 구조체 (Struct)

구조체는 간단한 데이터 집합을 표현할 때 적합하며,
값이 복사되어 독립적으로 사용되는 값 타입(value type)입니다.

🔍 구조체가 필요한 이유

  • 좌표 데이터 관리
    → 2D 좌표 (x, y) 등을 저장할 때
  • 네트워크 응답 데이터 저장
    → API 응답 값을 임시로 저장할 때
  • 설정값 저장
    → 사용자 설정값을 안전하게 보존할 때

📚 구조체 기본 문법

1
2
3
4
5
6
7
struct 구조체이름 {
    var 속성: 타입

    func 메서드이름() {
        // 실행할 코드
    }
}

✅ 예시

1
2
3
4
5
6
7
8
9
10
11
struct Rectangle {
    var width: Double
    var height: Double

    func area() -> Double {
        return width * height
    }
}

let rect = Rectangle(width: 5.0, height: 10.0)
print("면적은 \(rect.area())입니다.") // 면적은 50.0입니다.

💡 구조체의 특성: 값 타입

  • 구조체는 값 타입(value type) 입니다.
  • 변수에 할당되거나 함수에 전달될 때 값이 복사되어 독립적으로 동작합니다.

🧩 구조체는 멤버와이즈 이니셜라이저를 자동으로 제공합니다.


📚 오늘은 클래스와 구조체의 문법과 차이를 이해하고,
각각의 특성과 사용하는 이유에 대해 학습하였습니다.

This post is licensed under CC BY 4.0 by the author.