[kotlin] MVP 아키텍처

MVP 아키텍처는 안드로이드 앱을 설계하는 데 사용되는 모델-뷰-프리젠터 아키텍처로, 앱의 구조와 유지보수성을 향상시키는 데 도움이 됩니다. MVP 아키텍처는 모델, 뷰, 프리젠터 세 가지 주요 구성 요소로 구성되어 있습니다.

모델(Model)

모델은 데이터와 비즈니스 로직을 담당합니다. 데이터베이스, 네트워크 요청, 파일 시스템 액세스 등과 같은 작업을 처리하는 영역입니다.

뷰(View)

뷰는 사용자에게 UI 요소를 표시하고 사용자 입력을 처리합니다. 액티비티, 프래그먼트, 레이아웃 등과 같은 UI 컴포넌트가 해당됩니다.

프리젠터(Presenter)

프리젠터는 모델과 뷰 사이의 중간자 역할을 합니다. 비즈니스 로직을 처리하고 뷰를 업데이트하는 책임이 있습니다. 뷰와 모델 간의 의존성을 분리하여 유닛 테스트하기 쉽게 만들어줍니다.

MVP 아키텍처를 구현하려면 인터페이스를 사용하여 모델, 뷰, 프리젠터 간의 상호작용을 정의하고, 각 구성 요소를 인터페이스를 통해 구현해야 합니다.

예시로 코틀린을 사용하여 MVP 아키텍처의 간단한 구현 코드를 살펴보겠습니다.

// 모델 인터페이스
interface Model {
    fun fetchData(): String
}

// 뷰 인터페이스
interface View {
    fun showData(data: String)
}

// 프리젠터
class Presenter(private val model: Model, private val view: View) {
    fun getData() {
        val data = model.fetchData()
        view.showData(data)
    }
}

이 예시에서는 모델, 뷰, 프리젠터 각각의 인터페이스와 프리젠터의 구현을 보여줍니다.

MVP 아키텍처는 안드로이드 앱을 구축하는 데 매우 유용하며, 코드의 가독성과 유지보수성을 향상시킵니다.

참고 자료