이전 글에서는 StateFlow와 SharedFlow를 활용한 실전 사용 패턴을 살펴봤습니다.그런데 Flow나 코루틴을 사용한다고 해서 동시성 문제가 자동으로 해결되는 것은 아닙니다.Kotlin 공식 문서에서는 여러 코루틴이 하나의 상태를 함께 수정할 때 발생하는 문제를 Shared mutable state and concurrency라는 섹션으로 따로 다룹니다.이 글에서는 그 내용을 기반으로, 왜 문제가 생기는지와 Kotlin이 이를 어떻게 해결하도록 안내하는지를 정리합니다.1. 공유 상태 문제는 왜 발생할까?다음과 같은 코드를 생각해봅시다.var counter = 0suspend fun increment() { counter++}이 함수가 여러 코루틴에서 동시에 호출되면 counter 값은 예상..