jh.nrtv

회고) 문제를 명확하게 이해하고 해결하자 본문

잡다한거/insight

회고) 문제를 명확하게 이해하고 해결하자

wlgus3 2024. 6. 22. 22:04
오늘의 반성: 문제를 명확하게 이해하고 해결하는 개발자가 되자.

 

 

얼마 전에 바쁘게 일감을 하고있는데 PM님께 슬랙으로 알림이 왔다.

 

요구조건은 다음과 같다.

 

사내 에디터에서 url 이미지 등록 기능에서 [입력]버튼을 누르면 이미지의 url 중
xxx.xxx.xxx가 들어오면 yyy.yyy.yyy로 바꿔주세요!

지금 하고 계신 일감 끝나면 바로 들어가주세요! 

 

이렇게 나를 언급하면서 들어오는 일감의 경우에는 보통 급한 일감인 경우가 많기 때문에 많은 생각을 하지 않았다.

그저 이를 구현할 수 있는 방법이 뭘까를 가장 먼저 고민했다. 

 

그 과정에서 회사에서 만들고, 여러 프로젝트에 사용하고 있는 공용 ui kit를 수정해야 더 효율적으로 일감을 구현할 수 있다고 판단했다. 

즉시 팀 리드께 슬랙을 드렸다.

"~~~ 한 일감이 있고, 그러기 위해서 ui kit에서 새로운 emun이나 props를 어쩌구 ~~~ 하게 수정해서 구현하려고 하는데 괜찮을까요?"

 

내 질문에 리드님의 답변

"근데 그 일감의 목적이 뭐예요? 왜 url을 바꿔야하는건가요?"

 

그 슬랙을 보는 순간 당황했다... 

이 일감의 목적이 뭐고 왜 해야하는 일이지 ...? 왜 나는 궁금해하지 않고 바로 구현방법만 고민했지 ...?

 

이후 PM님께 이 요구사항의 배경, 상황 등을 상세하게 들었고, 그에 맞는 해결방법을 정했다...! 

아니, 정했다기보다는 상황을 정확하게 파악하니 해결방안이 자연스럽게 드러났다는 편이 더 맞는 표현인 것 같다.

 

문제의 목적과 이유에 따라 문제의 해결방법이 매우 달라진다. 

이것이 단순하게 일시적 오류를 해결하기 위한 이유라면 임시조치로 약간 비효율적이라도 빠른 해결이 정답이 될 수 있고, 

앞으로도 계속 발생하는 문제이고, 여퍼 프로젝트에서 공통적으로 발생할 가능성이 높다면 시간을 조금 들이더라도 더 효율적이고 깔끔한 방법을 고민해야 한다.

 

문제를 어떻게 파악하고 정의하느냐에 따라 매우 다른 해결방안이 나올 수 있다.

 

JavaScript 개발자들에게 바이블과 같은 "모던 자바스크립트 딥다이브"에는 아래와 같은 문구가 있다.

대부분의 문제(요구사항)는 복잡하며 명확하지 않을 수도 있다. 따라서 문제(요구사항)를 명확히 이해하는 것이 우선되어야 하며 복잡함을 단순하게 분해(Decomposition)하고 자료를 정리하고 구분(Modeling)해야 하며 순서에 맞게 행위를 배열해야 한다.
즉, 프로그래밍이란 0과 1밖에 알지 못하는 기계가 실행할 수 있는 정도로 정확하고 상세하게 요구사항을 설명하는 작업이며 그 결과물이 바로 코드이다. 모호하고 대략적인 요구사항을 전달해도 우리의 머리 속에 있는 의도를 정확히 꿰뚫어 완벽히 이해하는 컴퓨터는 절대 존재할 수 없다.

 

 

이 문구가 기억나는 상황이었다.

나는 문제를 명확하게 이해하지 않고, 단편적인 현상만을 보고 해결하려고 했다. 

 

문제를 명확하게 파악하는 데에 들이는 시간은 낭비같아 보이지만 사실은 그것보다 더 많은 시간을 줄여준다는 것을 알았다. 

 

'잡다한거 > insight' 카테고리의 다른 글

Section1 회고 ( KPT 회고 )  (0) 2022.11.16