brunch

You can make anything
by writing

C.S.Lewis

by 오세준 Aug 10. 2022

개발자는 아니지만 코드를 수정했습니다

문제 해결 회고

밤 9시부터 심리검사 연구 참여자들에게 이메일로 결과 보고서를 자동 발송하기 위해 구글 스크립트를 만졌다. 


그런데 이전과 달리 자꾸 3번 문항값이 계속 '낮음' 수준으로만 처리되는 오류가 발생했다. 


예전에 스크립트를 짜준 개발자에게 이런 저런 코드의 의미를 배웠던 기억을 더듬으며 만져보았지만 소용 없었다. �


그때부터 4시간 반 정도 스크립트 편집창을 붙잡고 씨름했다. 


그러다가 어느 순간 번뜩! 실마리를 발견하면서 결국 문제를 해결할 수 있었다. 


개발자의 도움 없이 프로그래밍 지식이 ‘거의 없는’ 수준에서 이뤄낸 성취였다. 


잠들기 전에 문제 해결 과정을 돌아보면서 기록을 남긴다. 


----------


① No-Brain : 습관적(무의식적)으로 예전의 해결 방법을 적용하기   

처음엔 그냥 이전에 오류가 났을 때 써먹었던 방법들을 순차적으로 떠올리며 작업을 반복


방법 1. 잘 동작하는 다른 설문지 스크립트와 현재 에러가 난 스크립트를 비교하기


방법 2. 이전 에러 발생 시 수정했던 코드들을 기억을 떠올려가며 하나둘씩 바꿔보기


방법 1,2로 4시간 가까이 보낸 결과, 이번에 직면한 새로운 유형의 에러에는 적합하지 않은 것으로 판단되었다.



② Re-Brain : 기존 방법을 포기하고 원점에서 다시 시작하기   

기존 방법으로는 문제 해결이 불가능하다는 판단이 선 후, 다시 함수를 실행시키고 로그창을 관찰하기 시작



③ Eureka!   

로그창 관찰 도중 3번 문항값이 두자리수를 넘을 경우 11->1로 23->2로 중간에 변환되는 현상을 발견


2~3차례 서로 다른 값으로 테스트한 후 값들이 두자리수를 넘으면 십의 자리수값만 남는다는 패턴을 발견


두자리수 이상의 숫자값이 있을 때 이 중 맨 앞의 값만 똑 떼오는 자바스크립트 함수가 있는지 구글링 시작


substring 이라는 놈이 비슷한 기능을 한다는 것을 검색 결과를 통해 확인 



④ Solution   

스크립트 편집기 창에서 substring을 검색어로 넣자 문제를 일으키는 코드를 바로 발견할 수 있었음


문제의 코드는, var item2 = one_item.substring(0, 1)


왠지 숫자 1을 2로 바꾸면 될 것 같아서 수정 후 다시 실행한 결과, 이메일 발송 성공!


일단 3번 문항 응답값이 두자리 숫자를 넘을 일이 없기 때문에 스크립트 수정 및 저장 후 바로 실제 참여자들의 이메일값을 집어 넣어 결과 보고서 발송을 시작함


여기에서 나의 익숙한 문제 해결 패턴을 발견함 -  대충대충~ 임기응변~. 


무언가 문제 해결하는 과정에서 다시 정상적으로 작동을 하는 것을 확인하면 그 원리를 정확히, 자세히 파악하지 않고 그냥 다음 단계로 넘어가거나 문제로부터 떨어지는 경향이 있음


이번에도 그냥 지나칠 뻔했지만 앞으로 비슷한 유형의 문제를 풀 때 도움이 될 것이라는 생각에 substring 함수 관련 글을 검색해서 읽음. 


앞으로도 다른 설문지에서 문항값들을 변환하는 과정에서 숫자 혹은 텍스트로 특정 자리수를 넘어갈 때 일부만 자를 수 있는 함수로 써먹을 수 있음을 확인




� CTA    

Noticing : 이번엔 비록 문제를 조기에 발견하진 못했지만 로그창을 제대로 보자마자 위 아래의 값이 다르다는 것을 쉽게 발견할 수 있었고 그것이 문제의 원인임을 직감함. 


Job Smarts :  이번에 만진 개발 언어인 구글 스크립트 같은 경우엔 한글로 된 자료가 별로 없어 영문으로 된 키워드를 넣어서 구글링. 잘 모르는 분야라도 올바른 키워드를 ‘잘’ 조합해서 넣으면 구글은 꽤나 신뢰할만한 좋은 자료들을 제시해주는 편이고 이번 문제 해결에도 그동안 몸에 밴 구글링 노하우가 도움이 됨. 


Self-monitoring : 무언가 안 되는 상황에서 짜증이 올라오고 같은 방법을 되풀이하고 있으면 ‘리셋’이 필요한 상황임. 이번 문제 해결 과정에선 우선 정서적, 신체적 불편감을 자각하고 문제의 원점으로 돌아가야겠다고 판단한 것이 문제 해결의 첫 단추가 되었음. 또한 이번 과정에선 내가 substring 함수의 정의를 살펴보지 않고 넘어가려 한다는 것을 자각하고 이에 제동을 건 것도 나름 self-monitoring의 순기능으로 보임. 


Anomalies : 결과 보고서들의 수준값들이 3번 문항 관련 요인만 일관되게 ‘낮음’으로 나온 것을 보고 이것이 이전의 오류 패턴들과 다르다는 것을 직감. 하지만 당장의 문제 해결 방법이 떠오르지 않아 상술한 것처럼 예전의 해법들을 적용해봤지만 실패함.


� *CTA 파트는 김창준님과 변신철님의 Agile Coach Squared(애자일 코치 제곱, 이하 AC2) 43기에서 접한 인지적 작업 분석 - CTA(Cognitive Task Analysis)의 Knowledge Audit을 나름 적용해 본 것임을 밝힙니다. 


작품 선택

키워드 선택 0 / 3 0

댓글여부

afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari