DevOps, 피드백 루프, 그리고 AI 시대의 관측 가능성(Observability)
핵심 요약
DevOps의 진짜 목표는 개발자와 프로덕션(운영 환경)을 하나의 피드백 루프로 연결하는 것이었지만, 도구 한계 때문에 대부분 실패했습니다.
AI와 표준화된 텔레메트리(예: OpenTelemetry) 덕분에 이제는 "개발자 중심의 관측 가능성"을 현실적으로 구현할 수 있게 되었고, 앞으로의 병목은 코드 작성 속도가 아니라 "프로덕션에서 이해하고 검증하는 능력"이 됩니다.
개발자는 점점 코드를 많이 치는 사람이 아니라, 실험을 설계하고 결과를 해석하며 시스템을 이해하는 "실험 설계자"와 "과학자"에 가까워질 것입니다.
DevOps의 진짜 목표와 왜 실패한 것처럼 보이는가
DevOps는 표면적으로는 "협업, 공감, 사일로 제거"를 이야기했지만, 근본적인 목표는 훨씬 단순했습니다.
개발자가 자신이 작성한 코드가 프로덕션에서 어떤 결과를 내는지, 직접 보고 배우게 만드는 단일 피드백 루프를 만드는 것이었습니다.
그러나 대부분의 조직에서 개발자들은 여전히 프로덕션을 잘 보지 않고, 운영팀은 문제를 떠안은 채 긴급 대응을 반복합니다.
이는 개발자들이 무능해서가 아니라, 기존 도구와 기술이 이 목적을 달성하기에 너무 어렵고 비효율적이었기 때문입니다.
무한한 예산·시간·인력이 있으면 어떤 도구로도 이 루프를 만들 수 있지만, 평균적인 조직에겐 그게 현실이 아니었습니다.
비즈니스 가치 피드백 루프: "배포할 때만 배운다"
소프트웨어가 비즈니스 가치를 만드는 과정은 단순하게 그릴 수 있습니다.
새 코드를 배포하고, 사용자와 시스템의 반응을 관찰하고, 그로부터 배우는 순환입니다. "빌드" 단계에서 아무리 많은 일이 있어도, 배포되기 전에는 비즈니스 관점의 새로운 학습은 없습니다.
그래서 "자주 배포하라"는 말이 나옵니다. 배포할 때마다 사용자 행동, 성능, 실패 패턴에 대해 새로운 사실을 수집할 수 있기 때문입니다.
하지만 배포 후에 관찰하지 않으면, 이 루프는 열린 채로 남습니다. 그저 "코드가 나갔다"는 사실만 있고, 학습이 없습니다.
관측 가능성(Observability)은 이 루프를 닫게 해 주는 감각 기관입니다. 배포와 실제 세계 사이에 정보를 흐르게 만드는 역할을 합니다.
개발자가 매일 도는 루프: 테스트만으로는 "새로운 것"을 못 배운다
개발자의 일상적인 루프는 빌드 → 테스트 → 수정의 반복입니다.
이 루프는 "내 코드가 설계한 사양과 테스트 케이스를 통과하는가?"를 확인해 줍니다. 즉, 내가 기대한 대로 동작한다는 것만 알려줍니다.
하지만 비즈니스 관점에서 중요한 건 "사용자가 실제로 어떻게 쓰는지, 어떤 조건에서 깨지는지, 어떤 부분에서 느리다고 느끼는지"입니다.
이런 것은 로컬 테스트나 CI 테스트로는 알 수 없고, 오직 프로덕션에서만 드러납니다.
따라서 개발자 입장에서 진짜 중요한 학습 루프는 "배포 이후의 관찰"인데, 전통적인 개발 흐름에서는 여기가 끊겨 있는 경우가 많습니다.
운영(Ops)이 도는 루프: 느리고 노이즈 많고, 대부분은 소방 활동
운영팀(SRE, 플랫폼, 인프라 등)은 프로덕션에서 발생하는 문제에 대응하는 루프를 돌립니다.
알람이 울리거나 고객이 큰 소리로 항의하면, 그때부터 프로덕션에 들어가 원인을 찾고, 서비스 복구를 위해 이것저것 시도합니다.
이 루프는 항상 "사후 대응"입니다. 이미 문제가 발생한 이후에야 시작되고, 원인이 코드 변경인지, 트래픽 패턴인지, 인프라 버그인지, 오래된 누적 문제인지도 처음에는 불명확합니다.
복잡한 분산 시스템에서, 운영자는 "왜 이런 현상이 생겼는지 끝내 이해하지 못한 채 넘어가는" 경우도 드물지 않습니다.
이 루프는 느리고, 정보가 손실되기 쉽고, 사람에 따라 이해 수준이 제각각이어서 학습 효율이 낮습니다.
개발과 운영: 관점과 관심사가 구조적으로 다르다
운영팀의 임무는 시스템을 안정적이고 신뢰 가능하게 유지하는 것입니다.
그래서 장애, 성능 저하, 보안 문제, 리소스 고갈처럼 "위험"과 "파손"에 집중합니다. 정상이라면 더 이상 깊이 파고들 필요가 없다고 느끼기도 합니다.
반대로 개발자는 "새로운 가치"에 관심이 있습니다. 어떤 실험을 할지, 어떤 기능이 사용자에게 먹히는지, 유저 여정이 어디서 이탈하는지, 퍼널이 어떻게 생겼는지 등이 중요합니다.
비유하자면, 운영은 건축물의 안전을 점검하는 "감리/검사관"이고, 개발은 공간을 상상하고 설계하는 "건축가"에 가깝습니다.
이 둘은 서로 필요하지만, 보는 지표와 질문이 다르기 때문에 같은 도구·같은 대시보드를 두고도 전혀 다른 경험을 합니다.
왜 개발자는 기존 운영 도구를 잘 안 보는가
많은 리더가 "개발자가 자기 텔레메트리를 보게 하려면 어떻게 해야 하느냐"를 고민합니다.
첫 번째 장벽은 계측(instrumentation) 자체의 복잡함입니다. 개발자는 기능을 만들다가 텔레메트리를 추가하려고 하면, "이 값을 메트릭으로 보낼까, 로그에 남길까, 트레이스로 보낼까?" 같은 선택지 앞에서 멈춰 서게 됩니다.
메트릭이라면 카운터/게이지/히스토그램/요약 중 무엇을 쓸지, 어떤 태그를 붙일지, 고카디널리티 문제나 비용을 어떻게 고려할지 등, 본업과는 거리가 먼 결정을 잔뜩 해야 합니다.
간신히 계측을 끝내도, 배포 후에 원하는 정보를 보려면 각기 다른 도구를 열고, 인덱스나 쿼리, 대시보드 구성을 공부해야 합니다.
두 번째 장벽은 "노력 대비 보상"입니다. 엄청난 수고 끝에 얻은 화면이 단순 집계, 대략적인 평균, 버킷으로 뭉개진 히스토그램뿐이라면, 이걸로 제품 경험을 섬세히 이해하기는 어렵습니다.
이 모든 과정을 지나도 얻게 되는 인사이트가 빈약하다면, 개발자가 자발적으로 이 도구들을 즐겨 쓸 이유가 거의 없습니다.
패러다임 전환: "개발자가 도구에 가는 것"에서 "텔레메트리가 개발자에게 오는 것"으로
현실적으로 대부분의 개발자는 IDE와 터미널, 그리고 메신저(예: Slack)에서 벗어나고 싶어하지 않습니다.
따라서 "대시보드에 좀 들어가 보라"고 계속 설득하는 대신, 아예 텔레메트리와 분석 결과를 개발 환경 안으로 끌어오는 쪽이 더 효과적입니다.
챗 인터페이스는 이 지점에서 강력합니다. "이번에 배포한 checkout 서비스의 오류율을 버전별로 보여줘"처럼 자연어로 질문하면, 관련 텔레메트리를 모아 요약해 주는 식입니다.
중요한 변화는, 개발자가 메트릭/로그/트레이스의 내부 형식을 깊이 이해하지 않아도 "프로덕션에 무슨 일이 일어나는지"를 대화형으로 탐색할 수 있게 된다는 점입니다.
즉, 도구 중심이 아니라 개발자 경험 중심의 관측 가능성으로 바뀌는 것입니다.
AI가 바꾼 계측: "계측 비용이 거의 0에 수렴"
과거에는 계측을 제대로 하려면 각 스택의 라이브러리, 메트릭 설계, 샘플링 전략 등을 직접 이해해야 해서 큰 비용이 들었습니다.
자동 계측 도구들은 너무 많은 것 또는 너무 적은 것을 수집하는 경우가 많아, 실제로는 큰 도움이 되지 않았습니다.
OpenTelemetry 같은 표준은 "어떻게 계측할지"를 언어와 프레임워크 전반에 걸쳐 정형화했습니다. 여기에 기반한 코드 예제들이 대량으로 공개되어 있고, LLM은 이 패턴들을 학습한 상태입니다.
결과적으로 AI에게 "이 서비스에 이런 이벤트와 속성을 계측해 줘"라고 시키면, 상당히 괜찮은 수준의 계측 코드를 자동으로 붙여 줄 수 있습니다.
AI는 코드 구조를 분석해 중요한 경로(예: 결제, 로그인, 검색)를 인식하고, 여기에 적절한 텔레메트리를 넣도록 제안하거나 자동 적용할 수도 있습니다.
AI가 바꾼 분석과 검증: "자동 피드백 루프"의 등장
AI 에이전트가 개발 환경에서 코드를 실행하고, 계측 결과를 읽고, 기본적인 검증까지 수행할 수 있게 되면, 배포 직전 단계에서 이미 "이 코드가 프로덕션에서 스스로를 설명할 준비가 되어 있는지"를 확인할 수 있습니다.
이후 프로덕션에 나간 트레이스·로그·메트릭을 일일이 사람이 뒤지는 대신, 에이전트가 이상 패턴, 성능 회귀, 오류율 변화 등을 자동으로 탐색하고 요약해 줄 수 있습니다.
개발자는 양옆에 IDE와 거대한 트레이스 뷰어를 띄워놓고 눈으로 매칭할 필요 없이, "지난 배포 이후 checkout 실패율이 올라간 이유를 요약해 줘"라고 물으면 됩니다.
이렇게 되면 피드백 루프는 "코드 작성 → 배포 → 관찰 → 이해 → 다음 개선"으로 자연스럽게 닫힙니다. 테스트와 코드 리뷰는 여전히 필요하지만, 중심은 "프로덕션에서의 검증과 학습" 쪽으로 이동합니다.
AI 시대 개발자의 역할 변화와 다가오는 위험
AI가 코드 작성을 크게 가속하면, 더 이상 "누가 이 코드를 썼는지"가 명확하지 않은 상황이 자주 생길 수 있습니다.
그동안 많은 조직은 장애 대응 시 "누가 방금 이거 배포했어?"라고 묻고, 해당 개발자가 로컬 맥락을 가지고 빠르게 수정하는 패턴에 의존해 왔습니다.
하지만 앞으로는 생성된 코드가 더 많아지고, 팀 내 누구도 세부 구현을 깊이 이해하지 못한 채 배포되는 경우가 늘어날 수 있습니다.
이때 관측 가능성과 피드백 루프가 빈약한 상태라면, "아무도 모르는 코드가 프로덕션에서 폭주하는" 상황에 대비하기 매우 어렵습니다.
그래서 AI가 코드를 싸게 만들어 줄수록, 그 코드가 실제 환경에서 무엇을 하는지 이해하고 검증하는 체계의 중요성은 기하급수적으로 커집니다.
인사이트
앞으로 중요한 역량은 "얼마나 빨리 코드를 쓰느냐"가 아니라 "얼마나 빨리 프로덕션에서 배우고, 다시 설계에 반영하느냐"입니다.
개발팀은 기능 구현과 테스트만이 아니라, 처음부터 "어떻게 계측할 것인지, 배포 후 어떤 질문을 던질 것인지"까지 포함한 작업 단위를 설계해야 합니다.
구체적으로는, 각 기능에 대해 "이 기능이 잘 되고 있는지 확인하는 핵심 신호(이벤트/속성)는 무엇인지", "어떤 사용자/빌드/플래그 기준으로 쪼개 보고 싶은지"를 미리 정의해 두는 것이 좋습니다.
운영팀은 기존의 인프라 안정성 지표뿐 아니라, 개발자가 이해하기 쉬운 도메인 중심 텔레메트리(예: 주문 단위, 세션 단위, 사용자 단위)를 제공하는 방향으로 도구와 플랫폼을 재구성할 필요가 있습니다.
마지막으로, 조직 차원에서는 "개발자가 대시보드를 더 보게 하자"가 아니라 "개발자가 평소 쓰는 환경 속에서 프로덕션 상황을 자연스럽게 대화하고 탐색하게 하자"는 관점으로 전환하는 것이, AI 시대에 경쟁력을 유지하는 핵심이 됩니다.
출처 및 참고 : “You Had One Job”: Why Twenty Years of DevOps Has Failed to Do it
이 노트는 요약·비평·학습 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.