낙서장

초보 개발자를 위한 버그(문제) 해결 접근 방법

채윤아빠 2023. 5. 18. 17:48
728x90
반응형

개요

개발자로써 소스 코딩 작업을 진행하다가 실제 동작을 시켰을 때, 기대했던 것과는 다르게 동작하는 오류나 버그 문제로 여러 고충을 겪어 보셨을 겁니다. 개발 경력에 따라 문제 해결에 대한 접근 방법에 차이가 있어서 초보 개발자분을 위하여 제가 개인적으로 느낀점을 정리해 보았습니다.


사수(선배님)께 부탁하기

문제 해결을 위한 가장 쉬운 방법은 경력이 많은 사수(선배님)에게 해결을 부탁하는 방법입니다. 한 성격하시는 사수분이라면 그냥 해결해 주지 않고 잔소리? 공격을 받아야 할 수도 있겠지만, 사수분이 시간만 내준다면 가장 빠르고 손쉽게 해결될 수 있습니다.

그러나 여기서 선배님께 그냥 문제 해결을 맡겨 놓고, 해결된 결과만 받는 태도는 바람직하지 않습니다. 가능하면 사수에게 양해를 구하여 옆자리에 앉거나 어느 쪽이던 직접 문제가 해결되는 과정을 보면, 그것도 일종의 무공 견식과 같이 문제 해결에 대한 기술을 간접적으로 체험하여 나의 것으로 습득할 수 있는 계기가 될 수 있습니다. 그리고 이런 열정적인 자세가 바탕이 되어야 빠르게 습득하고 개발력?을 향상시킬 수 있습니다.


스스로 해결하기

주변에 선배님이나, 따로 도움을 받을 동료가 없을 경우에는 스스로 해결해 나가야 하는데, 쉽지 않은 일입니다. 초보 개발자와 고수와의 차이는 내공, 즉 다양한 경험에서 오는 촉? 이라고 할 수 있습니다. 이미 유사한 문제를 겪었던 것이라면 손쉽게 해결책을 찾을 수 있고, 겪어보지 않은 문제라도 다양한 방면으로 여러 시도 끝에 해결책을 찾는 것이 고수와 초보간의 차이일 겁니다.


초보 개발자가 문제 해결이 쉽지만은 않은 이유가 다양한 방면으로 문제 해결을 시도해야 하는데, 그 다양한 방면이 어떤 것인지 모르기 때문에 해결과정이 복잡해지고 오래 걸리게 됩니다. 그럼에보 불구하고 직접 이것 저것 여러 가지 다양한 시도를 해보아야 합니다. 문제 해결을 위한 감이나 촉?을 익혀가는 과정이니 힘들고 괴롭더라도 꼭 필요한 시간입니다. 어찌보면 닭이 먼저냐 달걀이 먼저냐 같은 문제일 수 있지만, 현실적으로 꼭 거쳐야 하는 과정중 하나입니다. 이런 힘들고 어려운 시기를 거쳐야만 진정한 고수?로 거듭나게 됩니다.


여러 가지 다양한 방면으로 시도한다는 것은 어떠한 것인지 이해가 안 될 수 있습니다. 몇 가지 예를 들어 보겠습니다.


이벤트 처리 부분에서 문제가 있을 경우에는 추가로 여러 이벤트를 만들어 보던가, 다른 핸들러를 추가해 보단던가 하는 식으로 다양한 시도를 해 볼 수 있을 겁니다.
중지점을 설정하여 단계별로 디버깅을 해본다던가 하는 식으로 문제를 상세하게 파헤치다보면 근본적인 원인을 찾게 되고, 문제의 원인을 찾게 되면 해결 방법은 자연스럽게 뒤따라 올 수 있습니다.


물론 원인을 알지만, OS 자체나 라이브러리 내부적인 것이라 어떻게 손댈 수가 없는 경우도 극히 히박하지만 있겠지만, 대부분의 문제들은 개발자가 개발한 소스에 숨겨져 있습니다. 단지 찾지를 못했을 뿐...


이것을 빨리 찾아내는 것도 숙련 개발자의 일종의 노하우일 것이고, 고수는 아예 그런 문제가 발생하지 않도록 코드를 작성하게 됩니다.


문제를 만들지 않기

가장 근본적인 해결방법입니다. 그러나 가장 어려운 해결방법?입니다.
사람이라면 누구나 실수를 하기 마련이기 때문입니다. 그래도 최소화할 수 있는 다양한 방법이 있습니다.
이 부분도 다년간의 경험이 쌓여야 하는 부분이기는 하지만, 좋은 책이나 인터넷 자료 등이 있으니 읽고 공부해 두시면 좋습니다.
관련 자료들을 취합하여 별도의 글로 올리거나, 본문을 수정해 두도록 하겠습니다.