Daily iOS
아키텍처

Singleton의 범위

여행 앱에서 전역 SessionManager.shared가 인증, 캐시, 분석, 실험 값을 모두 들고 있어 테스트가 어렵습니다. Singleton으로 남겨도 되는 것과 생성자 주입으로 바꿔야 하는 것을 어떻게 가르겠습니까?

면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
짧은 답 보기

프로세스에 정말 하나여야 하고 테스트에서 바꿀 일이 없는 로거나 앱 번들 정보만 singleton으로 남기고, 로그인 상태나 실험 값처럼 테스트마다 다른 값이 필요한 것은 protocol로 정의해 init으로 주입한다.

받은 질문 공유