Open QuaRang1225 opened 1 week ago
현재 최상위뷰인 ContentView에서 유저정보를 얻게 되면 하위인 모든 View들이 그 user 정보를 가지고 있어야했기에 .environmentObject()로 데이터를 공유했음
유저정보를 뷰끼리 공유하는 이유 만약 네트워크 요청이 실패했을 때 중 인증정보가 만료되면 로그인을 유도해야하기 때문에, 강제로 로그아웃 시킴 현재 iOS에서는 로그아웃 시 가지고 있던 유저정보와 토큰을 삭제하고, 최상위 뷰는 유저정보의 유무에 따라 로그인뷰를 표시할 지 메인뷰를 표시할 지 결정함 그래서 어떤 뷰를 띄워놔도 토큰만료 시 최상위뷰의 유저정보를 핸들링하기 위해 전 화면이 모두 같은 퍼블리셔를 공유했음 문제 뷰들끼리 의존성이 존재함(테스트 코드를 작성하거나,View끼리 데이터 연동을 하지 않을 시 런타임에러가 발생) user정보를 사용하지 않는 뷰들도 하위뷰에게 넘겨주기 위해 데이터를 공유해야함 코드수가 복잡해짐
유저정보를 뷰끼리 공유하는 이유
문제
현재 최상위뷰인 ContentView에서 유저정보를 얻게 되면 하위인 모든 View들이 그 user 정보를 가지고 있어야했기에 .environmentObject()로 데이터를 공유했음
132의 잇슈 내용 중 user데이터 부분만 해결