실제 기술 문제와 해결 과정, 배운 점을 구체적으로 서술
가장 도전적이었던 문제는 비동기 처리에서 예기치 못한 타이밍 이슈였습니다. Coroutine으로 네트워크 요청과 UI 업데이트를 처리하는 코드에서, 특정 기기에서만 크래시가 재현되는 버그가 생겼습니다. 처음엔 원인을 못 찾아서 코드 전체를 의심했는데, 로그를 자세히 읽다 보니 메인 스레드에서 실행되어야 할 UI 업데이트가 IO 디스패처에서 호출되는 부분이 원인이었습니다. 해결 방법으로는 withContext(Dispatchers.Main)을 명시적으로 추가해 컨텍스트 전환을 강제했고, 이후 유사 패턴 전체를 코드 리뷰로 찾아 수정했습니다. 기술 스택으로는 Kotlin Coroutine, ViewModel, StateFlow를 주로 썼고, 이 사건 이후로 디스패처 선택을 명시적으로 적는 습관이 생겼습니다. 팀 협업에서는 버그를 혼자 잡으려다 시간을 허비했는데, 팀원에게 공유했더니 30분 만에 방향을 찾았습니다.
막혔을 때 더 일찍 공유하는 것이 결국 팀 전체 속도를 높인다는 걸 배웠습니다.