현재 위치
홈상품상세정보
*도서소개
끊임없는 변화에 견고한 아키텍처와 검증된 프로젝트 설계 방법론
현재 수많은 소프트웨어 프로젝트가 놀라운 속도로 실패하고 있다. 끊임없이 변하는 요구사항으로 인해 시스템은 감당할 수 없을 정도로 복잡해지고 있다. 역동적이고 혼란스러운 환경에서 프로젝트의 마감일, 일정, 예산은 지켜지지 않다. 이 책은 검증된 아키텍처 및 프로젝트 설계 방법론을 도입하여 이러한 문제를 극복하는 데 도움을 준다.
먼저, 밀접하게 연결된 두 가지 구성 요소인 아키텍처 설계와 프로젝트 설계를 통합한다. 이 두 요소가 합쳐져 소프트웨어 설계를 구성한다. 아키텍처 설계에서는 더 작은 구성 요소나 서비스로 분해하는 방법을 제시하여, 현재 많은 소프트웨어 아키텍트가 실패하는 영역을 해결한다. 다음으로, 아키텍처 설계에서 효과적인 프로젝트 설계를 도출하는 방법을 보여주며, 프로젝트의 기간, 비용, 위험을 정확하게 계산한다. 이를 통해 얻은 방법과 원칙은 프로젝트나 회사 규모, 기술, 플랫폼 또는 도메인과 관계없이 적용할 수 있으며 개발자, 아키텍처, 팀장, 프로젝트 리더에게 고품질의 소프트웨어를 개발하는 가장 현대적이고 체계적인 접근 방식을 제시한다.
*출판사도서소개
로이의 소프트웨어 설계 방법론은 두 가지 밀접하게 연결된 구성 요소를 통합합니다. 시스템 설계(일반적으로 아키텍처라고 함)와 프로젝트 설계입니다. 이 두 가지를 합쳐서 소프트웨어 설계라고 합니다. 시스템 설계를 위해 그는 시스템을 더 작은 구성 요소 즉, 서비스로 분해하는 공학적 방법을 제시하여 현재 대부분의 소프트웨어 아키텍트가 실패하는 영역을 해결합니다. 다음으로, 시스템 설계에서 효과적인 프로젝트 설계를 도출하는 방법을 보여주며 프로젝트의 기간, 비용 및 위험을 정확하게 계산합니다.
올바른 소프트웨어 설계에 담긴 기술과 아이디어는 소프트웨어 기술, 플랫폼, 프로젝트 규모, 회사 규모 또는 도메인에 관계없이 적용 가능하며, 오늘날 소프트웨어 실패의 주요 원인을 해결하는 데 특별히 설계되었습니다.
*목차
감사의 말
1장 더 메서드
‘더 메서드’란 무엇인가
- 설계 검증
- 빠듯한 일정
- 분석 마비 피하기
- 커뮤니케이션
더 메서드가 제공하지 않는 것
〈1부 시스템 설계〉
2장 분해
기능 분해 금지
- 기능 분해의 문제점
- 기능 분해 돌아보기
- 도메인 분해 피하기
- 잘못된 의도
- 테스트 가능성과 설계
- 예제: 주식 거래 시스템
변동성 기반 분해
- 분해, 유지보수, 개발
- 보편 원칙
- 변동성 기반 분해와 테스팅
- 변동성 문제
변동성 파악하기
- 변동성과 가변성
- 변동성의 축
- 요구사항을 가장한 솔루션
- 변동성 목록
- 예: 변동성 기반 거래 시스템
- 세이렌의 노래에 홀리지 않기
- 변동성과 비즈니스
- 경쟁사를 위한 설계
- 변동성과 지속성
- 연습의 중요성
3장 구조
유스케이스와 요구사항
- 필수 동작
계층형 접근법
- 서비스 활용
대표적인 계층
- 클라이언트 계층
- 비즈니스 로직 계층
- 리소스 접근 계층
- 리소스 계층
- 유틸리티 바
분류 가이드라인
- 명명 규칙
- 네 가지 질문
- 매니저 대 엔진 비율
- 주요 특징
서브시스템과 서비스
- 점진적 구축
- 마이크로서비스
개방형 아키텍처와 폐쇄형 아키텍처
- 개방형 아키텍처
- 폐쇄형 아키텍처
- 반폐쇄형(semi-closed) / 반개방형(semi-open) 아키텍처
- 규칙 완화
- 설계할 때 “해선 안 되는 것”
- 대칭 추구
4장 조합
요구사항 변경
- 변경에 대한 분노
- 핵심 설계 원칙
조합형 설계
- 코어 유스케이스
- 아키텍트의 미션
기능은 따로 없다
변경 사항에 대처하기
- 변경 사항 가두기
5장 시스템 설계 사례
시스템 개요
- 레거시 시스템
- 새로운 시스템
- 회사
- 유스케이스
반설계 노력
- 모놀리스
- 과립형 구성 요소
- 도메인 분해
비즈니스와 일치
- 비전
- 비즈니스 목표
- 사명
아키텍처
- TradeMe 용어집
- TradeMe의 변동성 영역
- 정적 아키텍처
- 운영 방식
- 워크플로 매니저
설계 검증
- 유스케이스: 기술자/계약자 추가
- 기술자 요청 유스케이스
- 기술자 매칭 유스케이스
- 기술자 할당 유스케이스
- 기술자 종료 유스케이스
- 기술자 결제 유스케이스
- 프로젝트 생성 유스케이스
- 프로젝트 종료 유스케이스
다음 단계는?
〈2부 프로젝트 설계〉
6장 동기부여
프로젝트 설계가 필요한 이유
- 프로젝트 설계와 프로젝트 상태
- 조립 설명서
- 욕구 단계
7장 프로젝트 설계 개요
성공의 기준
- 성공 보고하기
프로젝트 초기 인력 구성
- 아키텍트는 한 사람
- 코어 팀
노련한 결정
- 계획은 하나가 아닌 여러 개로
- 소프트웨어 개발 계획 검토
서비스와 개발자
- 설계와 팀 효율
- 작업 연속성
공수 추정
- 전형적인 실수들
- 추정 기법
- 전체 프로젝트 추정
- 활동 추정
크리티컬 패스 분석
- 프로젝트 네트워크
- 크리티컬 패스
- 리소스 할당
활동 스케줄링
- 인력 투입 분포
프로젝트 비용
- 프로젝트 효율
획득 가치 계획
- 대표적인 실수
- 완만한 S 커브
역할과 책임
8장 네트워크와 플로트
네트워크 다이어그램
- 노드 다이어그램
- 애로우 다이어그램
- 애로우 다이어그램 VS 노드 다이어그램
플로트
- 토탈 플로트
- 프리 플로트
- 플로트 계산
- 플로트 시각화
플로트 기반 스케줄링
- 플로트와 리스크
9장 시간과 비용
소프트웨어 프로젝트 진행 속도 높이기
스케줄 압축
- 리소스 보강
- 병렬 작업
- 병렬 작업과 비용
시간-비용 곡선
- 시간-비용 곡선 상의 점
- 이산 모델링
- 흔히 저지르는 실수 피하기
- 프로젝트 타당성
- 정규 솔루션 찾기
프로젝트 비용 요소
- 직접 비용
- 간접 비용
- 비용과 가치
- 총비용, 직접 비용, 간접 비용
- 압축과 비용 원소
- 인력 투입과 비용 요소
- 고정 비용
네트워크 압축
- 압축 흐름
10장 위험
옵션 선택
시간-위험 곡선
- 실제 시간-위험 곡선
위험 모델링
- 위험 정규화
- 위험과 플로트
- 위험과 직접 비용
- 중요도 위험
- 피보나치 위험
- 활동 위험
- 중요도 vs 활동 위험
압축과 위험
- 실행 위험
위험 압축 해제
- 압축 해제 방법
- 압축 해제 타깃
위험 메트릭
11장 실전 프로젝트 설계
미션
- 정적 아키텍처
- 콜 체인
- 활동 목록
- 네트워크 다이어그램
- 계획 가정
정규 솔루션 찾기
- 무제한 리소스 (첫 번째 반복)
- 네트워크와 리소스 문제
- 인프라스트럭처 우선 (두 번째 반복)
- 제한된 리소스
- 서브크리티컬한 상태에 빠지기 (일곱 번째 반복)
- 정규 솔루션 선택하기
네트워크 압축
- 더 나은 리소스로 압축하기
- 병렬 작업 도입하기
- 압축 반복의 끝
- 처리량 분석
효율 분석
시간 - 비용 곡선
- 시간-비용 상관관계 모델
- 죽음의 영역
계획과 위험
- 위험 압축 해제
- 시간-비용 곡선 다시 만들기
- 위험 모델링
- 위험 포함과 배제
SDP 리뷰
- 옵션 제시
12장 고급 테크닉
신의 활동
- 신의 활동 처리하기
위험 교차 지점
- 교차 지점 도출하기
압축 해제 대상 찾기
기하 위험
- 기하 중요도 위험
- 기하 피보나치 위험
- 기하 활동 위험
- 기하 위험 동작
실행 복잡도
- 순환 복잡도
- 프로젝트 타입과 복잡도
- 압축과 복잡도
대규모 프로젝트
- 복잡계와 취약성
- 네트워크의 네트워크
- 네트워크의 네트워크 설계하기
소규모 프로젝트
계층 기반 설계
- 장점과 단점
- 계층과 구성
13장 프로젝트 설계 예제
추정
- 개별 활동 추정
- 전체 프로젝트 추정
의존성과 프로젝트 네트워크
- 동작 의존성
- 동작이 아닌 의존성
- 몇 가지 의존성 뒤집기
- 확인 절차
정규 솔루션
- 네트워크 다이어그램
- 예정된 진행
- 예정 인력 분포
- 비용과 효율
- 결과 요약
압축 솔루션
- 적합한 활동 추가하기
- 리소스 할당
- 예정 진행
- 예정 인력 분포
- 비용과 효율
- 결과 요약
계층형 설계
- 계층형 설계와 위험
- 인력 분포
- 결과 요약
서브크리티컬 솔루션
- 기간, 예정 진행, 위험
- 비용과 효율
- 결과 요약
대안 비교하기
계획과 위험
- 위험 압축 해제
- 비용 다시 계산하기
SDP 리뷰 준비하기
14장 결론
프로젝트 설계 시점
- 진짜 답변
- 앞서 나가기
일반적인 가이드라인
- 아키텍처 vs 추정
- 설계 자세
- 대안
- 압축
- 계획과 위험
프로젝트 설계에 대한 설계
관점
- 서브시스템과 타임라인
핸드오프
- 주니어 핸드오프
- 시니어 핸드오프
- 시니어 개발자를 주니어 아키텍트로
실전
프로젝트 설계 보고
품질에 대하여
- 품질 관리 활동
- 품질 보장 활동
- 품질과 문화
〈부록〉
〈부록A〉 프로젝트 추적
활동 생명 주기와 상태
- 단계 종료 기준
- 단계 가중치
- 활동 상태
프로젝트 상태
- 진행 상태와 획득 가치
- 누적 공수
- 누적 간접 비용
진행 상태와 공수 추적
투영
투영과 교정 조치
- 순조롭게 진행 중
- 과소 예측
- 리소스 누수
- 과대 예측
그 밖의 다른 고려 사항
- 프로젝트의 정수
- 조금씩 범위가 달라지는 것 처리하기
- 신뢰 구축
〈부록B〉 서비스 계약 설계
이것이 바람직한 설계인가?
모듈화와 비용
- 서비스별 비용
- 통합 비용
- 최소 비용 영역
서비스와 계약
- 계약과 측면
- 서비스 설계부터 계약 설계까지
- 좋은 계약의 속성
계약 팩터링
- 설계 예제
- 하향 팩터링
- 수평 팩터링
- 상향 팩터링
계약 설계 지표
- 계약 측정하기
- 크기 지표
- 속성 피하기
- 계약 수 제한하기
- 지표 활용하기
계약 설계의 어려움
〈부록C〉 설계 표준
핵심 준수 사항
준수 사항
시스템 설계 권장 사항
프로젝트 설계 권장 사항
프로젝트 추적 권장 사항
서비스 계약 설계 권장 사항
상품필수 정보
도서명 | 올바른 소프트웨어 설계 | ||
---|---|---|---|
저자/출판사 | 유발 로이 / 영진닷컴 | ||
크기/전자책용량 | 180x230x35 | ||
쪽수 | 504 | ||
제품 구성 | 낱권 | ||
발행일 | 2024-08-02 | ||
목차 또는 책소개 | 상세설명 참조 |
배송안내
- 배송비 : 기본배송료는 2,500원 입니다. (도서,산간,오지 일부지역은 배송비가 추가될 수 있습니다)
- 본 상품의 평균 배송일은 3일입니다.(입금 확인 후) 설치 상품의 경우 다소 늦어질수 있습니다.[배송예정일은 주문시점(주문순서)에 따른 유동성이 발생하므로 평균 배송일과는 차이가 발생할 수 있습니다.]
- 본 상품의 배송 가능일은 3일 입니다. 배송 가능일이란 본 상품을 주문 하신 고객님들께 상품 배송이 가능한 기간을 의미합니다. (단, 연휴 및 공휴일은 기간 계산시 제외하며 현금 주문일 경우 입금일 기준 입니다.)
교환 및 반품안내
- 상품 택(tag)제거 또는 개봉으로 상품 가치 훼손 시에는 상품수령후 7일 이내라도 교환 및 반품이 불가능합니다.
- 저단가 상품, 일부 특가 상품은 고객 변심에 의한 교환, 반품은 고객께서 배송비를 부담하셔야 합니다(제품의 하자,배송오류는 제외)
- 일부 상품은 신모델 출시, 부품가격 변동 등 제조사 사정으로 가격이 변동될 수 있습니다.
- 신발의 경우, 실외에서 착화하였거나 사용흔적이 있는 경우에는 교환/반품 기간내라도 교환 및 반품이 불가능 합니다.
- 수제화 중 개별 주문제작상품(굽높이,발볼,사이즈 변경)의 경우에는 제작완료, 인수 후에는 교환/반품기간내라도 교환 및 반품이 불가능 합니다.
- 수입,명품 제품의 경우, 제품 및 본 상품의 박스 훼손, 분실 등으로 인한 상품 가치 훼손 시 교환 및 반품이 불가능 하오니, 양해 바랍니다.
- 일부 특가 상품의 경우, 인수 후에는 제품 하자나 오배송의 경우를 제외한 고객님의 단순변심에 의한 교환, 반품이 불가능할 수 있사오니, 각 상품의 상품상세정보를 꼭 참조하십시오.
환불안내
AS안내
- 소비자분쟁해결 기준(공정거래위원회 고시)에 따라 피해를 보상받을 수 있습니다.
- A/S는 판매자에게 문의하시기 바랍니다.
이미지 확대보기
올바른 소프트웨어 설계
비밀번호 인증
글 작성시 설정한 비밀번호를 입력해 주세요.
확인장바구니 담기
상품이 장바구니에 담겼습니다.
바로 확인하시겠습니까?
찜 리스트 담기
상품이 찜 리스트에 담겼습니다.
바로 확인하시겠습니까?