본문 바로가기
개발자 컨퍼런스/인프콘 2024

[INFCON 2024 참관기 - 2] 디버깅 마인드셋: 디버깅의 고통을 절반으로 줄여주는 고수들의 행동패턴 따라하기

by 시니성 2025. 1. 6.

앞선 글에서 얘기했던 대로, 이번에는 배휘동 연사님의 "디버깅 마인드셋" 발표 내용을 정리해보겠습니다.

연사님은 XL8에서 근무하시며, 디버깅에 대한 깊은 관심과 연구를 바탕으로 이번 발표를 준비하셨다고 합니다.

들어가며: 디버깅은 마법이 아닌 마술이다

디버깅은 '마법'이 아닌 '마술'에 가깝다고 합니다.
차이점을 살펴볼까요?

  • 마법: 신비하고 이해하기 어려운 무언가
  • 마술: 트릭을 알고 손기술을 익히면 누구나 배울 수 있는 기술

즉, 디버깅 역시 고수들의 행동 패턴을 파악하고 훈련하면 누구나 능숙해질 수 있다 뜻이겠죠!

디버깅 고수들의 인지적 과정

인지심리학자 Gary Klein의 Critical Decision Method

  1. 신호 인식
  2. 과거 경험 연결
  3. 전제조건 파악
  4. 사전지식 활용
  5. 유사 경험 적용

디버깅의 3단계

디버깅은 크게 세 단계로 구성됩니다.

  1. 원인 파악 (가장 중요!)
  2. 문제 해결
  3. 사후 처리

특히 '원인 파악' 단계가 디버깅 전문성의 핵심이라고 강조하셨습니다.

디버깅 고수들의 원인 파악 5단계 가이드

1. 문제 정의

  • 이정표를 만들기: "내가 지금 어떤 문제를 풀려고 하는 거지?"
  • 중간 회고 시 메타인지를 켜주는 등불 역할
  • 야크 쉐이빙(불필요한 문제 해결)을 방지

2. 정상 동작 정의

  • 심적 표상 만들기: "정상적인 환경에서는 어떤 조건에서, 어떤 순서로, 어떤 일들이 벌어져야 하는가?"
  • Given-When-Then 형식으로 올바른 동작을 정의
  • 정상 동작을 정의하지 못한다면, 문제 해결 준비가 안 된 것

3. 최소 재현 환경 구축하며 관찰

  • 문제가 있는 부분을 어떻게 핀포인트하여 격리할 것인가
  • 문제 발생 시점과 환경을 정확히 파악
  • 변인 통제를 통한 패턴 관찰

4. 차이를 발생시키는 다양한 원인 탐색

  • 머릿속 지도 펼치기: "두 환경의 차이가 어디서 왔을까?"
  • 추상적이든 구체적이든 떠오르는 대로 기록
  • 주니어는 최소 3개 정도의 가능성을 검토해보기를 권장

5. 가설 설정 및 검증

  • 검증 가능한 가설 형태로 문장화
  • 작은 변경으로 가설 검증
  • 가설이 틀렸다면 이유를 분석하고 다음 가설로 진행

디버깅 고수들의 습관

마지막으로 연사님 께서는 유머러스한 세 가지 'DD'를 소개하셨는데욬ㅋㅋ

  1. TDD (Toilet Driven Development)
    • 강제로 휴식을 취하되, 스마트폰은 두고 가기
  2. DDD (PR Description Driven Development)
    • Pull Request를 자세히 묘사하는 것을 통한 체계적인 문제 해결 접근
  3. IDD (Issue Driven Development)
    • 이슈 트래킹을 통한 체계적인 디버깅

마무리

이 발표를 통해 디버깅이 단순히 '감'이나 '경험'의 영역이 아니라, 체계적으로 학습하고 발전시킬 수 있는 기술이라는 점을 배웠습니다.
특히 5단계 가이드는 실제 업무에서 바로 적용해볼 수 있는 실용적인 멘탈 프레임워크라고 생각됩니다.

다음 글에서는 마지막으로 최호성 연사님의 "경력이 늘수록 CS이론이 중요해지는 이유" 발표에 대해 정리해보도록 하겠습니다.

728x90