본문 바로가기

Binary Book Club17

[소프트웨어 아키텍처 101] Ch4. 아키텍처 특성 정의 p. 89 소프트웨어 솔루션은 도메인 요구사항과 아키텍처 특성으로 구성된다. 💬정처기에서 공부했던 것을 연결해보면 '도메인 요구사항 = 기능 요구사항 / 아키텍처 특성 = 비기능 요구사항'인걸까? 아키텍처 특성의 기준 비도메인 설계 고려 사항을 명시한다. 설계의 구조적 측면에 영향을 미친다. 애플리케이션 성공에 (절대적으로) 중요하다. 아키텍처 특성 (일부) 목록 운영 아키텍처 특성 가용성(availability) 시스템이 얼마나 오랫동안 사용 가능해야 하나? 연속성(continuity) 재해 복구 능력 성능(performance) 스트레스 테스트, 피크 분석, 기능의 사용 빈도 분석, 필요 용량, 응답 시간 복구성(recoverability) 비즈니스 연속성 요구사항(e.g. 장애 발생 시 얼마나 신속.. 2024. 1. 5.
[소프트웨어 아키텍처 101] Ch.3 모듈 소프트웨어 아키텍처 용어의 95%는 '모듈성'의 이로움을 찬양하는 데 사용되고 있지만, 정작 모듈성을 어떻게 달성할지에 대해서는 별다른 얘기가 없다. - 글렌포드 J. 마이어스, 1978년 플랫폼마다 제공하는 코드 재사용 메커니즘은 제각각이지만, 연관된 코드를 '모듈'로 묶는 방법은 모두 지원한다. 본인이 선택한 개발 플랫폼에서 모듈성과 그것을 구현한 수많은 코드를 이해하는 것은 아키텍트에게 대단히 중요한 일이다. 우리가 아키텍처를 분석해야 할 (메트릭, 피트니스 함수, 시각화 등) 많은 도구가 바로 이 모듈성에 기반하기 때문이다. 모듈성은 일종의 구성 원리이다. 아키텍트가 대충 아무렇게나 조각들을 이어 붙여 시스템을 설계하면 무수한 난관에 봉착해 옴짝달싹 못 하는 시스템이 될 것이다. 물리학에 비유하자.. 2024. 1. 5.
[스터디] 직교성이란? 소프트웨어 아키텍처 101을 읽다보면 직교성이라는 단어가 종종 나온다. 이게 뭔지 감이 잘 오지 않아 따로 알아보았다. 직교성이란? 직교성은 기하학에서 빌려온 용어다. 그래프의 축과 같이 두 직선이 직각으로 만나는 경우 직교한다고 말한다. 벡터의 입장에서 보면, 두 개의 선은 독립적이다. ex) 함수 그래프 y = 5 는 x가 무슨 값이어도 영향을 받지 않는다. 컴퓨팅에서 이 용어는 결합도 줄이기를 의미한다. 하나가 바뀌어도 나머지에 어떤 영향도 주지 않는다면 직교한다고 할 수 있다. 직교성의 장점 비직교적인 시스템은 본질적으로 변화와 조정을 하기가 복잡하다. 시스템의 컴포넌트들이 고도로 상호의존적인 경우, 특정 부분만 수정하는 방법이란 없다. "관련 없는 것들 간에 서로 영향이 없도록 하라." 컴포넌트.. 2024. 1. 4.
[소프트웨어 아키텍처 101] Ch.2 아키텍처 사고 아키텍트의 사고 방식 아키텍처와 설계의 차이를 이해하고 아키텍처 작업을 진행하려면 개발팀과 어떻게 협력해야 할지 아는 것 어느 정도 기술 깊이를 유지하면서 폭 넓은 기술 지식을 확보하는 것 → 그래서 아키텍트는 다른 사람들이 보지 못하는 해결책과 가능성을 떠올릴 수 있다. 다양한 솔루션과 기술 간의 트레이드오프를 이해하고, 분석하고, 조율하는 것 비즈니스 동인의 중요성을 이해하고 그것을 아키텍처 관심사로 해석할 줄 아는 것 전통적인 아키텍트의 책임과 개발자의 책임 가운데의 단방향 화살표가 아키텍처와 연관된 모든 문제의 원인! 개발팀이 아키텍처를 변경하기로 결정한 내용이 다시 아키텍트에게 전달되는 일은 거의 없다. 아키텍트가 개발팀과 완전히 단절되어있기 때문이다. 그렇기에 두 팀이 양방향으로 소통하는 관계.. 2024. 1. 4.
[소프트웨어 아키텍처 101] Ch.1 서론 소프트웨어 아키텍트의 커리어패스는 분명하지 않다. WHY? 소프트웨어 아키텍트라는 직업 자체에 대한 명확한 정의가 아직 없다. 소프트웨어 아키텍트의 역할은 실로 방대한 분야를 포괄하여 업무 범위도 계속 넓어지고 있다. 소프트웨어 개발 생태계는 워낙 빠르게 발전하는 분야이고 소프트웨어 아키텍처는 끊임없이 변한다. 소프트웨어 아키텍처에 관한 자료는 대부분 역사적인 연관성을 강조한다. p. 27 소프트웨어 아키텍트는 이렇게 끊임없이 변하는 생태계 안에서 뭔가 결정을 내리는 사람들입니다. ...... 즉, 아키텍트가 내린 결정은 대부분 그들이 그렇게 결정한 당시 환경에 기인한 것입니다. p. 28 모든 아키텍처는 그 콘텍스트의 결과물이라는 사실을 기억하세요. 소프트웨어 아키텍처의 구성 아키텍처 특성 : 시스템의.. 2024. 1. 4.