본문 바로가기
IT리뷰

소프트웨어 아키텍처 The Hard Parts (2022.10.10)

by jb213 2022. 10. 30.

소프트웨어 아키텍처의 난해하고 중요한 부분에 대한 책이다.

모든 소프트웨어 아키텍처가 트레이드오프라는 말에 공감한다.

현실적으로 가능한 선에서 비용과 효율을 고려해 최선의 선택을 해야 한다.

 

파트1 : 따로 떼어놓기

파트2 : 다시 합치기

 

책은 크게 2가지의 부분으로 이뤄져있다. 그리고 자바로 설명한다.

좀 더 쉽게 소프트웨어 아키텍처의 현실적인 딜레마를 설명하기 위해 가상의 애플리케이션으로 책을 진행시킨 점도 좋았다.

또 역자가 파트1부터 가상의 기업과 조직, 인물들을 한국식으로 재편성해 대본 형식으로 바꾼 것도 이해하기 편했다. ^^

은근히 영어이름과 매칭되는 한국어 이름(Logan -> 노건우) 을 택한 센스를 이해했다. 

 

아키텍트의 대해 우리가 스택오버플로우에서 쉽게 답을 찾을 수 없는 이유는 뭘까.

각 회사마다 처한 상황과 쓸 수 있는 비용이 다르기 때문이다. 그렇기 때문에 소프트웨어 아키텍트는 커스텀하게 들어갈 수밖에 없고 그렇기에 이 부분에서 비즈니스적으로 컨설턴트가 개입될 여지가 충분히 있다고 생각한다.

어쩌면 이러한 점 때문에 소프트웨어 아키텍처가 거시적으로는 매력적이지 않나 라는 생각이 든다.

더 나은 선택을 할 수 있게끔 도와줄 수 있다면 그 자체로 시장에서 경쟁력을 가진 게 아닐까.

 

요점정리

- 소프트웨어 아키텍처 스타일

: 10년 전 - 오케스트레이션, 현재 - 오픈소스, 마이크로서비스

: 한번에 하나씩 아키텍처는 스스로를 완전히 대체한다.

 

- 데이터는 중요하다

: 운영데이터(OLTP, 일반적인 DB사용), 분석데이터(OLAP, prediction, analysis, BI, Data Science, Business Analysis, 관계형 데이터 아님)

 

-피트니스 함수 사용하기

: 어떤 아키텍처 특성이나 그것들을 조합한 아키텍처 특성의 무결성을 객관적으로 평가하는 임의의 메커니즘

|_'임의의 메커니즘' - 성능, 확장성 등 운영 아키텍처 특성은 아키텍처 구조를 테스트하는 전용 테스트 라이브러리로 평가.

|_'객관적인 무결성 평가' - 테스트, 모니터, 다른 피트니스 함수로 측정 가능한 객체의 값 제공

|_'어떤 아키텍처 특성이나 그것들을 조합한 아키텍처 특성' - 원자적(코드베이스의 컴포넌트 주기 확인), 전체적(서로 맞물려 있는 아키텍처 특성을 잘 조합하고 조합 결과가 아키텍처에 부정적인 영향을 미치지 않도록 보장)

 

-도메인 설계 검증은 단위 테스트에 해당

: 테스트에 도메인 지식이 필요하지 않으면 피트니스 함수, 필요하면 단위 테스트

|_ 예) 탄력성 - 폭증 유저수 감당하는 앱 능력. 구조에 대한 문제니 피트니스 함수에 해당

 

-모놀리식 아키텍처

:  모든 비즈니스 관련 사항을 함께 결합하는 하나의 코드 베이스를 갖춘 대규모의 단일 컴퓨팅 네트워크

: vs MSA(마이크로서비스 아키텍처)

 

읽으면서 소프트웨어 아키텍처에 대해 자세히는 모르지만 전체적인 의미에서 굉장히 중요한 역할을 한다는 것을 알 수 있었다. 그리고 일반적인 개발 과정에서 놓칠 수 있는 부분을 좀 더 큰 시각에서 잡아내고 체크할 수 있다는 점에서 매력적이라는 생각이 들었다. 

 

항상 무심코 작업하는 자신을 발견할 때가 있는데 SA는 그런 면에서 개인적으로 업무의 품질을 발전시킬 수 있는 좋은 영역인 것 같다. 데이터 거버넌스도 요즘 곳곳에서 조금씩 눈에 띄고 있는데 기회가 된다면 이곳부터 조금씩 영역을 확대하면 좋겠다.

 

  "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

댓글