아키텍처와 설계
둘 사이에는 차이가 없다고 볼 수 있다.
아키텍처가 조금 더 거시적인 관점, 설계는 미시적인 관점
아키텍처
- 저수준의 세부사항과는 분리된 고수준의 무언가를 가르킬 때 사용
설계
- 저수준의 구조 또는 결정사항 등을 의미
소프트웨어에서 설계
- 저수준의 세부사항과 고수준의 구조는 모두 소프트웨어의 전체 설계의 구성요소
- 필요한 시스템을 만들고 유지보수하는데 투입되는 인력 최소화를 목표
- 비용이 낮고 시스템 수명이 다할 때까지 낮게 유지할 수 있다면 좋은 설계
- 새로운 기능이 출시할 때마다 비용이 증가하면 나쁜 설계
소프트웨어 시스템의 두 가지 가치
행위
- 이해관계자의 기능 명세서나 요구사항 문서를 구체화 하도록 코드를 작성
- 이를 위해 이해관계자는 프로그래머를 고용
- 기능이 있는 프로그램을 만드는 일
- 요구사항을 위반하면 디버깅
아키텍처
- 행위를 통해 만들어진 프로그램을 개발 및 변경, 확장하기 쉽게 해주는 가치
- 소프트웨어는 아키텍처를 통해 변경하기 쉬워져야한다.
- 좋은 아키텍처로 설계된 프로그램은 비용을 절감할 수 있다.
행위 가치 VS 아키텍처 가치
이해관계자는 행위에 더 높은 가치를 두겠지만 개발자는 아키텍처에 중점을 둔 프로그램을 만들어야한다.
행위에만 무게를 두어 개발이 진행되면 추후 새로운 요구사항 및 변경사항에 드는 비용이 시간이 지남에 따라 높아지게 될것이고
최악의 상황에는 개발 및 변경 비용이 수익을 추월하여 사실상 변경이 불가능해지는 상황이 올 수 있다.
그리하여 개발자는 시스템이 제공하는 특성이나 기능보다 개발하기 쉽고, 변경에 용의며 확장을 쉽게 해주는 시스템의 구조,
아키텍처의 가치에 더 집중할 필요가 있다.
'Etc' 카테고리의 다른 글
[SQLD] 2과목 정리 - SQL 최적화의 원리 (2) | 2023.03.12 |
---|---|
[SQLD] 1과목 정리 - 데이터 모델과 성능 (0) | 2023.03.08 |
[SQLD] 1과목 정리 - 데이터 모델링 (0) | 2023.03.04 |
[클린 아키텍처] 프로그래밍 패러다임 (2) | 2023.02.22 |
SSL이란?, SSL과 TLS 정의 및 차이 (2) | 2021.12.09 |