개발자의 개발공부에 대하여

자바/스프링 개발자라면, 향로님을 모르는 사람이 있을까. 배달의 민족 리드 개발자로 일을 하시다가 이제는 인프런에서 CTO로 일하고 계시는데, 블로그 글을 볼 때면, 개발적으로나 인성적으로나 배울 점이 항상 많다고 느끼고 있다. 그래서 안하는 트위터도 눈팅용으로 계정을 파서 팔로우 중인데, 오늘은 위와 같은 트윗이 올라왔다.

개발자로서 한해 한해를 보낼수록 (누가보면 10+차 개발자인줄 알겠다ㅋㅋㅋㅋ😂) 이전에 하던 방식으로 계속 개발을 하는 것만으로는 뒤쳐진다는 느낌을 받을 때가 있었다. 물론 아무것도 모르던 때에는 언어를 많이 알고 프레임워크를 많이 다룰줄 알면 개발을 잘하는 것인줄 착각하고, 파이썬이니, 자바스크립트니 이런저런 언어들을 건드려보고, 괜히 익숙한 스프링을 두고, 파이썬+장고 조합으로 프로젝트를 해보거나, 프론트 앱까지 ReactJS 로 만들어보거나 Dart+Flutter 조합으로 모바일 앱을 만들어보는 등 이것저것 잡다하게 탐험을 하곤 했었다.

지금은 양적인 성장보다 질적인 성장이 중요함을 알기에, 내가 쓰고 있는 기술만이라도 깊게 알고 제대로 쓰려고 노력하고 있다. 그런데 이렇게 하다보니, 가끔은 내가 너무 한가지만 하고 있는 것은 아닌가, 내가 최신 기술을 너무 모르는 것은 아닌가, 하는 불안감이 들 때가 있다.

ChatGPT 를 아예 백엔드 시스템으로 써버려 백엔드 없이 프로젝트를 만든 사례가 나오거나, 내가 쓰고 있는 기술 진영에서 새로운 것들이 마구 쏟아져 나올때면, 나는 이렇게 깊이만 따져도 괜찮은 것인가, 하고 조급한 마음이 들곤 한다. 그냥 가만히 있으면, 내가 1년차 개발자이던, 10년차 개발자이던 그 경력은 영영 상관이 없어져버릴 것 같은 느낌이다.

그래서인지 향로님의 트윗에 많은 공감이 갔다. 그리고 나는 개발자로서 어떻게 저 공허함을 채워나가고 있는가, 스스로를 돌아보게 되었다.

비전공자이기에, 나는 늘 남들보다 불안하고 조급한 마음으로 성장을 해왔다고 생각한다. 부족한만큼 빠르게 실력을 키워야한다는 생각이 있었고, 팀원들에게 조금이라도 피해를 주고 싶지 않다는, 더 나아가서는 팀에게 꼭 도움이 되는 개발자가 되고 싶다는 생각이 있었다.

하지만 마음이 급할수록 성장은 오히려 더뎌지는 것 같다. 한 가지에 집중하지 못하고, A를 공부하다보면, B도 빨리 해야할 것 같아서 B도 건드리다가, C도 중요하다는 말을 들으면, 금새 C까지 일을 벌려놓고 있다가 결국 어느 하나도 잘 끝내지 못하는 경우가 많았다. 그러다가 결국 A, B, C로 다 끝내지 못한 스스로를 돌아보며, 이러나 저러나 하나씩 천천히 차근차근 해내야한다는 것을 깨닫곤 한다.

개발 공부를 계속 하다보니, 어떤 것 하나를 완벽하게 마스터한다는 것은 절대적으로 불가능해보인다. 예를 들어, "MySQL을 마스터하겠어!" 라고 공부 목표를 잡아버린다면, 결국 MySQL 만 깊게 공부하다가 질려서 나가 떨어져버리게 되고, 그것을 공부하는 동안 다른 것들이 눈에 밟혀 집중하지 못할 것이다. 즉, 이러한 접근법은 지속가능한 공부방법이 아니다.

그렇다면 어떻게 공부를 해야할까? 나는 우리가 10+년동안 배워왔던 교육과정들이 괜히 만들어진게 아니라고 생각한다. 초등학교때부터 고등학교때까지 교육과정을 보면 한마디로 이런식이다.

  • 초등학교 : A, B, C 를 모두 레벨 1수준으로 배운다.

  • 중학교 : A, B, C 를 모두 레벨 2수준으로 배운다.

  • 고등학교 : A, B, C 를 모두 레벨 3수준으로 배운다.

결국 어떤 단계에서도 A를 레벨 1부터 3까지 배우는 때는 없었다. 우리는 A 1단계 -> B 1단계 -> C 1단계 -> A 2단계 -> B 2단계 -> C 2단계 ... 이런 사이클을 반복하며 A, B, C를 골고루 조금씩 배워서 쌓아나간다.

개발도 어떻게 보면 비슷할지 모른다. A를 마스터하려면 100년이 있어도 모자랄지 모른다. 너무 조급해하지않고, 내 영역에서 모든 분야를 조금씩 레벨업 시켜나가면 된다. 그러다보면 자연스럽게 내 영역도 넓어지지 않을까.

주말을 제외하고 10day challenge 를 반복해나가면 어떨까.

  • 월-금요일의 5일씩 2주동안 총 10일간

  • 매일 3시간이상

  • Java, Spring, JPA, Network, Infra 등등 하나의 주제에 대해서 한 권의 책이나 하나의 강의를 깊게 듣고 파헤쳐본다.

  • 매일 배운 내용을 이곳, 블로그에 정리하며 복습한다. 하루하루 쌓여가는 지식을 눈으로 확인한다.

이렇게 사이클을 여러 번 돌리게 되면, 충분히 조급한 마음을 가지지 않고도, 내 역량껏, 나의 속도로 꾸준한 공부를 해나갈 수 있을 것 같다.

Last updated