큰 목표를 작게 나누는 방법

문득 그런 생각이 들 때가 있습니다. 삶을 살아갈 때 TDD 방법론과 유사한 방식을 시도해보는 것도 나쁘지 않겠다고요. 곰곰이 생각해보니 다들 이미 그렇게 살고 있는 것도 같습니다. TDD(Test Driven Development)는 항상 이루고자 하는 목표를 작은 단위의 테스트로서 먼저 나타냅니다. 인생에서는 어떤가요? 우리가 ‘OO회사의 XX부서에 입사하기 위해 C언어를 공부해야지!’ 와 같은 큰 목표를 세우고 ‘코딩 테스트를 통과하기 위해 알고리즘 문제 해결에 대해 공부할 거야! 오늘은 이 문제를 풀어 볼까?’ 하며 작은 목표를 세워서 실행하는 것과 닮아있지 않나요? 심지어 습관이나 시간 관리에 대해 쓴 책에서는 목표를 쪼개서 아주 작게 만드는 것이 효과적이라는 점에 대해 설명하곤 합니다.

예시: 헬스장에 가서 운동하기

이해를 돕기 위해 많은 분들이 오늘의 목표로 삼았을 법 한 ‘헬스장 가기’ 예시를 한 번 들어볼까요? 운동하기로 결심했는데 헬스장 가기가 너무 귀찮을 때가 있습니다. 그럴 때 목표를 작게 나누어서 작은 목표부터 하나씩 달성하는 과정을 TDD에 빗대어 보여드리겠습니다.

우리가 달성하려는 큰 목표는 침대의 늪에서 벗어나 헬스장에 가서 운동을 하는 것입니다. 이를 달성하기 위한 작은 목표는 어떻게 도출하는 걸까요? 양말을 신고 신발장에 가서 신발을 착용한 상태가 되면 침대에 누워 있는 상태일 때 보다 헬스장으로 출발하는 일이 더 쉬워지지 않을까요? 그래서 우선 양말을 신고 신발장에 가서 신발을 신는다는 작은 목표를 달성하는 것부터 시작해 봅니다.

머릿속에서 왼쪽 발에 양말을 신기 위한 첫 번째 테스트 코드를 작성합니다.

1. 왼쪽 발에 양말을 신었는지 확인한다.

자, 어서 테스트를 실행해 봅니다. 지금은 양말을 벗은 채로 침대에 누워있을 테니, 테스트는 실패(빨간 막대)합니다. 테스트를 성공시키기 위해서는 침대에서 벗어나 양말을 찾고 왼쪽 발에 양말을 신어야 합니다.

양말을 신었다면 다시 테스트를 실행합니다. 이번엔 성공(초록 막대)입니다! 아직 최종 목표를 이루지 못했으니 다음 테스트 코드를 작성합니다.

2. 오른쪽 발에 양말을 신었는지 확인한다.

테스트를 실행해보면 당연히 또 실패합니다. 아직 오른쪽에는 양말을 안 신었기 때문이죠. 두 번째 목표가 너무 컸던 걸까요? 오른쪽 양말을 신기가 너무 싫고 어렵게 느껴집니다. 전략을 변경합시다. 더 작은 목표로 쪼개기 위해 테스트를 수정하는 거예요.

2. 오른쪽 발에 양말을 신었는지 확인한다.

2-1. 오른쪽 발에 신을 양말을 오른손으로 10초 동안 만진다.
2-2. 오른쪽 발에 양말을 신었는지 확인한다.

어떤가요? 일단 양말을 손으로 만지면 그 다음 단계인 ‘오른쪽 양말 신기’ 테스트는 조금 더 쉬워집니다. 이것도 어렵다면 목표를 더 잘게 쪼개어 볼 수도 있어요. ‘양말 째려보기’ 부터 도전하는 식으로요. 보폭은 사람마다 다른 법입니다. 이렇게 계속해서 목표를 세우고, 실행하고, 피드백을 받아서 반영하는 것을 반복해 보세요.

3. 신발장에 가서 신발을 신었는지 확인한다.

이런 식으로 계속 다음 테스트 코드를 작성하고 실패하는 테스트 코드를 성공하게 만들다 보면 헬스장에서 운동하고 있는 자신의 모습을 볼 수 있게 됩니다. 매번 모든 테스트를 실행하지 않고 한 번에 하나씩 결과를 확인한다는 점만 빼면 TDD와 매우 유사하다는 생각이 들지 않나요?

큰 목표를 작게 나누는 것의 장점

우리는 가장 우선 순위가 높은 일에 집중해야 합니다. 성공하려면 반드시 해야 하는 일이지만 당장 급하지는 않은 일들을 꾸준히 해내야 한다고 하죠. 그것에 집중하기는 생각보다 어렵습니다. 앞에서 보여드린 예시와 같이 작은 보폭으로 목표를 향해 다가가는 연습이 필요합니다. 무엇이든 처음부터 너무 큰 목표를 설정해버리면 그 크기에 압도되어 무언가에 도전하기가 어려워집니다. 너무 막막해서 해내지 못 할 이유를 자꾸 떠올리게 될 테니까요. 큰 목표를 달성하기 위한 작은 목표에 집중해서 한 걸음씩 전진하는 것은 여러분의 일상에서 집중력과 추진력을 높이기 위한 하나의 방법이 될 수 있습니다.

이 글이 오늘도 목표를 향해 도전하는 여러분께 도움이 되길 바랍니다.

스스로 경험하며 얻은 깨달음을 공유하기 좋아하며, 세상이 필요로 하는 코드를 작성하기 위해 노력하는 개발자입니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다