밑천 드러난 6년차, 모르는 이슈 앞에서 쓰는 '변수 격리' 생존법

2026. 8. 8. 15:09CICD

"정보의 양을 늘리면 풀리지 않는 이슈는 없다"

6년차 DevOps의 실전 문제 해결기 #1: 변수 격리 기법

"내가 가진 정보보다 문제의 난이도가 높다면, 정보의 양을 늘리면 해결할 수 있다."

어려운 이슈를 만날 때마다 마음에 새기는 문장이다. 내가 문제를 해결할 만큼 충분한 단서를 쥐고 있다면 결국 답을 찾을 수 있다는 희망을 주기 때문이다.

그런 의미에서 오늘은 현업에서 정보의 양을 늘리기 위해 내가 자주 쓰는 첫 번째 실전 전략, ‘변수 격리(Variable Isolation)’ 기법을 기록해 본다.

🧐 들어가며: "범인은 너밖에 없어"

DevOps 엔지니어로 일하다 보면 소스코드 내부 로직, DB, 복잡한 네트워크처럼 내가 잘 모르는 영역의 이슈가 넘어올 때가 많다. 특히 애플리케이션 개발자가 *"요리조리 다 찾아봤는데 범인은 인프라/DevOps밖에 없다"*는 느낌으로 검토를 요청해 오면 난감해진다.

CI/CD 파이프라인과 인프라를 주로 다루는 DevOps 입장에선 앱 내부 흐름까지 다 파악하긴 힘든 게 사실이다.

  • 단순히 "저희 쪽 인프라나 설정은 문제없는데요?" 하고 손을 뗄 수도 있다.
  • 하지만 진짜 해결사(Troubleshooter)가 되고 싶다면 정보의 양을 늘려 함께 답을 찾아야 한다.

이때 내가 쓰는 방법이 바로 '변수 하나씩만 바꿔가며 단서를 수집하는 실험'이다.

💡 실전 사례: "주입해 준 Secret 값이 이상해요"

1. 상황 발생

개발자에게 k8s Pod의 API 환경변수(Secret)를 확인해 달라는 요청이 왔다. CI/CD 과정에서 주입해 주는 DB Connection Pool Size 값이 이상하다는 제보였다.

  • 동일한 JDBC URL 환경에서 설정한 Pool Size
    • A: 10
    • B: 10
    • C: 10
    • D: 20

D에 분명히 20을 줬는데, DBA를 통해 쿼리를 조회해 보니 실제로는 D에 10이 들어가고, A에 20이 들어가는 기묘한 상황이 벌어졌다.

개발자: "DevOps에서 주입한 Secret 값이 잘못 들어간 거 같아요. 확인 좀 해주세요."

2. 1차 확인 (DevOps 영역 정상)

플랫폼과 Pod 내부 환경변수를 직접 체크해 보니 Secret 값은 의도한 대로 정확히 들어가 있었다. 인프라 영역은 아무 이상이 없었다.

여기서 "저희 쪽은 문제없습니다" 하고 넘길 수도 있었지만, 도대체 왜 이런 결과가 나오는지 단서를 찾기 위해 테스트를 시작했다.

3. 실전 대처: 변수 격리 (Variable Isolation)

테스트 환경에서 Pool Size 변수들을 서로 완전히 다른, 한눈에 구분되는 값으로 바꿔서 주입해 보았다.

  • 테스트용 변경 값
    • A: 5
    • B: 15
    • C: 25
    • D: 35

값들을 완전히 격리한 뒤 재현해 보니, DBA 쿼리 결과에서 D의 값이 5로 찍히는 결정적인 단서가 포착되었다.

4. 반전과 문제의 본질 발견

이 단서를 바탕으로 연관 관계를 추적해 보니 원인이 명확히 드러났다.

  1. DBA 모니터링 집계 방식의 착시 DBA 화면에 보이는 값은 단독 값이 아니라 Connection Pool의 '합계'였다.
  2. 소프트웨어 내부 로직 문제 애플리케이션 내부에서 D API는 실제 호출되지 않고 있었다. 결국 A API만 정상 동작하면서 A와 B가 연동된 Pool(5 + 15 = 20)이 A에 표기된 것이었다.
  3. 결론 D 값이 5로 나온 것 역시 D가 적용된 게 아니라, A의 변경된 값(5)이 보인 것에 불과했다.

결국 DevOps의 주입 오류가 아니라, 소스코드 내 특정 API 미호출과 DBA 모니터링 집계 방식이 얽힌 착시 현상이었다.

📌 결론: 모르는 이슈를 푸는 DevOps의 자세

내가 관리하는 영역 밖의 이슈라도 변수를 극단적으로 바꿔 단서를 강제로 끄집어내는 실험을 해보면, 숨어있던 애플리케이션의 동작 원리와 진짜 원인이 드러난다.

  • 정보가 부족할 땐 변수를 조작하라
  • 입력값을 다채롭게 바꿔보면 출력 결과에서 일정한 규칙과 패턴이 보이기 시작한다.
  • "제 쪽은 이상 없어요"로 끝내지 마라
  • 변수 격리 테스트로 직관적인 단서를 제시해 주면, 개발자와 불필요한 소모전 없이 훨씬 빠르게 이슈를 끝낼 수 있다.