소프트웨어 아키텍처의 난해하고 중요한 부분에 대한 책이다.
모든 소프트웨어 아키텍처가 트레이드오프라는 말에 공감한다.
현실적으로 가능한 선에서 비용과 효율을 고려해 최선의 선택을 해야 한다.
파트1 : 따로 떼어놓기
파트2 : 다시 합치기
책은 크게 2가지의 부분으로 이뤄져있다. 그리고 자바로 설명한다.
좀 더 쉽게 소프트웨어 아키텍처의 현실적인 딜레마를 설명하기 위해 가상의 애플리케이션으로 책을 진행시킨 점도 좋았다.
또 역자가 파트1부터 가상의 기업과 조직, 인물들을 한국식으로 재편성해 대본 형식으로 바꾼 것도 이해하기 편했다. ^^
은근히 영어이름과 매칭되는 한국어 이름(Logan -> 노건우) 을 택한 센스를 이해했다.
아키텍트의 대해 우리가 스택오버플로우에서 쉽게 답을 찾을 수 없는 이유는 뭘까.
각 회사마다 처한 상황과 쓸 수 있는 비용이 다르기 때문이다. 그렇기 때문에 소프트웨어 아키텍트는 커스텀하게 들어갈 수밖에 없고 그렇기에 이 부분에서 비즈니스적으로 컨설턴트가 개입될 여지가 충분히 있다고 생각한다.
어쩌면 이러한 점 때문에 소프트웨어 아키텍처가 거시적으로는 매력적이지 않나 라는 생각이 든다.
더 나은 선택을 할 수 있게끔 도와줄 수 있다면 그 자체로 시장에서 경쟁력을 가진 게 아닐까.
요점정리
- 소프트웨어 아키텍처 스타일
: 10년 전 - 오케스트레이션, 현재 - 오픈소스, 마이크로서비스
: 한번에 하나씩 아키텍처는 스스로를 완전히 대체한다.
- 데이터는 중요하다
: 운영데이터(OLTP, 일반적인 DB사용), 분석데이터(OLAP, prediction, analysis, BI, Data Science, Business Analysis, 관계형 데이터 아님)
-피트니스 함수 사용하기
: 어떤 아키텍처 특성이나 그것들을 조합한 아키텍처 특성의 무결성을 객관적으로 평가하는 임의의 메커니즘
|_'임의의 메커니즘' - 성능, 확장성 등 운영 아키텍처 특성은 아키텍처 구조를 테스트하는 전용 테스트 라이브러리로 평가.
|_'객관적인 무결성 평가' - 테스트, 모니터, 다른 피트니스 함수로 측정 가능한 객체의 값 제공
|_'어떤 아키텍처 특성이나 그것들을 조합한 아키텍처 특성' - 원자적(코드베이스의 컴포넌트 주기 확인), 전체적(서로 맞물려 있는 아키텍처 특성을 잘 조합하고 조합 결과가 아키텍처에 부정적인 영향을 미치지 않도록 보장)
-도메인 설계 검증은 단위 테스트에 해당
: 테스트에 도메인 지식이 필요하지 않으면 피트니스 함수, 필요하면 단위 테스트
|_ 예) 탄력성 - 폭증 유저수 감당하는 앱 능력. 구조에 대한 문제니 피트니스 함수에 해당
-모놀리식 아키텍처
: 모든 비즈니스 관련 사항을 함께 결합하는 하나의 코드 베이스를 갖춘 대규모의 단일 컴퓨팅 네트워크
: vs MSA(마이크로서비스 아키텍처)
읽으면서 소프트웨어 아키텍처에 대해 자세히는 모르지만 전체적인 의미에서 굉장히 중요한 역할을 한다는 것을 알 수 있었다. 그리고 일반적인 개발 과정에서 놓칠 수 있는 부분을 좀 더 큰 시각에서 잡아내고 체크할 수 있다는 점에서 매력적이라는 생각이 들었다.
항상 무심코 작업하는 자신을 발견할 때가 있는데 SA는 그런 면에서 개인적으로 업무의 품질을 발전시킬 수 있는 좋은 영역인 것 같다. 데이터 거버넌스도 요즘 곳곳에서 조금씩 눈에 띄고 있는데 기회가 된다면 이곳부터 조금씩 영역을 확대하면 좋겠다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
'IT리뷰' 카테고리의 다른 글
이것이 자료구조+알고리즘이다 with C언어 (2) | 2022.12.30 |
---|---|
파이썬 라이브러리를 활용한 텍스트분석(2022.10.10) (0) | 2022.11.27 |
데이터로 전문가처럼 말하기(2022.08.30) (0) | 2022.10.02 |
혼자 공부하는 컴퓨터구조+운영체제 2탄 (0) | 2022.09.13 |
혼자 공부하는 컴퓨터구조+운영체제(2022.08.16) (0) | 2022.09.11 |
댓글