12 min read

[디버깅 전문가를 만나다] 0. 인지작업 분석으로 뽑아낸 전문가들의 생각과 행동

인지작업 분석으로 디버깅 전문가들의 패턴을 추출했습니다. 전문가들이 주로 하는 생각과 행동, 자주 쓰는 도구와 습관이 있더군요. 그리고 이 모든 건 훈련을 통해 배울 수 있는 것들이었습니다.
[디버깅 전문가를 만나다] 0. 인지작업 분석으로 뽑아낸 전문가들의 생각과 행동

2023년 말에 콜로소에서 개발자들을 대상으로 하는 라이브 컨퍼런스의 자문 요청이 왔습니다. 원래는 자문만 할 생각이었지만 듣다 보니 관심이 생겨 라이브 강연에도 연사로 참여하게 됐어요. 논의 끝에 저의 강연 주제는 '디버깅'으로 정해졌는데, 처음에는 블로그에 써두었던 과거 디버깅 사례를 재탕할까 싶었으나 나만의 얕은 이론을 전하는 게 되지 않을까 하는 우려가 생겼습니다.

문득, 토스의 Head of Frontend이신 박서진님과 함께 1년 전 페어 디버깅을 했던 순간이 떠올랐습니다. 서진님이 디버깅을 하는 방식은 저의 방식과 시작부터가 상당히 다르더군요. 제가 몇 시간동안 끙끙 앓던 문제가 30분도 안 되어 손쉽게 해결됐습니다. 그 경험이 무척 신기해서 이것저것 캐물은 다음 회사로 돌아와 팀원들에게 신나게 공유했던 기억이 납니다.

디버깅 전문가를 만나다

그래서 주변에서 디버깅을 탁월하게 잘 한다 싶은 분들을 인터뷰해서, 그 액기스를 추출하여 글과 강연으로 남기면 흥미롭겠다는 생각이 들었습니다. 프로젝트 명칭은 ‘디버깅 전문가를 만나다’로 정했고요. 당연히 그 시작은 박서진님이었습니다. 제가 경험했던 것처럼, 토스에서 풀기 어려운 버그들이 서진님 손에만 들어가면 빠르게 해결된다는 이야기를 익히 들어왔던 터라 그 비결이 아주 궁금했습니다.

AC2에서 배운 인지작업 분석(Cognitive Task Analysis, CTA)을 이용해 서진님을 1시간동안 인터뷰했습니다. 인지작업 분석은 미국의 인지심리학계 거장 개리 클라인이 주축이 되어, 미 해군 및 여러 연구자들과 함께 협력하여 개발하고 발전시킨 기법입니다. 인터뷰에서 잘 활용하면 전문가의 전문성, 즉 몸에 익은 습관과 뇌에 익은 암묵지를 효과적으로 뽑아낼 수 있는 것으로 잘 알려져 있죠.

개리 클라인이 미 해군과 함께 개발한 ACTA 기법을 소개하는 논문.

인터뷰 결과 흥미로운 통찰이 여럿 있었고, 비슷하게 몇 차례 더 다른 분들을 인터뷰해보니 이 통찰들을 충분히 패턴화할 수 있겠다는 느낌이 왔습니다. 무엇이 그들의 디버깅을 마법처럼 만드는지 확인할 수 있었다는 뜻입니다. 전문가들이 주로 하는 생각과 행동이 있더군요. 주니어 개발자들은 알아차리기 어려울 고수들의 습관, 작업을 편하게 해주는 도구, 특별히 주목하는 신호도 있었습니다.

다행스럽게도 이 모든 건 선천적으로 타고나기보다는 우리가 배울 수 있는 것들이었어요. 저도 개발을 꽤 오래 밀도 높게 해왔고, 개발 역량 또한 부족하지 않다고 생각했는데도 배울 점이 무척 많았습니다. 두 분에게 배워 실제로 제 생산성을 향상시켜준 사소한 습관 두 가지를 소개합니다.

디버깅 전문가들의 사소하지만 훌륭한 습관

에러 메시지 읽기: 토스 Head of Frontend 박서진님의 습관

주니어 분들과 함께 디버깅을 하다 보면, 한 70% 정도는 에러 메시지를 제대로 읽지 않으시더라고요. 아예 읽지 않고 현상만으로 ‘안 된다’고 생각하시더군요. 읽는다고 하는 분들도, 실제로 어떻게 하시는지 관찰해보면 그저 에러 메시지를 복사해서 구글에 검색해보는 걸로 본인이 ‘읽었다’고 생각하시는 걸 많이 봤어요.

에러 메시지에는 생각보다 정말 많은 정보가 담겨 있습니다. 저는 에러가 발생하면 한동안은 그 화면을 떠나지 않고 메시지를 차분히, 자세히 읽어요. 에러 메시지 자체, 에러가 생긴 위치, 스택트레이스 등. 이게 무슨 말인지 이해할 때까지 다른 화면으로는 아예 나가지 않을 때도 많아요. 검색은 물론이고 코드도 안 봐요.

고백하자면 이 이야기를 들었을 당시에는 ‘나도 에러메시지는 잘 읽지’ 라고 생각했었습니다. 그런데 이 인터뷰 후에 또 하나의 에러로 고통받다가, 문득 제가 표면적 메시지만 읽고 스택트레이스는 읽지 않았다는 게 떠올랐어요. 스택트레이스를 열어보니 바로 아래에 아주 핵심적인 정보가 담겨있더군요. 아, 이게 여기서 나는 에러였구나. 덕분에 문제가 바로 해결되었고, 크게 반성했습니다. 저도 에러를 제대로 읽지 않고 있었던 거죠.

MacOS의 다중 데스크탑 활용하기: 원지랩스 CEO 곽근봉님의 습관

페어 디버깅을 하다 보면 어떤 분들은 이것저것 검색하면서 크롬 탭을 열몇개 띄워두시고는, '어 이거 어디서 봤더라?' 하면서 나중에 찾느라 시간을 엄청 소모하시더군요. 저는 헷갈려서 도저히 그렇게는 못해요. 그래서 저는 디버깅할 때는 불필요한 창을 다 닫아둔 채로 시작합니다. 주의를 분산시킬 만한 것들을 모두 제거해서 인지부하를 최대한 줄이는 거죠.

복잡한 문제를 풀 때는 MacOS의 다중 데스크탑을 활용할 때도 많습니다. 문제를 쪼개고, 세부 문제 탐색을 새 데스크탑에서 시작해요. 중간에 조금 큰 덩어리의 서브 문제가 나오면 그것도 새 데스크탑을 띄워 탐색하고, 해결되면 데스크탑 자체를 닫아버리는 식이에요. 저는 이렇게 해서 깔끔하게 문제의 일부를 날려버리면 핵심에 빠르게 집중할 수 있어서 좋더군요.

두 번째 인터뷰 대상이었던 곽근봉님으로부터 이 얘기를 들었을 때는 '오…' 하긴 했지만 막상 제가 활용은 잘 못 하고 있었습니다. 그런데 어느 날 제가 개인적인 일과 회사 일을 하나의 데스크탑 위에서 작업하고 있었음을 깨달았어요. 살펴보니 개인 업무와 회사 업무에서 공통으로 사용하는 앱도 있었으나 아닌 앱도 많았고, 사용 패턴도 사뭇 달랐습니다.

그래서 둘을 별도의 데스크탑으로 구분하고, 공통으로 사용하는 앱이나 크롬 탭은 양쪽에 중복해서 두는 식으로 바꿨습니다. 처음에는 좀 혼란스러웠지만 익숙해진 지금에는 생산성이 꽤 향상되었음을 느껴요. 삶의 작은 문제를 디버깅한 셈이죠.

인지부하 감소에 활용할 수 있는 MacOS의 다중 데스크탑.

디버깅은 소프트웨어 개발에서만 하는 게 아니다

예전의 저는 디버깅을 ‘소프트웨어에 존재하는 문제를 발견하고, 진단하고, 해결하는 과정’으로 정의내렸습니다. 하지만 이 인터뷰 프로젝트를 진행하면서, 소프트웨어 개발 바깥에서도 얼마든지 ‘디버깅’이 가능하다는 생각이 들었습니다. 여러 발상이 떠올랐죠.

  • 삶에서 마주치는 여러 문제를 발견/진단/해결하는 전문가들을 인터뷰해봄으로써 통찰을 얻을 수 있지 않을까?
  • 이런 문제해결사들과 소프트웨어 디버깅 전문가들이 공통적으로 보여주는 패턴이 분명 있지 않을까?
  • 거꾸로, 소프트웨어 디버깅 전문가의 원칙과 습관을 다른 분야에도 적용하여 가치를 얻을 수 있지 않을까? 내가 곽근봉님에게 배운 디버깅 습관을 내 평소 작업에 적용했던 것처럼.

그래서 친분이 있는 UX Writer, 요가 강사, 한의사를 모셔 인터뷰를 해봤더니 역시나 좋은 인사이트가 있었습니다. 앞으로도 기회가 닿는 대로 프로덕 매니저, 자동차 정비사, 주식 분석가 등 많은 고수들을 인터뷰하고 패턴을 찾아 글로 담아볼 계획입니다.

인터뷰하면서 또 한가지 즐거웠던 부분은 인터뷰에 응해주신 분들에게 ‘아 제가 이렇게 했었군요’ 같은 말을 상당히 많이 들었다는 점입니다. 본인이 하는 행동이 잘 정리되어 좋다며, '이대로 저희 팀 분들에게 보여주면 되겠네요'라고 말씀하신 분도 있었고요. 이 인터뷰 시리즈가 인터뷰어인 저뿐만 아니라 인터뷰이에게도, 읽는 분들에게도 큰 가치를 줄 거라고 확신합니다.

What's Next?

'디버깅 전문가를 만나다' 인터뷰 시리즈는 '삶의 밀도를 높이는 여정' 뉴스레터 내에서 제공되는 프리미엄 구독자 전용 컨텐츠입니다. 3월부터 1-2주에 한 편씩 인터뷰 내용을 정리하여 업로드합니다.

별도 뉴스레터로 만들까도 고민했었는데, '삶의 디버깅'이라는 측면에서 기존 구독자 분들도 충분히 관심이 있으시겠다 싶어 분리하지 않기로 했습니다. 박서진님과 곽근봉님을 시작으로 여러 회사의 시니어 개발자들, 그리고 다양한 분야에 종사하는 문제해결사들의 이야기를 담아낼 계획이니 많은 관심 부탁드립니다.

그리고 서두에서 언급했듯, 이 인터뷰 시리즈는 콜로소와의 미팅에서 생긴 아이디어로 시작한 프로젝트입니다. 콜로소의 라이브 컨퍼런스는 <NEXT Solution Summit>이라는 이름으로 2월 28일부터 시작되며, 저는 3월 6일 오후 8시'특별한 인터뷰를 통해 추출한 디버깅 전문가들의 노하우'라는 제목으로 발표합니다(강연 링크). 강연에는 시니어 개발자 4인의 인터뷰 내용을 담았고요. 인터뷰 시리즈 연재도 이 강연 이후 시작할 예정입니다.

참고로 NEXT Solution Summit은 라이브 종료 후의 녹화본 편집 영상은 유료지만 라이브 참여는 무료입니다. 라이브 녹화본을 40% 할인가에 수강할 수 있는 할인 쿠폰과 콜로소 클래스 전용 4만원 할인 쿠폰 이벤트도 진행되고 있다고 하니, 관심 있으신 분들은 링크로 확인해보시고 라이브에 많이들 와주시면 좋겠네요.