Class랑 언제 친해지지

sonny·2024년 9월 20일
1

TIL

목록 보기
2/48

오늘 한 과제의 내용은 이렇다.

해당 과제를 보고 나는 1번부터 차례대로 적어내려갔다.

var age: Int = 25
var interestRate: Float = 3.45
var balance: Double = 10234.56
var isLoggedIn: Bool = false
var userName: String = "Alice"
var firstLetter: Character = "A"
var anyValue: Any = "Swift"

이렇게 1번을 완료하고나서 다른 팀원이 한 것을 봤는데 class를 이용해 이렇게 정리를 했더라.

final class UserInfo {
    var age: Int
    var interestRate: Float
    var balance: Double
    var isLoggedIn: Bool
    var userName: String
    var firstLetter: Character
    var anyValue: Any
    
    init(age: Int, interestRate: Float, balance: Double, 
    isLoggedIn: Bool, userName: String, firstLetter: Character, 
    anyValue: Any) {
        self.age = age
        self.interestRate = interestRate
        self.balance = balance
        self.isLoggedIn = isLoggedIn
        self.userName = userName
        self.firstLetter = firstLetter
        self.anyValue = anyValue
    }
}

final class로 정의된 UserInfo 클래스를 이용한 것이 답과 달라서 신박했다. 단순한 변수들을 선언하고 각각의 변수에 초기값을 할당한 것인 내것과는 달랐다. init 메서드를 사용해서 각 객체를 생성할 때 초기값도 설정을 해줬고 final 키워드를 사용했기 때문에 상속도 불가능하게 했다.

내가 한 방식은 각각의 변수를 하나의 값으로만 저장할 수 있었고 사용자가 여러명일 때 변수를 재사용할 수도 없다. 이러한 방식은 특정한 사용자 한 명의 정보만 관리하기에 적합한 것이고 확장성이 떨어진다는 것..
클래스처럼 객체를 생성할 수 없기에 여러 사용자 정보를 효율적으로 관리하기 어렵다는 것이다.

다른팀원이 한 UserInfo 클래스의 경우 여러 인스턴스도 생성할 수 있어서 확장성도 좋고, 사용자가 많을 때도 효율적으로 데이터관리까지 할 수 있다.

결론적으로 여러명의 사용자 정보를 관리하려면 클래스를 사용하는 것이 좋기에 과제를 할 때도 클래스를 이용한 것이 추후 프로젝트를 진행 할 때에도 많은 도움이 될 수 있는 방법인 셈이다.

이번 경험을 통해 효율적인 데이터 관리가 얼마나 중요한지, 그리고 클래스와 같은 객체 지향 프로그래밍의 도구들이 어떻게 그 문제를 해결하는지 더 깊이 이해하게 된 듯 하다. 앞으로 프로그래밍할 때 여러 사용자의 데이터를 다룰 때는 클래스를 적극적으로 활용해야겠다는 생각이 들었다.

profile
iOS 좋아. swift 좋아.

3개의 댓글

comment-user-thumbnail
2024년 9월 21일

다음 문제부터 같이 클래스로 레고레고
구조체랑 차이점도 공부 레고레고

1개의 답글