Authenticator

    의존성 역전을 통한 독립적인 네트워크 모듈 설계하기

    의존성 역전을 통한 독립적인 네트워크 모듈 설계하기

    최근 프로젝트를 진행하며 독립적인 네트워크 모듈을 직접 설계하며, 아래와 같은 목표를 세웠습니다.네트워크 관련 서드파티 라이브러리는 네트워크 모듈 내에서만 알도록 할 것모듈 외부에선 NetworkService만 알도록 할 것토큰 리프레쉬 로직과 같이 인증 관련 세부 구현은 숨길 것이를 위해 NetworkService 내부에서 Alamofire의 AuthenticationInterceptor 를 활용하여 인증을 처리하고 있었습니다.이렇게 설계하면 사용하는 쪽에선 인증 로직을 신경쓰지 않아도 되게 됩니다.401 인증 에러 응답을 받으면 Alamofire가 Authenticator.refresh() 를 호출하고, 토큰을 갱신한 뒤 자동으로 요청을 재시도하니까요. 그런데 한가지 문제가 발생했습니다. 의존성 문제..