Search

주니어 개발자가 흔히 만나는 성장의 한계

준호는 Frontend 개발자 2년차입니다. 리액트 기초 강의도 들었고, 유튜브 튜토리얼도 수십 개 봤습니다. 코드도 짤 줄 압니다. 그런데 실무에서 막힙니다.
"이 상태를 어떻게 관리하지?" "이 컴포넌트는 왜 리렌더링이 계속 되지?" "useEffect를 또 써야 하나, 아니면 다른 방법이 있나?"
준호는 생각합니다.
"리액트를 더 배워야 해. 상태 관리 라이브러리를 공부해야 해. 디자인 패턴을 익혀야 해.”
하지만 이것은 전형적인 XY problem입니다.
‘진짜 해결하고 싶은 궁극적인 문제(X)’가 있는데, 그건 말하지 않고서 ‘X를 해결하는 방법이라고 스스로 믿은 것(Y)’만 물었을 때 발생하는 문제(eg. ”You ask 'Y’, but you want ‘X’”)에요.
당신이 풀고자 하는 문제는 X이다. X를 어떻게 풀어야 할지 모르겠다.
그런데 Y를 풀면 X도 어찌저찌 될 것 같은 강한 느낌이 든다. 그런데 Y도 어떻게 풀어야 할지 모르겠다.
Y를 풀고 싶다고 질문을 던진다. 사람들이 Y를 풀어준다.
그런데 사람들이 질문이 이상하다고 말한다. 정말 풀려는 문제가 그게 맞냐고 묻는다.
결국 진짜 문제는 X임이 밝혀진다. 그리고 Y를 푸는 것은 X에 도움이 되지 않는다는 것도 밝혀진다.
준호가 정말 원하는 것은 "막힘없이 판단하는 개발자"(X)입니다. 그런데 "더 많은 지식"(Y)을 해결책으로 오해했습니다. 준호의 진짜 문제는 무엇일까요? 똑똑해지고 있지 않다는 것입니다.
지식을 더 쌓는다고 똑똑해지는 게 아닙니다. 준호는 지난 1년 동안 튜토리얼을 수십 개 봤지만, 어제나 오늘이나 똑같은 문제에 막힙니다. 변화가 없습니다. 성장하지 않은 겁니다.
여기서 똑똑하다는 것은, 특정 기술을 많이 아는 게 아닙니다. 문제 상황에서 더 나은 판단을 할 수 있는 능력입니다. 어제의 나보다 오늘의 내가, 오늘의 나보다 내일의 내가 조금 더 똑똑한 선택을 하는 것입니다.
똑똑해지는 것 = 매일 조금씩 더 나은 판단을 하게 되는 것
그렇다면 준호에게 필요한 것은 무엇일까요? 더 많은 지식이 아닙니다. 매일 똑똑해지는 구조입니다. 어제보다 오늘, 오늘보다 내일 조금씩 나아지는 시스템입니다.
이것이 변화입니다. 지금의 나(Before)에서 원하는 나(After)로 가는 것입니다. 못하던 행동을 할 수 있게 되는 겁니다. 준호의 경우, "똑똑해지지 않는 개발자"에서 "매일 똑똑해지는 개발자"로 가는 겁니다.
그렇다면 어떻게 변화를 만들까요? 어떻게 행동을 바꿀까요?
행동 심리학에 제프리 포그(BJ Fogg)라는 학자가 정리한 모델이 있습니다. 행동(B) = 동기(M) × 능력(A) × 계기(T). 곱셈 구조입니다. 세 가지 중 하나라도 0이면, 행동은 일어나지 않습니다.
준호의 이야기를 따라가봅시다.