소프트웨어 아키텍처

hi·2023년 1월 11일
0

아키텍처

목록 보기
1/7

소프트웨어 아키텍처란 무엇입니까?

소프트웨어 아키텍처는 아키텍처 특성, 아키텍처 결정, 설계 원칙, 시스템의 구조로 구성됩니다.



아키텍처 특성

아키텍처 특성이란 서비스의 가용성, 확장성, 내고장성, 성능, 신뢰성, 보안, 탄력성, 배포성, 시험성, 민첩성, 복구성, 학습성 등과 같이 시스템이 올바르게 동작하기 위해 필요한 속성들을 뜻합니다.


아키텍처 결정

소프트웨어 아키텍처는 아키텍처 결정에 의해 규정됩니다. 예를 들어 '레이어드 아키텍처에서 비즈니스 레이어와 서비스 레이어에서만 데이터베이스 레이어에 액세스할 수 있다'로 결정하는 식입니다. 아키텍처의 결정은 시스템 제약조건을 형성하며, 개발자가 해도 되는 것과 하지 말아야 할 것을 알려줍니다.

만일 어떤 상황이나 다른 제약조건에 의해 시스템의 어느 한 부분에서 아키텍처 결정을 구현할 수 없다면 그 결정은 변형이라는 것을 통해 깨뜨릴 수 있습니다. 이를 변형 모델이라고 합니다.


설계 원칙

아키텍처 결정이 반드시 지켜야 할 규칙이라면 설계 원칙은 가이드라인 (권고사항)입니다. 예를 들어 마이크로서비스 아키텍처에서 마이크로서비스간 통신은 비동기 통신을 준수하는 것이 설계 원칙입니다. 그러나 서비스 간 통신에 관한 모든 조건과 구현 방안을 아키텍처 결정으로 다룰 수 없기에 (ex, 민감한 정보를 담고 있어 반드시 동기 처리되어야 하는 부분 / 원자성이 절대적으로 요구되는 부분 / 응답성이 절대적으로 중요한 부분 등) 특정 환경에서 개발자가 더 적합한 (REST, gRPC) 통신 프로토콜을 선택할 수 있도록 우선 권장하는 방법에 관한 가이드를 설계 원칙으로 두는 것이 일반적입니다.


시스템의 구조

시스템의 구조란 시스템이 구현된 아키텍처 스타일들 (마이크로서비스, 레이어드 등)의 종류를 말합니다.

0개의 댓글