[개발북로그] 01 개발자 원칙
최근 나홀로 개발자로 약 2년간 개발하면서 앞으로 어떤 개발자가 되어야 하는지에 대한 고민이 깊어졌습니다. 그러던 중 ‘테크 리더 9인이 말하는 더 나은 개발자로 살아가는 원칙과 철학’이라는 부제가 달려있는 개발자 원칙이라는 책을 알게 되었습니다. 더 나은 개발자로 살아가는 이라는 표현이 제가 최근 고민하고 있는 주제와 맞닿아 있는 것 같아 바로 읽어보았습니다. 읽던 중 마음에 와닿는 내용이 있어 공유하고자 개발북로그라는 카테고리를 신설하게 되었습니다.
1. 실수가 반복된다면 그건 개인의 문제가 아니라 시스템의 문제이다.
이 문장을 읽은 순간 머리에 망치를 맞은 기분이었습니다. 최근 코드 리뷰를 하던 중 같은 실수를 반복하는 후배 개발자 때문에 스트레스를 많이 받았습니다. 그런데 이 문장 대로 실수가 반복된다면 개인의 문제가 아니라 시스템의 문제가 맞았습니다. 코드의 결과를 개인의 조심성이나 주의력에 기대는 것이 아니라 풀 리퀘스트를 날리기 전에 유사한 오류가 있는지 점검할 수 있는 테스트 코드나 스크립트를 작성하도록 가이드하거나 깃허브 액션을 작성하면 해결 될 문제였습니다. 앞으로는 이 문장을 교훈삼아 유사한 사례가 있을 때 제가 제어할 수 없는 것에 스트레스를 받는 것이 아니라 제어할 수 있는것에 집중하기로 했습니다. 이는 다음 내용과도 연관됩니다.
2. 제어할 수 없는 것에 의존하지 말자.
제가 좋아하는 개발자인 향로님의 말씀입니다. 외부 상황이나 운 같은 제어할 수 없는 것에 의존하지 말고 제어할 수 있는 것에 집중하여 어떤 상황이 와도 대처할 수 있게 되는 것이 중요하다는 이야기였습니다. 위 사례 처럼 제가 아닌 다른 개발자의 조심성이나 주의력은 제가 제어할 수 있는 것이 아닙니다. 하지만 저는 대화나 피드백을 통해 이를 제어하려고 시도하다가 많은 스트레스를 받았습니다. 앞으로는 이처럼 제가 제어할 수 없는 것에 의존하고 일희일비하는 것이 아니라 깃허브 액션 작성이나, 프로세스 수립 등 제가 제어할 수 있는 것이 촛점을 맞추려고 합니다.
3. 스스로에 대해 잘 알고 성장의 방향을 정하자.
그동안 공부에 대한 자극 영상에서 성장의 방향을 정해야 한다는 이야기는 많이 들었습니다. 하지만 속도 = 속력 + 방향이라는 문장에 확 이해가 되었습니다. 무작정 공부하는 것이 아니라 우선 스스로에 대해 잘 알아야 한다는 이야기였습니다. 제가 가고자 하는 방향과 제가 공부할 수 있는 양을 잘 계산하여 성장의 방향을 정하자는 이야기입니다. 그래서 현재 할 수 있는 개발과 앞으로 하고 싶은 개발을 정리해보기로 했습니다.
4. 프로덕트 기반의 개발을 하자.
프로덕트 기반의 개발이란 기술 자체에 집중하지 말고 그 기술을 이용해서 만들 프로덕트에 집중을 하자는 이야기입니다. 예를 들어 요즘 웹소캣을 많이 쓰니까 웹소캣을 공부하자가 아니라 채팅 시스템을 만들기 위해 웹소캣을 공부하자가 되어야 한다는 이야기입니다. 이는 3번의 방향과 연관된 이야기입니다. 부끄럽게도 사놓고 듣지 않은 개발 강의와 읽지 않은 개발 책들이 많이 있습니다. 저는 그동안 그 이유로 제 게으름만을 탓했습니다. 하지만 생각해보면 해당 강의와 책들은 모두 요즘 유명한 기술이니까, 언젠가 필요할지도 모르니까라는 이유로 사둔 것들이었습니다. 하지만 실제로 사용할 일이 없으니 의욕이 오래가지 못하고 그만두고 말았습니다. 즉, 방향이 정해지지 않았기 때문에 속도가 나지 않았던 것입니다. 생각해보면 끝까지 완주한 책이나 강의는 실제 개발에 이용하기 위해 당장 필요한 기술에 관한 것이었습니다. 그래서 앞으로는 프로덕트를 먼저 정해두고 우선순위에 따라 개발 공부를 이어나가기로 했습니다. 우선순위는 위에 이야기했던 앞으로 하고 싶은 개발을 정리하고 나면 분명해질 것 같습니다. 그렇게 되면 이 블로그의 방향도 좀더 정리될 것 같습니다.
5. 오류를 해결하고 거기서 끝내지 말고 원인을 들여다 보자.
마지막으로 개발자로서 앞으로 가져가고 싶은 태도를 가져왔습니다. 책에서도 나와있듯이 오류의 원인을 알지 못하면 구글링에도 한계가 있습니다. 표면적인 오류만 계속 검색하다가 삼일 밤낮을 새게 됩니다. 하지만 책에서는 문제 해결에서 멈추지 말고 원인까지 들여다 보는 것이 제 미래에 도움이 될 것이라고 말합니다. 저 역시 문제를 발견했을 때 그 문제의 원인을 찾고 이것을 키워드로 검색해서 해결방법을 찾는 방식으로 문제를 해결합니다. 하지만 제가 검색을 통해 찾은 해결방법이 어떻게 이 문제를 해결하는지에 대해서는 깊게 생각해본 적이 없습니다. 그렇기 때문에 제 블로그도 대부분 이런 원인때문에 문제가 발생했고 이렇게 코드를 수정했더니 해결이 됐습니다로 끝납니다. 하지만 앞으로는 여기에 해결된 이유는 무엇무엇인것 같습니다를 더해보려고 합니다.
Next Action
- 제어할 수 없는 것에 의존하지 않고 제어할 수 있는 것에 집중하기
- 현재 할 수 있는 개발과 앞으로 하고 싶은 개발 정리하기
- 하고 싶은 개발을 토대로 프로덕트 기반으로 개발 공부하기
- Debug 카테고리에 글 쓸 때 해결된 이유 추가하기