본문으로 바로가기
TaeyoungKim.dev

backlog·WBS·release·SLA 차이: 개발 프로젝트 용어를 흐름으로 이해하기

클라우드작성 약 10분 읽기TaeyoungKim
LinkedInX

회의에서 “백로그에 넣어 주세요”, “WBS에 반영했나요?”, “이번 릴리즈에 포함되나요?”, “SLA에 영향은 없나요?”라는 말이 연달아 나오면 모두 같은 일을 표현하는 것처럼 들릴 수 있다. 하지만 네 용어가 가리키는 대상과 시점은 다르다.

작은 알림 기능 하나가 아이디어에서 운영 서비스로 넘어가는 흐름을 따라가 보자. backlog는 무엇을 할지 고르는 목록, WBS는 선택한 일을 어떻게 나눌지 보여 주는 구조, release는 사용자에게 제공할 변경 묶음, SLA는 운영 중 지켜야 할 서비스 수준의 합의다. 이 차이를 알면 회의에서 같은 기능을 두고도 서로 다른 문서를 찾는 이유가 보인다.

아래 그림은 후보가 작업으로 분해되고 릴리즈로 묶여 배포된 뒤 운영 약속으로 이어지는 전체 흐름을 보여 준다.

같은 알림 기능이 단계마다 다른 이름을 만난다

가상의 팀이 “결제 실패 시 관리자에게 알림을 보낸다”는 기능을 준비한다고 하자. 이 기능은 다음과 같이 이동한다.

단계팀이 답하려는 질문대표 용어남는 결과
후보 정리무엇을 먼저 만들까?backlog, story우선순위가 있는 요구사항
작업 계획어떤 작업으로 나눌까?WBS완료 가능한 작업 묶음
개발 생명주기언제 분석·구현·시험·운영할까?SDLC단계별 활동과 산출물
제공어떤 변경을 사용자에게 내놓을까?release버전과 변경 묶음
배포어느 환경에 실행 상태로 옮길까?deployment환경에 반영된 소프트웨어
운영어느 수준으로 서비스를 제공할까?availability, SLA측정 지표와 서비스 합의

한 기능이 여러 표와 문서에 나타나는 것은 중복 작성이라서가 아니다. 단계마다 해결하려는 질문이 달라서 같은 기능을 다른 관점으로 보는 것이다.

backlog와 WBS는 둘 다 할 일 목록일까?

backlog는 제품이나 서비스에 필요한 요구사항과 개선 후보를 모아 우선순위를 정하는 목록이다. 아직 구현하기로 확정하지 않은 항목도 들어갈 수 있고, 사용자 가치와 위험이 달라지면 순서도 바뀔 수 있다. Scrum Guide도 Product Backlog를 복잡한 문제를 해결하기 위해 필요한 작업을 정렬한 목록으로 설명한다.

알림 기능의 백로그 항목은 다음처럼 사용자 관점에 가깝다.

결제 실패를 놓치지 않도록 담당자가 알림을 받을 수 있어야 한다.

story는 이런 요구를 짧은 사용자 시나리오로 표현할 때 쓰는 말이다. 백로그는 요구사항을 단순히 쌓아 두는 창고가 아니라, 무엇을 먼저 다룰지 계속 판단하는 목록이다.

반면 WBS(Work Breakdown Structure)는 프로젝트 범위를 완료 가능한 작업 단위로 나누는 작업 분할 구조다. 같은 알림 기능을 WBS로 보면 다음처럼 구현과 검증에 필요한 일이 드러난다.

text
결제 실패 알림
├─ 실패 이벤트 정의
├─ 알림 메시지 작성
├─ 전송 모듈 연결
├─ 재시도 규칙 구현
└─ 성공·실패 시험

백로그 항목을 WBS에 복사한다고 계획이 완성되는 것은 아니다. “알림 기능 만들기” 한 줄만 있으면 누가 무엇을 완료해야 하는지, 시험과 재시도가 범위에 들어가는지 알기 어렵다. 반대로 WBS가 세밀해도 왜 이 기능을 먼저 해야 하는지 알려 주지는 않는다.

구분backlogWBS
중심 질문무엇을 할 가치가 있는가?선택한 범위를 어떻게 나눌까?
변화우선순위에 따라 계속 재정렬될 수 있음합의한 프로젝트 범위를 작업 계층으로 구체화
흔한 실수목록에 있으면 확정 일정이라고 생각함작업을 나눴으니 우선순위도 정해졌다고 생각함

따라서 “백로그에 있다”는 말만으로 이번 일정에 포함됐다고 단정할 수 없다. 선택된 범위인지, 담당 작업과 완료 조건이 구체화됐는지를 따로 확인해야 한다.

SDLC와 TCO는 전체 생애주기를 본다

SDLC(Software Development Life Cycle)는 소프트웨어를 정의하고 개발하며 시험·배포·운영·유지보수하는 전체 생명주기를 단계로 보는 개념이다. 조직에 따라 단계 이름과 반복 방식은 다르지만, 특정 작업 목록 하나를 뜻하지는 않는다.

알림 기능을 예로 들면 요구사항 확인, 이벤트와 메시지 설계, 구현, 시험, 배포, 운영 확인이 모두 생명주기에 들어간다. 애자일 방식이라고 해서 분석과 시험이 사라지는 것도 아니다. 짧은 주기 안에서 이 활동을 반복할 뿐이다.

agile model은 변경에 대응하며 반복적·점진적으로 개발하는 접근을 가리킨다. visibility는 짧은 주기로 만든 결과와 진행 상태를 이해관계자가 확인할 수 있는 정도다. 둘을 “문서를 만들지 않는 방식”이나 “계획 없이 바로 코딩하는 방식”으로 이해하면 백로그와 완료 조건이 오히려 더 흐려진다.

TCO는 구매 가격이 아니라 운영이 끝날 때까지의 비용이다

TCO(Total Cost of Ownership)는 시스템을 도입할 때 낸 비용만이 아니라 운영, 유지보수, 업그레이드, 교육과 폐기까지 생애주기에 드는 총소유비용이다.

알림 서비스를 직접 만들지 외부 서비스를 쓸지 비교할 때 월 사용료만 보면 외부 서비스가 비싸 보일 수 있다. 직접 운영한다면 개발 시간, 장애 대응, 보안 업데이트, 관측 도구와 담당자 교육도 비용에 포함된다. 반대로 외부 서비스도 사용량 증가, 데이터 이전과 공급자 변경 비용을 확인해야 한다.

TCO는 정확한 견적 없이 “직접 개발이 항상 싸다” 또는 “관리형 서비스가 항상 싸다”라고 결론 내리는 용어가 아니다. 같은 기간과 범위에서 생애주기 전체의 비용 항목을 비교하기 위한 관점이다.

release와 deployment는 같은 날 일어날 수 있지만 같은 뜻은 아니다

release는 검증한 기능과 변경 사항을 특정 버전으로 묶어 사용자나 운영 환경에 제공하는 일 또는 그 결과물이다. deployment는 빌드한 소프트웨어를 특정 환경에 설치하거나 실행 상태로 반영하는 과정이다. Microsoft Learn의 release와 deployment 구분에서도 하나의 릴리즈를 같은 단계에 여러 번 배포할 수 있다고 설명한다.

두 작업은 같은 날 이어서 실행할 수도 있지만 항상 일치하지는 않는다.

  • 운영 환경에 먼저 배포한 뒤 기능 플래그를 켜 사용자에게 공개할 수 있다.
  • 사용자에게 릴리즈를 발표했지만 지역이나 사용자 그룹별로 순차 배포할 수 있다.
  • 시험 환경 배포는 여러 번 했어도 사용자용 릴리즈는 한 번일 수 있다.
  • 배포에 문제가 생기면 이전 실행 버전으로 되돌리는 rollback이 필요할 수 있다.

즉 “배포가 성공했다”는 말은 파일이나 컨테이너가 환경에 반영됐다는 뜻일 수 있다. 사용자가 실제로 기능을 쓸 수 있는지, 모든 대상에게 제공됐는지, 운영 확인이 끝났는지는 별도 질문이다. 배포 완료를 곧바로 릴리즈 완료라고 기록하면 아직 기능 플래그가 꺼진 상태나 순차 제공 중인 상태를 놓칠 수 있다.

release note에는 무엇을 남길까?

release note는 이번 릴리즈의 기능, 수정, 알려진 제약처럼 사용자가 알아야 할 변경 정보를 정리한 문서다. Git 커밋 목록을 그대로 붙이는 문서와는 목적이 다르다.

알림 기능의 릴리즈 노트에는 “결제 실패 알림 추가”뿐 아니라 활성화 조건, 설정 방법, 알려진 제한이 필요할 수 있다. 내부 리팩터링처럼 사용자 행동에 영향이 없는 세부사항은 팀 기록에는 필요해도 사용자용 릴리즈 노트의 중심은 아니다.

availability와 SLA는 측정값과 합의의 차이다

availability는 사용자가 필요할 때 시스템이나 서비스가 정상 기능을 제공할 수 있는 정도인 가용성이다. 어떤 요청을 성공으로 볼지, 어느 시간대를 측정할지, 계획된 작업을 어떻게 취급할지에 따라 같은 서비스도 수치가 달라질 수 있다.

SLA(Service Level Agreement)는 서비스 제공자와 이용자가 가용성, 응답 시간, 지원 범위, 측정 방법과 책임 등을 합의한 문서다. 가용성은 SLA에 들어갈 수 있는 지표 중 하나이지 SLA 자체와 같은 말이 아니다.

알림 전송 성공률이 떨어졌다고 해 보자. 먼저 실제 측정 지표와 영향 범위를 확인해야 한다. 그다음 합의한 SLA의 대상 서비스, 측정 기간, 제외 조건과 책임을 대조한다. “한 번 실패했으니 SLA 위반”이나 “월평균 수치가 좋아 보이니 문제없음”처럼 결론부터 내리면 측정 대상과 합의 범위를 놓친다.

용어뜻확인할 것
availability필요할 때 정상 서비스를 제공할 수 있는 정도성공 기준, 측정 기간, 대상 기능
SLA제공자와 이용자가 합의한 서비스 수준지표, 측정 방법, 지원 범위, 책임

장애 뒤 복구 시점과 데이터 손실 범위를 말하는 RTO·RPO, 장애에도 서비스를 지속하는 HA는 이 흐름과 관련 있지만 서로 다른 질문이다. 가용성이나 SLA의 동의어로 한꺼번에 외우기보다 복구·연속성 용어로 따로 묶는 편이 정확하다.

회의에서 용어를 어떻게 확인하면 좋을까?

프로젝트 용어가 모호하게 쓰일 때는 단어의 사전 뜻을 바로잡는 데서 멈추지 말고, 상대가 어떤 결정과 결과물을 말하는지 확인한다.

  1. backlog라면 우선순위 후보인지 확정 범위인지 묻는다.
  2. WBS라면 작업 단위와 완료 조건이 충분히 나뉘었는지 본다.
  3. release라면 사용자에게 제공되는 버전과 범위를 확인한다.
  4. deployment라면 대상 환경, 반영 상태와 되돌리기 방법을 확인한다.
  5. availability라면 성공 기준과 측정 기간을 확인한다.
  6. SLA라면 합의한 대상, 측정 방법과 책임을 확인한다.

용어를 정확히 쓰는 목적은 영어 시험에서 정답을 맞히는 것이 아니다. “배포됐으니 사용자도 쓸 수 있다”, “백로그에 있으니 일정이 확정됐다” 같은 성급한 연결을 끊고, 다음에 확인할 문서와 상태를 빠르게 찾는 데 있다.

핵심 요약

backlog는 할 일의 우선순위를 판단하는 목록이고, WBS는 선택한 범위를 완료 가능한 작업으로 나눈 구조다. SDLC는 분석부터 운영·유지보수까지의 전체 생명주기다. release는 사용자에게 제공할 변경 묶음이며, deployment는 특정 환경에 소프트웨어를 반영하는 과정이다. release note는 그 변경을 사용자 관점에서 설명한다.

운영 단계에서는 availability가 서비스 가능 정도를 나타내는 측정 개념이고, SLA는 그 지표와 측정 방법·책임을 포함한 합의다. TCO는 도입 가격을 넘어 운영과 폐기까지의 전체 비용을 비교한다.

단어기억할 핵심
backlog무엇을 먼저 할지 판단하는 후보 목록
WBS선택한 일을 완료 가능한 작업으로 분해한 구조
SDLC정의·개발·시험·배포·운영·유지보수의 생명주기
release사용자에게 제공할 검증된 변경 묶음
deployment소프트웨어를 대상 환경에 반영하는 과정
release note사용자가 알아야 할 변경 설명
availability필요할 때 정상 서비스를 제공하는 정도
SLA서비스 수준, 측정 방법과 책임에 관한 합의
TCO도입부터 운영·폐기까지의 총소유비용

작성자

TaeyoungKim

기초 개념을 구현과 검증, 실제 운영 판단까지 연결해 기록합니다.

#backlog#WBS#release#deployment#SLA#SDLC#개발자 영어

함께 읽으면 좋은 글