-
Notifications
You must be signed in to change notification settings - Fork 0
[ADR] 아키텍처 의사 결정 기록: 웹 소켓을 뷰 컨트롤러에서 연결하도록 변경
김영균 edited this page Dec 12, 2023
·
1 revision
작성일 | 작성자 |
---|---|
2023-11-23 | 김영균 |
상태
- 수락됨(Accepted)
배경
- 웹 소켓 연결을 위해 뷰 -> 뷰모델 -> 유즈케이스 -> 레포지토리까지의 흐름이 필요하다.
- 웹 소켓으로 받은 데이터 전달을 레포지토리 -> 유즈 케이스 -> 뷰 모델 -> 뷰 흐름으로 전달해야한다. URLSessionWebSocketTask는 무한 루프를 돌면서 받은 값을 전달해주는데 생성된 값을 레포지토리에 delegate 패턴으로 웹 소켓에서 뷰까지 전달하는 흐름이 복잡하다.
결정
- 웹 소켓을 뷰 컨트롤러에서 연결합니다.
이유
- 웹 소켓의 생명주기를 뷰컨트롤러에 맞추면 웹 소켓 연결을 관리하기 쉽다.
- 레포지토리에서 값 전달을 위해 델리게이트로 넘겨줄 필요가 없다.
결과 및 영향
- 웹 소켓을 연결하여 데이터를 받아오는 흐름을 이해하기가 쉬워져 유지보수에 편할 것으로 예상됩니다.
결론
- 웹 소켓을 뷰 컨트롤러에서 연결합니다.
- [ADR] 아키텍처 의사 결정 기록: iOS 애플리케이션 아키텍처 채택하기
- [ADR] 아키텍처 의사 결정 기록: SwiftLint 채택
- [ADR] 아키텍처 의사 결정 기록: UI 영역에서 Combine 사용 결정
- [ADR] 아키텍처 의사 결정 기록: Presentation영역의 ViewModel에서 Input Output 패턴 도입 결정
- [ADR] 아키텍처 의사 결정 기록: 코디네이터 패턴 도입 결정
- [ADR] 아키텍처 의사 결정 기록: 로컬 스토리지로 코어 데이터 사용 결정
- [ADR] 아키텍처 의사 결정 기록: Custom Network Foundation 라이브러리 구현 및 모듈화 결정
- [ADR] 아키텍처 의사 결정 기록: 이미지캐셔 라이브러리 구현 및 모듈화 결정