팀의 주니어분들과 대화를 나누다 보면, 성장에 대한 관심이 정말 많다. 이들은 성장을 위해 여러가지 스터디를 병행하거나 외부 밋업 행사에 열정적으로 참여하는 등 많은 노력을 기울이고 있다. 그 모습은 정말 멋지고 박수를 보낼 만하다. 그러나 이런 노력에도 불구하고 성장이 더뎌 좌절하는 모습을 보이기도 해서, 안타까운 마음이 들기도 한다.
내가 생각하는 성장 방법
성장에는 여러 길이 있지만, 내가 생각하는 가장 확실하고 효과적인 방법은 지금 하고 있는 일을 '잘' 하려는 노력에서 시작된다. 현재 맡은 업무에서 최선을 다하고, 새로운 기술이나 지식을 실제로 적용해 보며 실무 능력을 키우는 과정이야말로 성장의 탄탄한 기반이 된다. 또한, 지금 눈앞에 있는 문제를 깊이 파악하고 해결하는 경험은 어떤 스터디보다도 더 큰 가치를 제공할 수 있다.
물론 스터디나 외부 활동도 중요한 성장의 도구다. 하지만 그것이 실무와 직접 연결되지 않으면 지식으로 이어지기 어렵다. 결국, 가장 이상적인 접근은 현재 맡은 일을 중심에 두고 이를 더 잘 수행하기 위해 필요한 공부와 스터디를 병행하는 것이다.
지금 하고 있는 일을 '잘' 하려고 노력하면, 업무 시간도 자연스럽게 스터디 시간이 된다. 매일의 업무에서 배우고, 성장하는 기회를 찾을 수 있기 때문이다.
무엇을 더 노력해야할까?
도메인을 이해하려고 노력하기
개발자는 단순히 코드를 작성하는 사람이 아니다. 우리는 문제를 해결하고, 사용자의 필요를 충족시키기 위해 일한다. 현재 맡은 프로젝트나 제품의 도메인과 요구사항을 깊이 이해하는 것이 중요하다. 도메인을 이해하려는 노력이 없다면 단순히 기능을 구현하는 수준에 그치게 되며, 문제의 본질에 접근하기 어려워진다.
코드 품질에 신경 쓰기 (특히 인터페이스와 네이밍)
좋은 코드는 단순히 작동하는 코드가 아니다. 코드 품질은 유지보수성에 큰 영향을 미치며, 이를 개선하려는 노력은 경험을 통해 쌓인다. 인터페이스(API, 클래스 등)와 네이밍은 가독성을 넘어서, 우리가 만드는 시스템을 개념화하고 정확히 이해했는지를 알 수 있는 척도가 된다. 품질이 엉망이더라도 기능은 동작할 수 있다. 하지만 그런 코드는 후속 작업이나 협업에서 문제를 일으킬 수 있으며, 성장의 경험으로 이어지지 않는다.
개발자 테스트 만들기
개발자는 단순히 코드를 작성하는 것에 그치지 않고, 자신이 작성한 코드의 품질을 책임져야 한다. 테스트 코드를 작성하면 구현한 기능이 의도한 대로 작동하는지 명확하게 검증할 수 있다. 만약 테스트를 작성하기 어렵다면, 이는 코드의 의존성이나 설계에 문제가 있을 수 있음을 시사한다. 테스트는 단순히 버그를 찾는 도구가 아니라, 더 나은 설계를 이끄는 중요한 길잡이가 된다.
근본 원인을 파악하고 이해하기
발생한 문제의 표면적인 증상만 고치는 것은 임시방편에 불과하다. 문제를 깊이 분석하고, 근본 원인을 찾아 해결하려는 노력이 필요하다. 이를 위해 디버깅 도구와 로그를 활용하는 데 익숙해지고, 문제 해결 과정에서 체계적인 접근 방식을 습득하자. 근본 원인을 찾아 해결하는 경험은 단순히 버그를 수정하는 것을 넘어, 문제를 보는 시각을 넓히고, 더 나은 개발자로 성장하게 한다.
마치며
성장이란 결국 '좋은 경험'의 누적과 그것을 통한 발전이 아닐까? 우리가 현재 맡고 있는 일에서 최선을 다하고, 그 과정에서 얻는 경험들이 쌓여 진정한 성장이 이루어진다고 믿는다.
'배움 조각 (리더십)' 카테고리의 다른 글
[책] 테크니컬 리더 - 훌륭한 테크니컬 리더의 특징 (0) | 2024.11.21 |
---|---|
[책] 테크니컬 리더 - "사람에 대한 것이야말로 당신의 일" (0) | 2024.11.20 |
[책] 테크니컬 리더 - 협곡 고원 패턴 (2) | 2024.11.14 |