포디 Podi
또렷한 기억보다 글이 낫다
포디 Podi
  • 분류 전체보기 (83)
    • 책 (14)
      • 기록 (14)
      • 한줄 (0)
    • IT (62)
      • 기록 (61)
    • 일상 (5)
      • 음식 (0)
      • 기록 (5)
    • 게임 (0)
      • 몬스터헌터 (0)

블로그 메뉴

  • 홈으로
  • 방명록
  • 태그들
  • 깃허브
  • 유튜브
  • 인스타

공지사항

인기 글

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
포디 Podi

또렷한 기억보다 글이 낫다

개발자에서 아키텍트로 #1 소프트웨어 아키텍트가 되다
책/기록

개발자에서 아키텍트로 #1 소프트웨어 아키텍트가 되다

2021. 7. 1. 23:01
728x90

1장 소프트웨어 아키텍트가 되다

- 아키텍트는 시스템의 품질 속성을 정의할 뿐만 아니라 소프트웨어 아키텍처가 정해진 방향으로만 갈 수 있도록 제약과 기능을 꾸준히 해야함.

- 아키텍트는 소프트웨어 시스템을 여러 조각으로 나누고 조각마다 품질 속성과 요구사항을 달성하도록 전략을 구성

- 데이터를 읽는 작업과 쓰는 작업을 분리해서 더 신뢰성 있고 가용성 높은 소프트웨어 시스템을 구축

- 시스템을 작게 나누면 원인, 테스트, 설계가 쉽다. 단, 시스템을 작게 나눈만큼 다시 모아서 제대로 동작하게 하는 작업도 필요하다.

- 아키텍트는 작은 설계 결정 사항이 가져올 미래도 예측하면서 넓은 의미의 시스템 관점도 가져야 한다.

- 기술 부채는 소프트웨어 시스템의 현재 설계와 소프트웨어가 지속적으로 가치를 창출하기 위해 가져야만 하는 바람직한 설계 사이의 간극이다. 

- 기술 부채를 전략으로 활용해서 빠른 릴리스를 달성하면서도 정기적으로 부채를 갚아서 꾸준히 더 나은 가치를 만들어낸다.

- 구조를 만드는 일은 곧 요소들끼리 관계를 만드는 일

- 요소와 관계를 세 가지 타입(모듈, 컴포넌트와 커넥터, 자원 할당)  구조 중 선택해 설계 

- 모듈은 설계 시점에 의미 있는 요소이며 컴포넌트는 런타임 시점에 의미 있는 요소

- 품질 속성을 묻지 않으면 시스템을 잘못 설계할 수 있다.

- 품질 속성은 해당 소프트웨어 시스템의 이해관계자들이 소프트웨어를 평가하는 데 도드라지는 특성들을 말함

- 품질 속성은 크게 확장성, 가용성, 유지 보수성, 테스트 가능성 등이 대표적인 예

- 훌륭한 소프트웨어를 만들기 위한 방법은 6가지 방법이 있다.

   1. 소프트웨어 아키텍처는 큰 문제를 작게 나누고 관리하기 쉽게 만듦

     : 크고 복잡하고 동적으로 변하는 여러 개의 조각으로 이루어진다.

   2.소프트웨어 아키텍처는 사람들이 협업하는 방법을 보여줌

     : 기술보다 사람 간의 커뮤니케이션이다.

   3.소프트웨어 아키텍처는 복잡한 아이디어를 설명할 때 사용하는 사전

      : 설명을 상대방이 이해하지 못하면 협업은 불가능하다

   4.소프트웨어 아키텍처는 기능과 스펙 너머로 시야를 넓혀줌

       : 비용, 제약, 일정, 리스크, 팀의 역량, 확장성, 가용성, 성능, 유지 보수성 등의 품질 속성까지 고려해야 한다.

   5.소프트웨어 아키텍처는 값비싼 실수를 줄여줌

        : 마틴 파울러는 소프트웨어 아키텍처에 대해 "뭐가 되었든 중요한 것" 

   6.소프트웨어 아키텍처는 예자일을 가능하게 함

         : 소프트웨어도 장애물을 만날 떄 쉽게 변경할 수 있어야 함. 

 

'책 > 기록' 카테고리의 다른 글

[Effective Java] 아이템2 생성자에 매개변수가 많다면 빌더를 고려하라  (0) 2022.06.18
[Effective Java] 아이템1 생성자 대신 정적 팩토리 메서드를 고려하라  (0) 2022.06.16
[프로그래머의 뇌] 변수의 역할  (0) 2022.06.03
개발자에서 아키텍트로 #3 -설계-전략-고안하기  (0) 2021.08.04
개발자에서 아키텍트로 #2 - 디자인 싱킹 기초  (0) 2021.07.05
    '책/기록' 카테고리의 다른 글
    • [Effective Java] 아이템1 생성자 대신 정적 팩토리 메서드를 고려하라
    • [프로그래머의 뇌] 변수의 역할
    • 개발자에서 아키텍트로 #3 -설계-전략-고안하기
    • 개발자에서 아키텍트로 #2 - 디자인 싱킹 기초
    포디 Podi
    포디 Podi
    기록은 복리다

    티스토리툴바