[Flutter] Clean Architecture 도입 회고

Jsleemaster·2025년 2월 5일

Flutter

목록 보기
3/3

클린 아키텍쳐에 대한 정의나 설명은 다른 블로그에서 잘 정리되어있기 때문에 생략!

혹시 궁금하다면 아래 참고문서에서 확인하면 좋을 것 같다

일단 도입하게된 계기는 기존 구조에서 요구사항이 점점 많아지고 유연한 변경이 어려워지게 되었고 기존 MVVM에서 클린 아키텍쳐를 적용하게 되었다

 logic/
 	model/
    services/
 screen/
 	provider/
 	pages/
 util/
 main.dart

위와 같은 구조로 단순하게 되어있었던 구조에서 Clean Architecture를 적용해봤다.

결론

갑자기 결론을 얘기하면 이상하게 보일 수 있는데
프로젝트가 작다면 굳이 추천하지 않는다.
근데 이런 구조로 만들면 프로젝트의 흐름을 읽기 쉬워지긴 한다고 생각한다.

구조

위와 같은 구조로 프로젝트를 설계를 하였고
implment에선 apiService를 의존할 수 있도록 하고 usecase에선 Repository를 의존할 수 있도록 DI를 만들었다.

 core/
 	di/
    	di_implment.dart
		di_usecase.dart
 features
 	home/
    	data/
        	models
        	repository_implments
        domain/
        	entity
        	usecase
            repository
        presentaion/
        	provider
        	screens
 main.dart

회고

  • useCase의 활용을 제대로 못한 것 같았다 비즈니스 로직이 생각보다 더 복잡했을 경우에 어떤 식으로 해야할지 경험이 좀 부족했다

  • implments와 repository를 읽을때 구조는 알고 있어서 어디서 보는진 알겠지만 폴더가 많아지니 움직여야 하는게 많아서 좀 힘들었다. implments와 repository를 하나의 파일에서 관리했으면 어땠을까 하는 생각도 들었다.

  • features로 분기를 했지만 스크린만 존재하는 경우가 있었고 이런 부분은 여기에 들어가는게 맞는가? 라는 의문이 계속 생겼다.

마무리

  • 분명 좋은 설계인 것은 맞는 것 같다 그러나
    개발자가 적거나 작은 프로젝트에선 굳이 도입해야하나? 싶다

참고 문서

profile
문제 기록 블로그

0개의 댓글