UI와 로직 분리 ViewModel