제가 작성한 tistory글의 마이그레이션입니다.
이번 포스팅에서는 현재 음악 플레이어의 간단한 4개 이슈에 대해 처리할 예정이다.
이 중에는 리팩토링을 진행하며 생긴 Side Effect도 포함되어 있다.
우선 Git issue로 등록 (모두 완료되어서 close한 상태이다)
이 문제는 Side Effect로 발생한 문제이다. 그래서 문제를 발생 시킨 Git commit을 이진탐색으로 찾았다.
// AS-IS
player?.takeIf { audioList.lastIndex -1 > currentAudioIndex }
// TO-BE
player?.takeIf { audioList.lastIndex > currentAudioIndex }
다른 음악 플레이어들을 테스트해 보면 음악을 실행하고 다시 해당 음악을 실행하면 음악이 유지된다.
(다시 처음부터 실행되지 않는다.)
그러나, 현재 개발 중인 음악 플레이어는 다시 실행되고 있다.
AS-IS | TO-BE |
---|---|
![]() | ![]() |
다른 음악 플레이어들은 'Prev' 버튼은 2가지 기능이 있다.
1. 이전 음악 실행
2. 현재 음악 재실행 (음악 도입부가 지났을 때)
그러나, 현재 개발 중인 음악 플레이어는 a기능뿐이라 b기능을 추가
AS-IS | TO-BE |
---|---|
![]() | ![]() |
다른 음악 플레이어의 Notification View를 선택하면 현재 플레이 중인 음악 View로 이동한다. 해당 기능을 추가
AS-IS | TO-BE |
---|---|
![]() | ![]() |
새로운 기능 개발보다 역시 유지보수가 더 많은 리소스가 들어가는 것 같다. 그렇기 때문에 처음 설계, 개발이 중요하다는 것을 또 느꼈다.