• 코드리뷰
  • 블로그
  • 로그인

사례로 알아보는 문제를 효과적으로 해결하는 방법

문제에 해결할 때 아는 것과 모르는 것을 구분하여 효과적으로 해결하는 방법을 공유합니다
한윤석

코드숨 리액트 8기 수강생 이재윤님이 과제를 진행하는데 어려움을 겪어 디스코드 DM으로 질문을 했습니다. 단순히 해답을 전달하면 그 과정을 학습할 수 없으므로 해법을 알려드리기 위해서 질문을 하고 답변 했던 내용입니다.

위 내용을 다시 돌아보면서 어떻게 문제를 효과적으로 해결할 수 있는지를 살펴봅니다.

문제 상황

레스토랑 상세 페이지에 <Link />를 통해서는 접근이 가능하지만, 새로고침을 하거나 URL을 직접 입력하여 페이지에 접근할 때는 페이지에 아무것도 뜨지 않고 있습니다.

접근

에러 상황만 봐서는 문제를 확인할 수 없어 실제로 실행해 보아야 했습니다. 실행해보니 다음과 같이 404 Not found가 응답하는 것을 확인할 수 있었습니다.

일어난 현상 자체를 바라보기

이 때 이재윤님은 자신이 작성했던 코드에 문제가 있어서 안되는 것이라고 추측하고 있습니다. 그러다보니 이전에 했던 일을 돌아보며 문제의 원인을 찾고 있습니다.

우리가 어떤 에러나 문제를 만났을 때, 내가 무엇을 잘못했길래 안되는거야?라고 생각할 수 있는데요. 그러다보면 발생한 문제보다는 자신의 한 일에 대해서 더 집중하게 됩니다. 그래서 문제의 근본적인 원인보다는 지금까지 했던 행위들을 돌아보면서 문제의 원인을 찾게됩니다.

우리는 문제에 더 집중해야 합니다. 현재 발생한 문제를 직시하고 일어난 현상 자체에서 분석하여 문제를 해결해야 합니다. 그래서 일단 일어난 현상 자체를 분석해야 한다고 말씀드렸습닌다.

아는 것과 모르는 것을 구분하기 (자료수집)

그래서 일단 저 요청에 대해서 재윤님이 알고있는지 것이 무엇인지 찾아보았습니다. 지금 하고 있는 요청이 무엇인지, URL의 앞 부분과 뒷 부분으로 나누어 봤고, 진짜로 의미하는 바가 무엇인지 찾아보려고 했습니다.

/restaurants가 현재 우리가 있는 위치라는 사실과 webpack으로 빌드했을 때 main.js가 나온다는 사실을 찾아냈고, 다시 main.js를 가지고 자료를 찾아보았습니다.

실제로 우리 코드에 있는 main.js를 찾았고 여기서는 main.js를 상대 경로로 불러오고 있어서 아까 수집했던 /restaurants가 현재 위치를 나타낸다는 사실과 main.js를 상대 경로로 불러오고 있다는 사실을 조합하여 문제의 원인을 찾았습니다.

해결

위의 문제 해결 과정에서 근본적인 원인을 정의 했고 해결할 수 있는 여러가지 방법을 제시했습니다.

결론

문제 상황을 만나면 일단 아는 것과 모르는 것으로 구분해 내야 합니다. 그 다음 아는 것만으로 문제를 해결할 수 있는지 계획을 세워야 합니다. 만약 아는 것만으로 해결할 수 없다면 자료 조사를 통해서 문제를 해결하는데 필요한 자료들을 수집해야 합니다. 수집한 자료들로 다시 계획을 세워보고, 안되면 다시 자료조사를 하고 실행해야 합니다. 만약 실행이 잘 되지 않는다면 계획, 그리고 자료조사를 반복해서 실행해야 합니다.

참고

테스트, TDD, 코드리뷰, 올바른 협업 방법 등을 코칭하여 코드숨은 개인과 개발 조직의 성장을 돕고 있습니다. 🙏진짜 개발자로 거듭나는 방법
강의 알아보기