업데이트:

카테고리:

/

태그: , , ,

clean architecture를 왜 적용하는가?

모든 기능을 분리하지 않고 한 곳에 모아 작성했다면, 어떤 기능을 수정하거나 추가할 때 모든 부분을 건들여서 진행해야되므로 시간도 많이 걸리고 수정하였을 때 side effect가 너무 크다.

비즈니스 로직은 바꾸지 않으면서, 언제든 DB와 프레임워크에 구애 받지 않고 교체할 수 있는 아키텍처입니다.

view ↔ viewModel ↔ useCase ↔ repository ↔ service or local DB

view에서는 오직 ui관련 로직만 작성한다.

view에서 데이터를 보여주기위해 viewModel만 알고, 비지니스 로직이나 서비스 요청 부분을 알필요가 없다.

viewModel에서는 view에서 보여줄 데이터를 저장하고 useCase에서 받아온 데이터를 liveData나 stateFlow에 저장한다

useCase는 repository를 호출하여 데이터를 요청한다.

한 useCase는 한가지 기능만 담당해야한다.

비지니스 로직이 여기에 들어간다.

repository는 Service나 local DB에 접근하여 데이터를 가져온다.

이런 구조는 테스트 하기가 쉬운데

실제 앱의 핵심기능은 useCase에 몰려있으므로 테스트를 원하는 로직만 실행시켜 확인하면 된다.

ui관련된 로직이 전혀 없어 테스트하는데 emulater를 작동시킬 필요가 없어 테스트 시간이 줄어든다.