반응형

SW 개발 일반/아키텍처 3

(2) FSD의 핵심 계층과 역할

1. FSD란 무엇인가?Feature-Sliced Design(FSD)은 프로젝트를 기능 중심으로 구조화하여 유지보수성과 확장성을 높이는 방법론입니다. 기존 계층 기반 아키텍처(MVVM, 클린 아키텍처)와 달리 기능 단위로 모듈을 나누고, 관련된 코드(UI, 비즈니스 로직, 데이터 등)를 한 곳에 배치하는 방식을 따릅니다. 이를 통해 코드의 응집도를 높이고, 기능 단위의 독립성을 유지할 수 있습니다. FSD는 여러 계층으로 구성되며, 각 계층이 서로 긴밀히 연결됩니다. 각 계층이 어떻게 상호작용하는지를 이해하는 것이 중요합니다. 이제 FSD의 핵심 계층을 살펴보고, 하나의 기능을 중심으로 이 계층들이 어떻게 유기적으로 연결되는지 예제를 통해 설명하겠습니다. 2. FSD의 핵심 계층1) App Layer ..

(1) FSD란 무엇인가?

소프트웨어 개발에서 구조화의 중요성개발을 하다 보면 코드가 점점 커지고 복잡해지면서 유지보수가 어려워지는 순간이 옵니다. 작은 프로젝트라면 괜찮겠지만, 기능이 추가되고 팀원이 늘어나면서 코드의 일관성과 재사용성을 유지하는 것이 점점 힘들어집니다. 전통적으로 MVC, MVVM, Clean Architecture 같은 다양한 패턴을 사용해 왔습니다. 하지만 이러한 패턴에도 모호한 부분이 존재하고, 기능이 많아질수록 구조를 유지하는 것이 어려워집니다. 여기서 등장하는 것이 바로 Feature-Sliced Design (FSD)입니다.  FSD는 기능 중심으로 코드를 정리하는 방법론으로, 코드의 위치를 명확히 정의하고, 유지보수성과 확장성을 극대화하는 데 초점을 맞춥니다. 이제, 기존 아키텍처와 비교하며 FSD..

클린 아키텍처란 무엇인가?

클린 아키텍처(Clean Architecture)는 소프트웨어 설계 원칙을 통해 시스템의 유지보수성과 확장성을 극대화하려는 개발 방법론입니다. 로버트 C. 마틴(Uncle Bob)이 제안한 이 개념은 의존성 역전(DIP: Dependency Inversion Principle)을 중점으로, 비즈니스 로직과 UI, 데이터 계층 간의 결합도를 낮추는 데 초점을 맞춥니다. Screaming Architecture (스스로 외치는 아키텍처)Screaming Architecture는 소프트웨어의 아키텍처가 "이 시스템이 무엇을 하는지"를 명확히 드러내야 한다는 개념을 의미합니다. 즉, 디렉토리 구조와 코드 네이밍이 시스템의 주요 비즈니스 목적을 전달해야 한다는 것입니다. 이를 통해 새로운 개발자가 코드를 처음 접..

반응형