아키텍처
Singleton의 범위
여행 앱에서 전역 SessionManager.shared가 인증, 캐시, 분석, 실험 값을 모두 들고 있어 테스트가 어렵습니다. Singleton으로 남겨도 되는 것과 생성자 주입으로 바꿔야 하는 것을 어떻게 가르겠습니까?
면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
여행 앱에서 전역 SessionManager.shared가 인증, 캐시, 분석, 실험 값을 모두 들고 있어 테스트가 어렵습니다. Singleton으로 남겨도 되는 것과 생성자 주입으로 바꿔야 하는 것을 어떻게 가르겠습니까?
프로세스에 정말 하나여야 하고 테스트에서 바꿀 일이 없는 로거나 앱 번들 정보만 singleton으로 남기고, 로그인 상태나 실험 값처럼 테스트마다 다른 값이 필요한 것은 protocol로 정의해 init으로 주입한다.
아키텍처객관식기초
AnalyticsManager.shared처럼 코드 곳곳에서 직접 참조하는 싱글톤이 있는 코드베이스에서, 이를 쓰는 뷰모델을 단위 테스트하려 합니다. 올바른…
#singleton #dependency-injection #testability
아키텍처주관식입문
iOS 앱에서 싱글톤은 언제 쓰고 무엇이 문제인가요?
#singleton #global-state
아키텍처주관식기초
의존성 주입(Dependency Injection)과 의존성 역전 원칙(Dependency Inversion Principle)은 이름이 비슷한데 무엇이…
#dependency-injection #testability
테스트주관식기초
화면이 API 응답에 강하게 의존하는데, 서버 요청 없이 이 화면(뷰모델 포함)의 동작을 테스트하려면 코드를 어떻게 바꾸겠습니까?
#dependency-injection #testability