더북(TheBook)

보안 같은 품질 속성과 마찬가지로 신뢰도 문제는 가장 약한 고리 문제이기 때문입니다. 아키텍처, 설계, 구현 중 어느 하나라도 취약하면 전체 시스템 신뢰도는 떨어집니다. 즉, 아키텍처 자체로는 전체 시스템의 신뢰도를 보장할 수 없지만, 특정 수준의 신뢰도를 달성할 수 있는 필요조건이 됩니다.

이처럼 아키텍처는 시스템 신뢰도를 위한 전제 조건으로, 시스템 신뢰도에 상당한 영향을 미칩니다. 예를 들어 코드 중복 제거와 장애 조치(fail-over)를 명시적으로 고려한 아키텍처는 그렇지 않은 아키텍처보다 더 높은 신뢰도를 보장할 수 있습니다. 하지만 소프트웨어 구현 단계에서는 아키텍처가 보장하는 그 이상으로 신뢰도를 높이기가 매우 어렵습니다. 대체로 소프트웨어를 구현하면서 아키텍처가 보장하는 수준보다 신뢰도가 더 떨어질 가능성이 많기 때문입니다.

한 가지 예로, 서버에 장애가 생겼을 때 클라이언트 안정성을 보장하는 문제를 생각해 보겠습니다. 일단 클라이언트는 장애를 감지할 수 있어야 합니다. 그리고 장애가 발생했을 때 서버 요청을 다시 시도할 시점을 판단해야 하며, 일정 기간 서버 요청을 중지하여 서버 장애를 악화시키지 말아야 합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.