어느 주말 일과를 끝내고 집에 들어가는 도중 평소 알고 지내던 개발자로부터 연락이 온 것을 확인했다.
‘경열님은 기술 관련해서 헤맬때 어떤 감정이 많이드냐 ? 주변 몇몇 분들은 스트레스를 받더라도 희망차고 차분한 마음으로 접근한던데 경열님은 어떻게 생각하는지 궁금해서 질문드린다.’
라는 내용의 연락이 와 있었다.
감사하게도 대단하지 않은 나의 생각을 물어보셨고 내 생각이랍시고 이렇게 저렇게 설명드렸는데 너무 정리하지 않고 말씀드린 것 같기도 하고 이 기회에 내 생각을 좀 더 정리해보자는 마음에 글을 작성해보게 되었다.
어려운 문제를 맞닥뜨렸을 때 나는 어떤 행동을 하는지 살펴보았다.
첫 번째. 가용한 선택지를 모두 리스트업한다.
지금 실패한 선택지를 살펴보기보다는 내가 시도해볼 수 있는 선택지나 의심 가능한 것들을 차근차근 목록화 해서 하나씩 살펴본다.
가령, 브라우저에서 서비스가 연결이 되지 않는다고 해보자. 이 상황에서 해볼만한 선택지는
- 해당 도메인의 레코드가 잘 등록되어 있는지
- 레코드가 바라보는 지점의 리소스가 정상인지
- 리소스 내부의 방화벽은 허용이 되어 있는지
- 컨테이너 오케스트레이션 도구가 정상적인지
- 컨테이너의 상태가 러닝인지
- 컨테이너의 포트가 잘 연결되어 있는지
- 컨이너 내부의 어플리케이션 프로세스가 살아있는지
- 로그는 어떻게 쌓이는지
등등의 의심가능한 부분을 목록화해서 하나씩 접근해본다. 이렇게 찾다보면 대부분의 문제들은 어렵지 않게 풀렸던 것으로 기억한다.
두 번째. 기한의 여부를 확인한다.
모든 일에는 기한이 있기 마련이다. 다만 기한을 어겨도 되는 개인 공부인지, 기한을 어기면 안되는 회사 업무인지에 따라 대응 방식이 바뀌어야 한다고 생각한다. 개인 공부라면, 우리는 우아한 답을 찾고 문제가 되는 부분을 명확히 하고 다음 번에는 동일한 문제가 발생하지 않도록 할 수 있다. 하지만 기한이 존재하는 업무같은 경우에는 우아하지 않더라도 해결할 수 있는 방법이 있다면 당장 적용하고 서비스에 지장을 안 주는게 더 좋다고 생각한다. 우리가 우아하게 문제를 해결하는 것보다 회사가 당신에게 기대는 신뢰가 더 중요하다.
세 번째. 스트레스 받지 말자
쫄지 말자. 문제가 생긴거지. 내 인생이 쫑난게 아니다. 스트레스를 더 받고 쫄면 될 일도 안된다. 스트레스를 받기보다는 이 문제를 해결하면 내가 한층 더 레벨업할 수 있게 될거라는 믿음을 확신을 가지고 문제 자체에 더 집중하는 게 더 빠르게 해결할 수 있다. 그리고 모르겠으면 어디에라도 물어보자.
네 번째. 그러니까 준비하자
쫄기도 싫고, 기한 내에 맞춰야 하는 것도 싫다면 발생하는 모든 문제가 아는 문제면 된다. 그만큼 다양한 문제를 경험해보고 미리 공부하고 준비한다면 웬만한 문제는 즐길 수 있게 되지 않을까 한다.
이렇게 내 생각을 정리할 수 있게 좋은 질문을 주신 지인 분께 감사를 드린다.