소프트웨어 아키텍처 101 내용 중 자율 평가 문제에 대한 제가 생각하는 답을 정리했습니다. 책에서 가르쳐준 내용을 토대로 최대한 정답이라고 생각하는 내용을 적었으나 잘못 정리 했거나 틀린 답을 적었을 수 있습니다. 정리한 내용 중 책의 저작권을 위배하는 사항이 있다면 내용이 수정될 수 있습니다.
1 어떤 속성이 아키텍처 특성이 되려면 충족해야 할 세 기준은 무엇인가요?
- 비도메인 설계 고려 사항을 명시한다.
- 설계의 구조적 측면에 영향을 미친다.
- 애플리케이션 성공에 (절대적으로) 중요하다.
2 암묵적 특성과 명시적 특성의 차이점은 무엇인가요? 각각의 예를 들어보세요.
암묵적 아키텍처 특성은 요구사항 정의서에는 거의 안 나오지만 프로젝트 성공을 위해 꼭 필요한 특성들이다.
예를들어, 가용성, 신뢰성, 보안은 거의 모든 애플리케이션에 필요한 특성이지만 설계 문서에는 잘 등장하지 않는다.
명시적 아키텍처 특성은 요구사항 정의서나 다른 지침서에 기재된다.
3 운영 특성(operational characteristic)의 예를 들어보세요.
| 특성 | 설명 |
|---|---|
| 가용성 | 시스템이 얼마나 오랫동안 사용 가능해야 하나? |
| 연속성 | 재해 복구 능력 |
| 성능 | 스트레스 테스트, 피크 분석, 기능의 사용 빈도 분석, 필요 용량, 응답 시간 등 |
| 복구성 | 장애 발생 시 얼마나 신속하게 시스템을 재가동 시켜야 하나? |
| 신뢰성/안전 | 시스템에 fail-safe 가 필요한가? |
| 견고성 | 프로그램 실행 중 인터넷 접속 끊김, 정전, 하드웨어 실패 등 에러 및 경계 조건을 감당하는 능력 |
| 확장성 | 유저 수, 요청 수가 늘어나도 시스템이 그에 맞는 성능을 발휘하는 능력 |
4 구조 특성(structural characteristic)의 예를 들어보세요.
| 특성 | 설명 |
|---|---|
| 설정성 | 최종 유저가 소프트웨어 설정을 쉽게 바꿀 수 있는가? |
| 신장성 | 새로운 기능을 삽입하는 일의 중요성 |
| 설치성 | 필요한 모든 플랫폼에 시스템을 얼마나 손쉽게 설치할 수 있나? |
| 활용성/재사용 | 공통 컴포넌트를 여러 제품에서 활용할 수 있나? |
| 지역성 | 데이터를 입력/조회하는 화면에서 다국어가 지원되는가? |
| 유지보수성 | 시스템을 얼마나 쉽게 변경/개선할 수 있나? |
| 이식성 | 하나 이상의 플랫폼에서 시스템을 실행할 수 있나? |
| 지원성 | 애플리케이션은 어느 정도의 기술 지원을 필요로 하나? |
| 업그레이드성 | 이 애플리케이션/솔루션의 구 버전을 새 버전으로 쉽고 빠르게 업그레이드 할 수 있는가? |
5 공통 특성(cross-cutting characteristic)의 예를 들어보세요.
| 특성 | 설명 |
|---|---|
| 접근성 | 색맹, 청각 장애인 등 모든 유저가 접근하는 데 불편함이 없나? |
| 보관성 | 데이터를 따로 아카이빙 해야하나, 아니면 일정 시간 경과 후 삭제해야 하나? |
| 인증 | 유저가 본인이 맞다는 것을 증명하기 위해 필요한 보안 요구사항 |
| 인가 | 유저가 애플리케이션에서 정해진 기능만 사용할 수 있도록 강제하는 보안 요구사항 |
| 합법성 | 시스템 운영상 법적 제약조건이 있는가? |
| 프라이버시 | 회사 내부 임직원의 트랜잭션을 외부에 드러내지 않는 기능 |
| 보안 | 데이터를 암호화 한 후 데이터베이스에 보관해야하나? |
| 사용성/성취성 | 유저가 애플리케이션/솔루션을 이용하여 원하는 목적을 달성하기 위해 필요한 교육/훈련 수준 |

댓글을 달려면 로그인해야 합니다.