상세 컨텐츠

본문 제목

[iOS/Swift] Singleton 패턴 사용의 이유와 사용 방법

Swift

by Mr.Garlic 2022. 2. 8. 22:59

본문

Singleton(싱글톤) 패턴은 무엇이고 언제 사용할까

안녕하세요! 오늘은 싱글톤 패턴에 대해서 들고 왔습니다. 

앱 개발 초기부터 많이 사용하게 되는 패턴이라 익혀두면 아주 좋은데요! 

사용 방법도 정말 간단합니다. 먼저 싱글톤 패턴이 무엇인지 부터 보겠습니다. 

 

Singleton 패턴 이란?

예를 들어, 우리 앱을 사용하는 유저의 정보를 핸들링 한다고 해 봅시다. 아래와 같은 클래스를 만들어서 사용해 볼 건데요!

class User {

    var name: String?
    var age: Int?
    var gender: Int?
    
}

우리 앱을 다운받은 유저가 앱에 들어와서 이름, 나이를 입력받았습니다. 그리고 몇 번의 화면 전환 후에 성별을 따로 입력받으려고 합니다. 이럴 때, 화면 전환때마다 같은 User를 계속 넘겨주는 것은 굉장히 불필요하고 귀찮은 일일거예요.

이럴 때를 대비해서 글로벌하게 쓸 수 있는 단 하나의 User를 만들어버리는 겁니다. A 화면에서도 쓰고~ B 화면에서도 쓰고~ 계속 쓸 수 있게요. 

 

그럼 위의 보통의 클래스를 싱글톤으로 바꾸어 보겠습니다. 

두가지 변동사항이 있죠?

첫번째, static 타입의 상수로 인스턴스를 만들어 줍니다. 이때 보통 상수명은 shared를 많이 씁니다. 

두번째, 접근제어자 private를 활용해 초기화 해줍니다. 이렇게 해 두면 해당 클래스 내에서만 초기화가 가능하니 다른 어떤 곳에서도 실수로 새로운 인스턴스를 만드는 일이 없을 거예요. 

 

이렇게 해주면 싱글톤 패턴은 끝 입니다! 여러 뷰에서 접근하면서 활용해보시기 바랍니다 :) 

class User {
    static let shared = User()
    
    var name: String?
    var age: Int?
    var gender: Int?

    private init() { }
}

 

이런 용도의 내장 클래스가 원래 있긴 하죠? 바로 UserDefaults.standard죠! 앱 처음 만들때부터 지금까지 참 잘 사용하고 있는 녀석인데요. UserDefaults를 사용해 저장해 준 키, 밸류는 앱의 생명주기와 관계없이 앱을 삭제하지 않는 한 사라지지 않기 때문에 편리하게 쓸 수 있습니다. 이 UserDefaults도 싱글톤 패턴의 대표적인 예라고 볼 수 있겠습니다. 

 


다음에도 꿀팁을 들고 찾아오도록 하겠습니다! 도움이 되셨다면 하트와 구독을 부탁드립니다! 

 

관련글 더보기