--- - Name: Refactoring - About: 리펙토링 이슈 - Title: Whistle - View에서 비지니스 로직 분리 및 Combine 프레임워크 적용 - Labels: '♻️ Refactoring' - Assignees: 'aldalddl' --- ## 기존 동작 - `WhistleView`에 화면 로직과 비즈니스 로직이 모두 들어있음 - `volume`프로퍼티가 변경될 때 직접적인 바인딩과 수동 업데이트로 동기화 관리 </br> ## 개선 동작 - `WhistleView`에서 비즈니스 로직 분리 - `volume`프로퍼티의 상태를 구독하고 변경이 있을 때 `AVAudioPlayer`의 볼륨이 자동으로 업데이트 되도록 반응형으로 개선 </br> ## 개선해야 할 사항 - `WhistleManager` 클래스를 만들어 뷰와 비즈니스 로직을 분리 - `volume` 값 변경을 Combine의 `sink`를 사용하여 반응형으로 처리 - `AnyCancellable`로 구독을 관리하고 `onDisappear`에서 구독을 해제하여 메모리 누수 방지
기존 동작
WhistleView에 화면 로직과 비즈니스 로직이 모두 들어있음volume프로퍼티가 변경될 때 직접적인 바인딩과 수동 업데이트로 동기화 관리개선 동작
WhistleView에서 비즈니스 로직 분리volume프로퍼티의 상태를 구독하고 변경이 있을 때AVAudioPlayer의 볼륨이 자동으로 업데이트 되도록 반응형으로 개선개선해야 할 사항
WhistleManager클래스를 만들어 뷰와 비즈니스 로직을 분리volume값 변경을 Combine의sink를 사용하여 반응형으로 처리AnyCancellable로 구독을 관리하고onDisappear에서 구독을 해제하여 메모리 누수 방지