티스토리 뷰
[ 밑줄/연결 ]
기술부채(technical debt)는 소프트웨어 시스템의 현재 설계와 소프트웨어가 지속적으로 가치를 창출하기 위해 가져야만하는 바람직한 설계 사이의 간극입니다....기술부채는 성공을 위해 피할 수 없는 부산물이기도 합니다. 노련한 소프트웨어 개발 팀은 기술 부채를 전략적으로 활용해서 빠른 릴리스를 달성하면서도 정기적으로 부채를 갚아서 꾸준히 더 나은 가치를 만들어냅니다.
아키텍트는 기술 부채를 시각화하고 이해관계자 모두에게 이를 어떻게 관리해야 하는지 도와주는 일을 합니다.
소프트웨어 아키텍처란 한 소프트웨어를 어떻게 구성해야 하는지 그리고 필요한 품질 속성은 어떻게 증진해야 하는지에 대한 중요한 결정들과 다른 소프트웨어와는 구별되는 특징들을 모아놓은 집합입니다.
구조를 만드는 일은 곧 요소들끼리 관계를 만드는 일입니다....요소는 소프트웨어를 만드는 기본 조각입니다. 관계는 연관된 요소들이 함께 동작해서 특정 작업을 완수하는 단위입니다.
요소와 관계를 세 가지 타입의 구조 중 선택해 설계할 수 있습니다.....구조를 만들려면 동일한 타입 안에서 요소와 관계를 결합합니다.
구조를 선택하는 가장 일반적인 방법은 패턴을 탐색하는 것입니다..... 모든 디자인은 다시 디자인한 것입니다!
원하는 품질 속성을 촉진하는 패턴을 찾아 해당 패턴을 아키텍처의 시작점으로 잡으세요.
(웹 브라우저용 데이터 기반 애플리케이션을 구축한다고 할 때, 적절한 선택지는 세 가지)
3계층, 발행/구독, 서비스 지행 패턴
(3계층 패턴)
ㅇ 대부분의 경우에 적합
ㅇ 쉽게 테스트할 수 있고, 쉽게 배포할 수 있고, 쉽게 설명할 수 있음
ㅇ 비용은 높은 편. 계층이 여러 겹인 멀티 계층 패턴은 확장성이나 가용성과 같은 품질 속성에는 적합하지 않음
(발행/구독 패턴)
ㅇ 서비스를 여러번 변경해도 유연하게 대응할 수 있음
ㅇ 느슨하게 결합된 시스템을 만들 때 적합
ㅇ 데이터 위주의 애플리케이션에서는 메시지의 순서가 중요하지만 발행/구독 패턴은 순서를 보장하기 어려움
ㅇ 메세지 순서를 지키도록 만드는 순간 아키텍처의 매력이 줄어 듦
(서비스 지향 패턴)
ㅇ 유연하고 테스트하기 좋음
ㅇ 품질 속성 중 확장성과 가용성을 다른 아키텍처보다 중요하게 다룸
ㅇ 인프라 관점에서 가장 복잡도가 높음.
ㅇ 꼭 달성해야 할 품질 속성 때문에 써야 할 경우가 아니라면 이 패턴은 과할 수 있음
숫자로 점수를 매기지 마세요. 숫자는 그릇된 자신감을 주고 부정확한 분석을 하게 합니다.
오래전부터 엔지니어들은 자주 발생하는 문제를 해결할 때마다 재사용할 수 있도록 '패턴'을 만들어왔습니다.
아키텍처 패턴이란 특정 문제에 대해 재사용할 수 있는 해법입니다. 소프트웨어 아키텍처 패턴은 알려진 몇 가지 구조의 조합으로 품질 속성을 끌어올리는 방법입니다. 문제에 적합한 패턴을 선택하면 함정을 피할 수도 있고 바닥붜 디자인하는 수고를 덜 수도 있습니다.
디자인 패턴은 객체 지향 프로그램의 재사용성과 유지 보수성을 높일 수 있는 다양한 구성을 소개합니다. 아키텍처 패턴은 이와는 달리 다양한 품질 속성 시나리오를 해결하는 데 목적이 있습니다. 소프트웨어의 설계 시간, 실행 시간, 추상적인 컴포넌트 등을 다릅니다.
(서비스 지향 아키텍쳐 패턴)
특정 기능을 가진 컴포넌트를 독립적인 서비스로 구현. 시스템은 실행 중에 서비스를 조합해 작업을 수행.
서비스를 사용하는 측면에서는 각 서비스가 어떻게 구현되었는지 몰라도 서비스를 불러내고 실행할 수 있어야 함
최신 SOA 구현 방법은 마이크로서비스로 더 세분화하고 더욱 가벼운 HTTP 프로토콜로 서로를 잇습니다.
모델과 코드의 격차를 줄이는 또 다른 방법으로, 도메인 모델을 코드에 넣는 방법이 있습니다.
코드에 도메인 모델을 전제하고구현하는 방식은 도메인 주도 설계(DDD, Domain-Drive Desing)을 비롯한 여러 설계 방법론의 핵심 원칙이기도 합니다.
[ 자평 ] 읽어 볼 만 함....DX을 주절이 주절이 떠드는 것보다 이런 지식이라도 있고 나서 떠들어야 하지 않을까
'IT' 카테고리의 다른 글
그림으로 공부하는 마이크로 서비스 구조 by 다루사와 히로유키 외 (0) | 2022.10.03 |
---|---|
기술중독사회 by 켄타로 토야마 (0) | 2022.08.07 |
거꾸로 배우는 소프트웨어 개발 by 이 호종 (0) | 2022.07.17 |
데브옵스 도입 전략 by 산지브 샤르마 (0) | 2022.07.02 |
월컴 투 인공지능 (0) | 2022.05.28 |
- Total
- Today
- Yesterday
- 전략에 전략을 더하라
- 상대성이론
- 제로 성장 시대가 온다
- 양자역학
- 사회물리학
- 부정성 편향
- 개발자에서 아키텍트로
- 디지털 트랜스포메이션 엔진
- 혁신
- 당신은 AI를 개발하게 된다
- Ai
- 복잡계의 새로운 접근
- 경계의 종말
- 경영혁신
- 최진석
- 개발자가 아니더라도
- 참을 수 없는 존재의 가벼움
- 고도를 기다리며
- 플랫폼의 시대
- 안나 카레니나
- 스케일의 법칙
- 함께 있으면 즐거운 사람
- 함께 있으면 피곤한 사람
- 파괴적 혁신
- 인공지능
- 데브옵스 도입 전략
- 불교
- 직감하는 양자역학
- 돈
- 이노베이션
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |