Knowledge
인프라 구성도를 그리기 전에 확인해야 할 것들
고객이 말한 장비 수를 그대로 구성도에 옮기기 전에, 설계자가 확인해야 할 요구사항과 판단 기준을 정리합니다.
Infrastructure · Architecture
고객이 “서버 3대 필요해요”라고 말했을 때, 설계자가 그대로 3대를 그려서 구성도를 제출하면 어떤 일이 벌어질까?
많은 경우, 실제 운영 단계에서 “이 구성으로는 안 된다”는 피드백이 나오거나, 나중에 장애가 발생했을 때 책임이 설계자에게 돌아온다. 고객의 말과 시스템이 실제로 필요한 것 사이에는 항상 간격이 있기 때문이다.
이 글에서는 인프라 구성도를 그리기 전에 설계자가 확인해야 할 요구사항 항목과 판단 기준을 정리한다. 기술사 토픽에서 다루는 요구사항 분석의 개념을 실무 설계 관점으로 재구성한 내용이다.
왜 요구사항 확인이 먼저인가
인프라 설계에서 가장 흔한 실수 중 하나는 고객이 말한 장비 수를 그대로 수용하는 것이다.
- 고객: “웹 서버 2대, DB 서버 1대면 되죠?”
- 설계자: “알겠습니다.” → 구성도 작성
이 대화가 위험한 이유는 다음과 같다.
- 고객은 자신의 업무 요구를 기술 용어로 정확히 표현하지 못하는 경우가 많다.
- 가용성, 성능, 보안, 운영 편의성 등의 비기능 요구는 명시되지 않는 경우가 대부분이다.
- 나중에 “이중화가 안 되어 있다”, “백업이 없다”, “장애 시 복구가 불가능하다”는 지적이 나오면, 설계 단계에서 확인하지 않은 책임이 남는다.
요구사항을 확인하는 과정은 단순히 “질문을 많이 하는 것”이 아니라, 설계 판단의 근거를 만드는 과정이다.
설계자가 확인해야 할 주요 항목
아래는 실제 프로젝트에서 구성도 작성 전에 확인하는 항목들이다. 모든 항목을 한 번에 다 물어보기보다는, 프로젝트 성격에 따라 우선순위를 두고 진행한다.
1. 업무·서비스 요구 (기능적 측면)
- 이 시스템이 어떤 업무를 지원하는가?
- 사용자 수와 동시 접속 규모는 어느 정도인가?
- 핵심 트랜잭션(예: 주문, 결제, 조회)의 처리량은?
- 외부 시스템과의 연동 지점은 어디인가?
판단 포인트: “서버 3대”라는 말 뒤에 숨어 있는 실제 업무 부하를 추정할 수 있어야 한다. 부하를 모르면 Capacity 산정도 불가능하다.
2. 가용성과 장애 대응
- 허용 가능한 다운타임은 어느 정도인가? (연간 몇 시간, 몇 분?)
- 단일 장애점(SPOF)이 발생했을 때 서비스가 중단되어도 되는가?
- 이중화가 필요한 영역은 어디인가? (웹, WAS, DB, 네트워크, 스토리지 등)
- 장애 발생 시 복구 목표 시간(RTO)과 데이터 손실 허용 범위(RPO)는?
판단 포인트: 고객이 “이중화해 주세요”라고 해도, 어느 레이어까지 이중화할 것인지, 그리고 그 비용 대비 효과를 설명할 수 있어야 한다. “서버 2대면 이중화 완료”가 아닌 경우가 대부분이다.
3. 성능과 용량
- 피크 시간대 예상 부하
- 데이터 증가율과 보관 기간
- 응답 시간 요구사항 (예: 페이지 로딩 3초 이내)
- 향후 1~2년 확장 계획
판단 포인트: 현재 기준으로만 설계하면 6개월 뒤에 증설이 필요한 구성이 된다. 반대로 과도하게 잡으면 비용 낭비가 된다. 근거 있는 가정을 명시하는 것이 중요하다.
4. 보안과 컴플라이언스
- 개인정보 또는 민감 데이터 처리 여부
- 접근 제어 요구 (내부망/외부망, 권한 분리)
- 감사 로그, 암호화 요구
- 관련 규정(개인정보보호법, 금융권 보안 기준 등) 적용 여부
판단 포인트: 보안 요구를 나중에 추가하면 구성 전체가 바뀌는 경우가 많다. 특히 DMZ 구성, 방화벽 배치, 데이터 암호화 위치 등은 초기 설계에 반영해야 한다.
5. 운영과 유지보수
- 누가 운영할 것인가? (고객사 인력, 외부 위탁)
- 모니터링·알림·백업 요구
- 패치·업그레이드 주기와 방법
- 변경 관리 절차
판단 포인트: 설계자가 운영까지 책임지지 않더라도, 운영이 어려운 구성은 결국 문제로 돌아온다. “이 구성으로 운영할 수 있는가?”를 스스로 물어봐야 한다.
위 항목들을 실제 프로젝트에 적용해서 요구사항 분석서와 구성도를 작성하는 과정은 인프런 「처음 시작하는 IT 인프라 설계」 과정에서 가상 사례로 다룹니다.
확인 결과를 설계에 반영하는 방법
요구사항을 확인한 뒤에는 다음과 같이 정리하면 이후 구성도 작업이 수월해진다.
- 가정과 제약 명시: “동시 사용자 500명, 피크 TPS 50을 가정”, “연간 다운타임 8시간 이내 허용”
- 우선순위 표시: Must / Should / Could 로 구분
- 미확인 항목 표시: 아직 확인하지 못한 사항은 “확인 필요”로 남겨 두고, 구성도에 영향이 있는 부분은 별도 표시
- 대안 제시: 비용이 중요한 경우, “최소 구성”과 “권장 구성”을 함께 제시
이 과정을 거치면 구성도는 단순한 그림이 아니라, 판단 근거가 있는 설계 산출물이 된다.
실무에서 자주 발생하는 상황
- 고객이 “일단 그려 주세요”라고 재촉할 때 → 최소한의 확인 항목(가용성, 데이터 중요도, 사용자 규모)만이라도 문서화하고 진행
- 요구사항이 계속 바뀌는 프로젝트 → 변경 이력을 남기고, 구성도에 버전을 관리
- “예산이 정해져 있다”는 제약 → 제약 안에서 가능한 최적 구성을 제시하되, 리스크를 명시
요구사항 확인은 설계 시간을 늘리는 작업이 아니다. 나중에 재작업하거나 장애로 이어지는 시간을 줄이는 작업이다.
이 내용은 인프라 아키텍처 설계 과정에서 요구사항을 분석하고 구성도로 연결하는 실무 접근을 정리한 것이다. 관련 주제(HA 설계, SPOF 분석, 구성도 작성 원칙 등)는 지속적으로 다룬다.
이 글에서 정리한 판단 기준을 바탕으로 실제 설계 산출물을 만들어보고 싶은 분은 아래 과정에서 단계별로 따라가 보실 수 있습니다.
- 요구사항 분류와 확인 질문 작성
- 설계 판단 근거 문서화
- 구성도 초안 작성