아키텍처 패턴은 소프트웨어의 구조를 구성하기위한 가장 기본적인 토대를 제시한다.
- 아키텍처 패턴은 각각의 시스템들과 그 역할이 정의되어 있고, 여러 시스템 사이의 관계와 규칙 등이 포함되어 있다.
- 검증된 구조로 개발을 진행하기 때문에 안정적인 개발이 가능하다.
- 복잡한 도메인 문제를 해결할 때, 아키텍처 패턴을 사용하면 모델이나 코드를 더 쉽게 변경 할 수 있다는 측면에서 큰 이익을 얻을 수 있다.
대표적인 아키텍처 패턴
MVC 패턴 ( Model View Controller Pattern )
- 사용자 인터페이스 ( UI )가 필요한 어플리케이션에서 많이 사용되는 패턴
- 모델 ( Model ) : 데이터와 비즈니스 로직을 담당
- 뷰 ( View ) : 사용자 인터페이스 ( UI )를 담당
- 컨트롤러 ( Controller ) : 클라이언트의 요청을 모델과 뷰로 전달해주는 역할을 담당
MVC 패턴은 현재는 많이 사용되지 않는다.
계층형 아키텍쳐 패턴 ( Layered Architecture Pattern )
- 시스템의 서로 다른 기능을 여러 계층( Layer )으로 분할하는 패턴
- 일반적으로 컨트롤러( Controller ), 서비스( Service ), 저장소( Repository ) 계층으로 분리된다.
클린 아키텍쳐 패턴 ( Clean Architecture )
- 소프트웨어를 내부 도메인으로 향하는 의존성을 가지는 여러 계층으로 분리하는 패턴
- 클라이언트의 요청 처리, 데이터베이스 조작, 외부 시스템과의 통신은 외부 계층에서 처리
- 소프트웨어의 유지보수성과 확장성을 향상시키는 것이 주요 목표
마이크로 서비스 아키텍처 패턴 ( Microservices Architecture Pattern )
- 시스템을 작고, 독립적으로 배포 가능한 서비스로 분할하는 패턴
- 하나의 시스템에서 다양한 언어와 프레임워크를 도입할 수 있는 패턴
- 서비스 간의 통신은 API 또는 이벤트 기반 아키텍처 ( EDA, Event Driven Architecture )를 통해 통신한다.
아키텍처 패턴을 도입하기 전에 고민해야할 부분
- 아키텍처 패턴이 주는 이점과 비용에 대한 확실한 이유가 있어야한다.
- 해당하는 아키텍처 패턴을 채택했을 때 어떤 장단점이 존재하는지 명확하게 인지해야 한다.
- 여러 계층을 추가하기 위해 들이는 노력과 시간을 투자할 만한 가치가 있을 정도로 어플리케이션과 도메인이 복잡한 경우에만 아키텍처 패턴을 도입해야 한다.
'IT' 카테고리의 다른 글
[IT] 테스트 코드 ( Test Code ) (1) | 2024.09.28 |
---|---|
[IT] 계층형 아키텍처 패턴 ( Layered Architecture Pattern ) (0) | 2024.09.27 |
[IT] 객체 지향 설계 5 원칙 ( SOLID ) (1) | 2024.09.27 |
[IT] 객체 지향 프로그래밍 ( Object-Oriented Programming, OOP ) (0) | 2024.09.26 |
[IT] Visual Studio Code - 디버그 (0) | 2024.09.19 |