N° 01 — 목록

'quality-attributes' (4)

  1. Infra Architecture/Foundations

    Foundations - 02. 인프라 품질 속성

    가용성 99.9%는 1년에 9시간 다운되겠다는 약속이다AWS S3의 공식 문서에는 "11개의 9"라는 숫자가 등장한다. 99.999999999% 내구성(durability). 읽기 쉽게 풀면, 1,000만 개의 객체를 1만 년 동안 저장해도 1개가 손실될까 말까 한다는 뜻이다. 이 숫자가 의미 있으려면 "11개의 9"가 정확히 무엇을 재는지, 가용성(availability)과 내구성(durability)이 어떻게 다른지, 그리고 이런 수치를 SLO(Service Level Objective)로 채택했을 때 무엇을 약속한 건지 각각 명확해야 한다.흔히 "품질 속성"이라 부르는 "~성"들은 인프라 결정을 갈라놓는 힘이다. 두 인프라가 똑같이 "웹 서비스를 호스팅한다"는 기능을 수행해도 구조가 전혀 달라지는 ..

    · 댓글
  2. Infra Architecture/Foundations

    Foundations - 01. 인프라 아키텍처란 무엇인가

    인프라는 도시의 도로망과 같다 — 한 번 깔면 바꾸기 어렵다2017년 2월 28일, 미국 동부 시간 오전 9시 37분. 한 AWS 엔지니어가 S3 청구 시스템 디버깅을 위해 표준 절차에 따라 명령 하나를 실행했다. 문법은 맞았지만 대상이 조금 달랐다. 그 한 번의 명령이 S3 인덱스 서브시스템의 용량을 계산하는 데 필요한 서버를 대거 오프라인으로 만들었다. 이후 약 4시간 동안 Slack, Trello, Quora, 이미지 호스팅 서비스들이 줄줄이 멈췄다. 인터넷의 상당 부분이 한 리전의 한 서브시스템 장애에 종속돼 있었다는 게 그제야 드러났다.이 사건이 보여주는 핵심은 "AWS가 부실했다"가 아니다. 오히려 AWS는 그 장애를 4시간 안에 복구하며 1차 사고 보고서를 당일에 공개했고, 며칠 뒤 상세 p..

    · 댓글
  3. Software Architecture/Foundations

    Foundations - 02. 품질 속성

    "비기능적 요구사항"이라는 이름이 아키텍처를 망치는 이유차를 산다고 하자. 두 차 모두 "달린다, 멈춘다, 돈다"라는 같은 기능을 한다. 그런데 한 대는 리터당 15km를 가고 충돌 테스트 별 다섯 개를 받았으며 정비가 쉽고, 다른 대는 리터당 5km에 충돌 테스트 별 하나에 부품이 비싸다. 같은 기능을 해도 이 두 차는 전혀 다른 차다. 그 차이를 만드는 것 — 연비, 안전, 정비 편의성, 가속력 — 이 차의 품질 속성이다.소프트웨어도 같다. 주문을 받고 결제하고 재고를 깎는 같은 기능을 해도, 하루 1만 건을 버티는 시스템과 1억 건을 버티는 시스템은 같은 기능의 다른 "차"다. 그런데 전통적으로 이런 차이를 "비기능적 요구사항"이라 불렀다. 이 이름이 문제다."비기능적"이라는 말의 함정요구사항 문서..

    · 댓글 1
  4. Software Architecture/Foundations

    Foundations - 01. 아키텍처란 무엇인가

    코드를 짜는 순간, 아키텍처는 이미 정해져 있다집을 지을 때 거실에서 영화를 보고 주방에서 요리하고 침실에서 잔다는 방의 용도가 같아도, 골조를 목조로 세울지 철골 콘크리트로 세울지는 다른 문제다. 지진이 오거나 3층을 증축하려 할 때 결과를 갈라놓는 건 방의 용도가 아니라 이 골조다. 소프트웨어도 비슷하다. 코드가 "무엇을 하는가"를 정하면, 아키텍처는 그 코드가 "어떤 구조로 세워졌는가"를 결정한다. 그리고 벽돌을 쌓는 순간 골조는 이미 정해진다 — "우린 스타트업이라 아키텍처 같은 건 안 한다"는 말이 성립하지 않는다.아키텍처는 부정할 수 없다소프트웨어 아키텍처 분야의 고전 에서 Bass·Clements·Kazman은 아키텍처를 "시스템에 대해 추론할 때 필요한 구조들의 집합"이라 정의한다. 요소,..

    · 댓글