앞선 글에서 얘기했던 대로, 이번에는 배휘동 연사님의 "디버깅 마인드셋" 발표 내용을 정리해보겠습니다.
연사님은 XL8에서 근무하시며, 디버깅에 대한 깊은 관심과 연구를 바탕으로 이번 발표를 준비하셨다고 합니다.
들어가며: 디버깅은 마법이 아닌 마술이다
디버깅은 '마법'이 아닌 '마술'에 가깝다고 합니다.
차이점을 살펴볼까요?
- 마법: 신비하고 이해하기 어려운 무언가
- 마술: 트릭을 알고 손기술을 익히면 누구나 배울 수 있는 기술
즉, 디버깅 역시 고수들의 행동 패턴을 파악하고 훈련하면 누구나 능숙해질 수 있다 뜻이겠죠!
디버깅 고수들의 인지적 과정
인지심리학자 Gary Klein의 Critical Decision Method
- 신호 인식
- 과거 경험 연결
- 전제조건 파악
- 사전지식 활용
- 유사 경험 적용
디버깅의 3단계
디버깅은 크게 세 단계로 구성됩니다.
- 원인 파악 (가장 중요!)
- 문제 해결
- 사후 처리
특히 '원인 파악' 단계가 디버깅 전문성의 핵심이라고 강조하셨습니다.
디버깅 고수들의 원인 파악 5단계 가이드
1. 문제 정의
- 이정표를 만들기: "내가 지금 어떤 문제를 풀려고 하는 거지?"
- 중간 회고 시 메타인지를 켜주는 등불 역할
- 야크 쉐이빙(불필요한 문제 해결)을 방지
2. 정상 동작 정의
- 심적 표상 만들기: "정상적인 환경에서는 어떤 조건에서, 어떤 순서로, 어떤 일들이 벌어져야 하는가?"
- Given-When-Then 형식으로 올바른 동작을 정의
- 정상 동작을 정의하지 못한다면, 문제 해결 준비가 안 된 것
3. 최소 재현 환경 구축하며 관찰
- 문제가 있는 부분을 어떻게 핀포인트하여 격리할 것인가
- 문제 발생 시점과 환경을 정확히 파악
- 변인 통제를 통한 패턴 관찰
4. 차이를 발생시키는 다양한 원인 탐색
- 머릿속 지도 펼치기: "두 환경의 차이가 어디서 왔을까?"
- 추상적이든 구체적이든 떠오르는 대로 기록
- 주니어는 최소 3개 정도의 가능성을 검토해보기를 권장
5. 가설 설정 및 검증
- 검증 가능한 가설 형태로 문장화
- 작은 변경으로 가설 검증
- 가설이 틀렸다면 이유를 분석하고 다음 가설로 진행
디버깅 고수들의 습관
마지막으로 연사님 께서는 유머러스한 세 가지 'DD'를 소개하셨는데욬ㅋㅋ
- TDD (Toilet Driven Development)
- 강제로 휴식을 취하되, 스마트폰은 두고 가기
- DDD (PR Description Driven Development)
- Pull Request를 자세히 묘사하는 것을 통한 체계적인 문제 해결 접근
- IDD (Issue Driven Development)
- 이슈 트래킹을 통한 체계적인 디버깅
마무리
이 발표를 통해 디버깅이 단순히 '감'이나 '경험'의 영역이 아니라, 체계적으로 학습하고 발전시킬 수 있는 기술이라는 점을 배웠습니다.
특히 5단계 가이드는 실제 업무에서 바로 적용해볼 수 있는 실용적인 멘탈 프레임워크라고 생각됩니다.
다음 글에서는 마지막으로 최호성 연사님의 "경력이 늘수록 CS이론이 중요해지는 이유" 발표에 대해 정리해보도록 하겠습니다.
728x90
'개발자 컨퍼런스 > 인프콘 2024' 카테고리의 다른 글
[INFCON 2024 참관기 - 3] 경력이 늘수록 CS이론이 중요해지는 이유 (1) | 2025.01.07 |
---|---|
[INFCON 2024 참관기 - 1] 지속 성장 가능한 설계를 만들어가는 방법 (1) | 2025.01.06 |