1. Controller - MVC 패턴에서 사용

1-1 역할

1-2 동작 방식

※문제점

Controller가 Model과 View를 모두 관리 → 코드가 복잡해짐( Fat Controller 문제)

class LoginController {
    fun login(username: String, password: String) {
        val user = UserRepository.findUser(username)
        if (user.password == password) {
            LoginView.showSuccess()
        } else {
            LoginView.showError()
        }
    }
}

2. Presenter - MVP 패턴에서 사용