[TIL] 싱글톤 패턴

7과11사이·2023년 9월 2일
0

스파르타코딩클럽

목록 보기
46/90
post-thumbnail

오늘의 학습

드디어 블로그를 작성할 시간이 났다.
이후 작성할 네트워크 HTTP 관련해서 발표 준비를 하고 이후에도 궁금했던 내용들을 배우고 채우다보니 체력이 바닥 났다.

그럼에도! 조금이라도 정리를 하면 좋을 것 같아 정리한다.
싱글톤 패턴에 대해...🫠

싱글톤 패턴 (Singleton Pattern)

자세한 개념은 몰랐다.
그저 사용하면 전역에서 특정 클래스의 값에 접근할 수 있도록 만들어 준다는 점만 이해하고 있었을 뿐이다.

지난 투두 어플을 만들면서 사용한 singleton 패턴의 모습에서 들었던 생각들을 정리해본다.

나의 의도

  • 투두 어플에서는 CRUD를 포함해 한가지 행동이 더 필요하다 생각했다.
    내가 완료한 투두를 구분할 수 있는 행동 말이다!
  • 이 과정에서 더미 데이터 및 생성될 많은 데이터를 뷰 컨트롤러에 쌓아두지 말고 '투두만' 담당하는 매니저를 생성해보고 싶었다.

마주한 난관

1. 데이터 접근 권한 제한

class TodoManager { 
	var list: [Todo] = [/*더미 데이터들*/]
}  

목적이 투두를 구분할 수 있어야 했기에 변수로 생성을 초기에 해두었었다.
그러면서 TodoManager 라는 객체에 접근을 하게 되면 어디에서든 데이터에 직접적으로 접근이 가능해졌었다.

TodoManager가 막아야할 직접적인 데이터 접근 제한을 스스로 하고 있었으니 당황스러웠다.

해소 방법

list가 다른 객체에서는 접근하지 못하도록 static을 걸어두었다.
데이터가 필요한 경우, 객체에 요청을 할 수 있도록 static let shared = TodoManager()을 활용했는데, 이게 바로 싱글톤이었었다.

0개의 댓글