하고 있는 고민
개발자로서의 성장에 대한 고민이 많아 요즘 많은 현직자분들과 얘기를 나누고 있다.
"더 성장하려면 무엇을 배워야 할까?" "현재 내 프론트엔드 실력을 객관적으로 점검하는 방법은 무엇일까?" "다음 단계로 나아가려면 무엇을 해야 할까?"와 같은 질문을 던지며 방향을 찾아가고 있다.
그중 한 분이 한 아티클을 추천해 주며 프론트엔드 개발자 로드맵과 드라이퍼스 모델에 대해 이야기해 주셨다. 장기적인 목표는 드라이퍼스 모델을 참고하고, 개발자 로드맵의 항목들을 하나씩 경험해 보라고 조언해 주셨다.
또한, 프론트엔드 개발자의 실력을 평가할 때 어떤 기술 스택을 사용했는가뿐만 아니라 코드 퀄리티와 성능 최적화를 위해 어떤 노력을 기울였는가가 중요한 요소라는 점도 덧붙여 주셨다. 나 역시 이 의견에 공감했다.
프론트엔드는 백엔드처럼 자격증으로 실력을 증명하기 어려운 분야이며, 퍼블리싱과 백엔드 개발 요소가 합쳐진 비교적 역사가 짧은 영역이다. 따라서 정량적인 지표보다는 개발 과정에서의 고민과 경험이 실력을 증명하는 핵심 요소라고 생각한다.
드라이퍼스 모델
단기적인 목표보다 장기적인 목표를 설정하고, 그에 맞춘 단기 목표를 정하는 것이 중요하다고 생각했다. 그래서 먼저 드라이퍼스 모델이 무엇인지 알아보고자 했다.
드라이퍼스 모델이란?
드라이퍼스 모델은 철학자 드라이퍼스가 제안한 기술 습득의 5단계 모델이다.
1단계: Novices (초보자)
경험이 부족하여 상황에 상관없이 메뉴얼만 있으면 주어진 일을 수행할 수 있는 단계이다. 나는 현재 인턴으로서 이 단계에 해당한다고 생각한다.
2단계: Advanced Beginners (준 초보자)
여러 가지 상황에서 의미 있는 요소를 인지하기 시작하고, 이를 메뉴얼에 반영하는 단계이다. 규칙에서 조금씩 벗어나 자신만의 방법을 고안하지만, 스스로 문제 해결은 어렵다. 현재 나의 프론트엔드 실력은 이 단계에 속하는 것 같다.
3단계: Competent (숙련자)
여러 경험이 쌓이며 문제를 분석하고 해결할 수 있는 단계이다. 또한, 선택한 결과에 대해 책임을 질 수 있으며, 스스로 문제 해결이 가능해진다. 이 단계에서는 단순한 코딩을 넘어서, 주어진 문제를 더 나은 방식으로 해결하는 능력이 중요해진다.
4단계: Proficient (전문가에 가까운 단계)
성공과 실패의 경험을 바탕으로 상황에 따라 중요한 요소를 스스로 판단하는 단계이다.
이전 단계에서는 오류가 발생하면 컴퓨터가 뱉어낸 오류 메시지에만 집중하는 반면, 이 단계에서는 코드의 전체적인 구조와 맥락을 이해하고 해결한다. 단순히 문제 해결을 넘어 더 나은 해결책을 찾고, 코드의 유지보수성과 확장성을 고려하는 능력이 요구된다.
5단계: Expert (전문가)
방대한 경험을 바탕으로 직관적으로 최적의 해결책을 찾는 단계이다. 고정된 매뉴얼보다는 유연한 사고로 문제를 해결한다. 이 단계에 있는 개발자는 단순히 기술을 적용하는 것을 넘어 새로운 기술을 연구하고, 개선 방향을 제시할 수 있다.
드라이퍼스 모델에 대한 나의 생각
한 사람은 하나의 단계에만 속하지 않는다고 생각한다. 예를 들어, 나는 회사에서는 1단계(초보자)이지만, 프론트엔드 개발자로서는 2단계(준 초보자)에 속한다고 볼 수 있다. 어떤 도메인에서 활동하는가에 따라 기술적 단계는 다르게 적용될 수 있다.
또한, 드라이퍼스 모델에서 중요한 요소는 직관이다. 높은 단계로 성장하기 위해서는 경험을 쌓고, 다양한 문제를 접하며, 스스로 해결하는 과정이 필수적이다. 나는 앞으로 더 직관적인 사고를 할 수 있도록 노력해야겠다.
성장하는 사람들에게 있는 특징
드라이퍼스 모델을 조사하던 중, 한 인터뷰에서 그로플의 백종화 대표님이 말한 "성장하는 사람들의 6가지 특징"을 발견했다.
- 더 높은 목표가 있다.
- 자신을 객관적으로 인식하는 메타인지 능력이 있다.
- 자신과 다른 의견을 듣고 객관적인 관점에서 토론한다.
- 실력은 경력 순이 아니라, 사람마다 다르게 성장한다는 것을 이해한다.
- 혼자 할 수 있는 것에는 한계가 있으며, 함께 해야 한다는 것을 안다.
- 학습을 반복한다. 지속적으로 질문하고, 피드백을 받아 행동을 개선한다.
이 내용을 보고 나서 **성장하는 사람들은 단순히 목표를 세우는 것이 아니라, 실천을 통해 배운다.**라는 점을 깨달았다.
- 목표 설정뿐만 아니라 구체적인 계획을 세우고 실행하는 과정이 필요하다.
- 꾸준한 학습과 피드백이 중요하며, 이를 통해 스스로 성장의 단계를 점검해야 한다.
나도 이 원칙들을 바탕으로 성장하는 개발자가 되기 위해 더 적극적으로 고민하고 실천해야겠다.