본문 바로가기

아키텍처2

[소프트웨어 아키텍처 101] Ch.8 컴포넌트 기반 사고 1. 컴포넌트 범위 개발자는 컴포넌트 개념을 다양한 팩터에 세분화하는 것이 유용하다고 생각한다. 컴포넌트는 아티팩트를 한데 묶어 필요시 중첩시켜 계층화하는, 언어에 특정한 매커니즘을 제공한다. 가장 단순한 컴포넌트는 클래스(또는 비객체 지향 언어의 함수)보다 한 단계 높은 수준의 모듈로 코드를 래핑하는 것이다. 이 단순한 래퍼를 보통 라이브러리(library)라고 한다. 컴포넌트 아키텍처에서 서브시스템이나 레이어 형태로도 나타나며, 많은 이벤트 프로세서를 위한 배포 가능한 작업 단위이다. 서비스는 또 다른 종류의 컴포넌트로서 자신의 주소 공간에서 실행되며, TCP/IP 같은 저수준 네트워크 프로토콜이나 REST, 메시지 큐 같은 고수준 포맷을 통해 통신한다. 컴포넌트는 아키텍처의 근본적인 모듈성을 구성하.. 2024. 1. 11.
[소프트웨어 아키텍처 101] Ch.6 아키텍처 특성의 측정 및 거버넌스 1. 아키텍처 특성 측정 아키텍처 특성을 정의할 때 흔히 발생하는 문제들 물리학이 아니다 : 아키텍처 특성의 대부분은 의미가 모호하다. 정의가 너무 다양하다 : 부서마다 정의를 통일하기 전까지는 원활한 소통이 어렵다. 너무 복합적이다 : 바람직한 아키텍처 특성은 대부분 더 작은 다른 여러 특성들로 구성된다. 이 세 가지 문제는 아키텍처 특성을 객관적으로 정의하면 모두 해결된다. 1.1 운영적 측정 아키텍처 특성은 성능, 확장성처럼 비교적 정확하게 측정할 수 있는 것도 많지만, 팀 목표에 따라 그에 다른 해석은 미묘하게 갈릴 때가 많다. 성능의 여러 가지 맛 대부분의 프로젝트는 (웹 애플리케이션의 요청/응답 시간을 재는 것처럼) 일반적인 성능을 살펴보지만, 아키텍트와 데브옵스 엔지니어는 성능 예산을 책정하.. 2024. 1. 11.