Flutter의 폴더 내에서 코드를 구성할 때 lib잘 구조화되고 유지 관리 가능한 코드베이스를 보장하기 위해 따를 수 있는 몇 가지 모범 사례와 원칙을 CHAT-GPT에게 물어보았다.
관심사 분리(Separation of Concerns)
목적과 책임에 따라 코드를 체계적으로 유지하자. 코드를 논리 섹션으로 분할하면 가독성과 유지 관리가 향상된다!
모듈성 및 재사용성(Modularity and Reusability)
모듈식 및 재사용 가능한 구성 요소를 만드는 것을 목표로 합니다. 이를 통해 애플리케이션의 여러 부분에서 코드를 쉽게 재사용하여 중복을 줄이고 일관성을 높일 수 있습니다.
SRP(Single Responsibility Principle)
각 파일 또는 클래스에는 단일 책임이 있어야 합니다. 이 원칙은 코드를 집중적으로 유지하고 이해, 테스트 및 유지 관리를 더 쉽게 만드는 데 도움이 됩니다.
계층화된 아키텍처(Layered Architecture)
MVC(Model-View-Controller) 또는 MVVM(Model-View-ViewModel)과 같은 계층화된 아키텍처 패턴을 채택하는 것을 고려하십시오. 이를 통해 관심사를 분리하고 비즈니스 논리, UI 및 데이터를 명확하게 분리할 수 있습니다.
이러한 방안은 엄격한 규칙이 아니라 코드 구성 및 유지 관리를 개선하기 위한 권장 사항이다.
깨끗한 코드와 모듈성의 원칙을 염두에 두고 프로젝트의 특정 요구 사항에 맞게 구조를 자유롭게 반영하는것이 좋다.
lib 폴더 예시
src : 이 폴더에는 애플리케이션의 핵심 소스 코드가 포함되어 있습니다.
models : 이 폴더에는 애플리케이션에서 사용되는 데이터 모델이 포함됩니다.
screens : 이 폴더에는 애플리케이션의 개별 화면 또는 페이지가 포함되어 있습니다.
widgets : 이 폴더에는 여러 화면에서 사용되는 재사용 가능한 위젯이 포함되어 있습니다.
services : 이 폴더에는 API 호출, 데이터 저장소 또는 기타 서비스를 처리하기 위한 클래스가 포함되어 있습니다.
utils : 이 폴더에는 응용 프로그램 전체에서 사용되는 유틸리티 기능 또는 도우미 클래스가 포함되어 있습니다.
route.dart : 이 파일은 애플리케이션의 경로와 탐색을 정의합니다.
constants.dart : 이 파일에는 API 엔드포인트 또는 테마 색상과 같이 애플리케이션 전체에서 사용되는 상수 값이 포함되어 있습니다.