220825 트러블 슈팅

샨티(shanti)·2022년 8월 25일
0

TIL

목록 보기
82/145
post-thumbnail

하루를 마무리 하기 전, 오늘 있었던 일들을 잔잔히 되짚어봅니다.
성공과 실패의 모든 요소에서 '배울 점'을 찾아내어 기록하고,
더 성장하는 내일의 나를 위해 'action plan'을 세웁니다.


오늘의 뽀모도로 시트!
뭔가 빡세게 채운 느낌은 아닌데, 구석 구석 빠져있던 요소들, 어제 밤을 새다시피 하며 졸면서 해놓았던 무언가를 다듬느라 오후 시간을 꽤 많이 사용했던 것 같다.

슝슝. 구멍이 뚫린 곳을 채우는 건 기분이 좋은 일이기도 하지만, 한편으론 구멍이 뚫린 곳 즉 누수가 발생하는 곳을 정확하게 발견하지 못한 채 줄줄 새고있는 수도꼭지를 보고있으면 난감 그 자체이다.

오늘 퀘스트과제 중 백엔드쪽 코드를 다시 수정하면서 계속 서버가 터지는(?) 부분을 해결하지 못해 난감해하고 있었다.

아니...
분명히 코드는... 멀쩡한 것 같은데, 테스트가 멀쩡하게 돌아가는 것도 아니고. 뭐지 싶은 상황을 무려 세 번이나 마주했는데.

모든 개발자가 한번쯤은 겪은 일이겠지만 결론적으론 말도 안되는 오타 한 두개 때문에 일어난 일임을 확인하곤 ㅋㅋㅋㅋㅋ
어처구니가 없어 그냥 방바닥에 드러눕고 싶었다.



마치 숨은 그림 찾기를 보는듯한.
하지만 이 6~7줄 남짓의 코드에서 다른점을 찾지 못해 거의 30분 가량을 헤맸고, 결국은 path에서 's' 하나가 빠져있음을 발견했다.

앞에서도 얘기했지만, 아주 솔직히 말하면 저런 누수가 이것 말고도 두 개 정도 더 있었다.
어제 새벽 4시30분 정도까지 동료들과 젭에 접속해 있으면서 막판엔 거의 비몽사몽, 다른 동료가 미리 제출해둔 코드를 참고하면서 이리저리 왔다갔다 코드를 작성했는데 아마 그 때 오타가 난 것 같다.

별 것 아니지만, 그래도 나름 '오타' 잡는 것에는 꽤 자신이 있었는데
정말 코딩하다보면 말~도 안 될 만큼 사소한 오타 하나때문에, 그걸 발견하지 못하는 것 때문에 몇십분, 또는 몇시간을 고생하곤 한다.

바로 발견할 수 있음 좋으련만, 인텔리제이가 띄워주는 빨간줄이라도 있는 오타라면 모르겠지만 저렇게 숨어있는 오타는 정말 답이 없다.
몇 번 겪은 일인데 오늘처럼 두세개가 여기 저기 숨어있는 날이면 약간 기운도 빠진다. 너무 늦고 피곤한 시간이었으니 잘걸 그랬나? 싶기도.

어쨌든, 이런 일이야 뭐 코딩하다보면 징~하게 마주할 일이고.
결국엔 여기에서 내가 얻어야 할 그리고 갖춰야 할 애티튜드는 진님이 여러번 얘기하셨던 '트러블 슈팅'과 관련한 것이다.

예전에 TIL에서도 자주 언급했지만 나는 문제를 정면으로 마주하기 보다는 회피하는 편이기도 하다.
그게 마음이 편하고 또 회피했을 때 목숨이 왔다갔다(ㅋㅋ) 하는 그런 문제는 겪지 않았었던 것 같다. 성향 상 답도 없이 무책임한 인간은 아니기에 내가 피할 정도의 문제라면 진짜 짜증나거나 빡치는 문제.. 라고..(생각해본다.)

근데 코딩은 문제를 회피한다고 하여 될 일은 아니기에 결국 '트러블 슈팅'에 대한 근력을 기르는 수밖에 없다. 아마 초반엔, 그리고 코딩을 하는 순간 순간마다 뚝배기는 깨지겠지만.

진님이 하신 말씀 중에 '문제가 생긴 커맨드가 기본적으로 어떤일을 하는지 찾아본 후에 트러블 슈팅을 하면 더 빠르게 해결하게 되는 경우가 많다'는 부분이 인상적인데, 트러블 슈팅을 하기 위해서 내가 고쳐야 하는 습관과 바로 연결해보자면 '에러메시지 정확히 들여다보기' 이다.

지난번에 노아님이 오셔서 질문을 하면서 팝을 통해 함께 문제를 해결해나간 적이 있는데, 그 때도 여실히 드러났던 나의 문제는 '프로그램이 띄워주는 에러메시지를 천천히 확인하지 않는다는 점'이었다.

우선 에러가 뜨면 (1) 1차 빡침, (2) 이게 외않되? 를 외치며 쒸익쒸익 거리다가, (3) 왠지 아까 그게 찜찜했어!!! 하며 바로 스크롤을 올리는데 그게 아니라 얘가 '무슨 말'을 하는지 먼저 귀기울일 필요가 있다는 것이다.

결국 커맨드가 기본적으로 어떤 일을 하는지를 찾아본다는건 '이걸 왜 쓰는지'에 대한 이해가 밑바탕이 되어야 하고, 에러메시지를 본다는 것은 '내가 쓰고자 했던 의도와 어떤 영역이 들어맞지 않았는가'에 대해 살펴본다는 것이라고 생각한다.

오늘은 트러블 슈팅을 하면서 나름대로 System.out.print를 사용해보며 단계별로 어떤 결과값을 뱉어내는지도 살펴보았고 크롬 개발자도구에서 뱉는 에러메시지도 평소보다는 유심히 살폈다. 물론 저런 단순한 에러는 결국 찾아내야 하는 것이긴 하지만 예전의 습관을 버리기 위해 주요 에러메시지가 있는 라인들은 꼼꼼히 살펴봤던 것 같다. (아... 영어의 중요성... 시부렁)

뭐 어쨌든.
결국 그 대상이 사람이건 컴퓨터이건 문제를 해결하기 위해서는 기울일 귀와 바라볼 눈이 필요한 것 아닐까.

시뻘겋다고 피하지 말고... 들여다보자! 인텔리제이 에러메시지
아직은 익숙하지 않지만... 익숙해지자 자바스크립트 제스트 에러메시지

어제 TIL에 쓴 내용이긴 한데 오늘은 코딩도장 문제 풀면서 어제 배운 방식대로 sort() 메소드를 이뮤터블한 방식으로 적용시켜보았다. 이처럼 트러블 슈팅도 실전에서 하나 하나 적용해봐야 늘겠지. 할 건 참 많다~ ㅋㅋ

자. 다시 밥먹고 과제하러...총총.

profile
가벼운 사진, 그렇지 못한 글

0개의 댓글