개발자가 쉽게 터득하지 못하고, 빨리 터득하지 않으면 안 되는 스킬이 있는 것 같아요. 9년 차에 접어들면서 '아, 이런 건 미리 터득할걸' 또는 지금 와서 생각해 보니 '잘 터득했다'라는 스킬이 있어서 이에 관해 이야기해 봅니다.
벨로그에 막 생각났을 때 적은 글을 정리해서 올립니다.
1️⃣ 뛰어난 의사소통 능력
1인 개발자가 아닌 이상 회사를 다니든 창업하든 상관없이 여러 사람과 함께 일하게 된다. 특히 연차가 쌓이고 기술 리더가 될 수록 많은 사람과 함께 해야 하고 그들을 이끌어야 하는데, 많은 사람들과 효과적으로 일하려면 의사소통 스킬이 뛰어나야 한다. 특히 가장 중요한 것은 문서나 특정 문제를 빠르게 이해하고 내용을 잘 정리할 줄 알아야 한다. 내용을 빨리 이해하는 건 효과적인 논의를 하고 중요한 질문을 던지기 위함이다.
2️⃣ '틈'을 재빠르게 파악하는 능력
당연한 이야기지만 기술이나 문제의 핵심을 재빠르게 이해하고 파악해야 한다. '틈'을 빠르게 파악하고 좋은 피드백을 주는 선임이 있는 팀과 그렇지 않은 팀의 효율성 차이는 아주 크다. 예를 들면, 예전에 <좋은 개발자가 되기 위한 버그 고치는 데 드는 비용>이라는 글을 포스팅했을 때, 개발 시작하기 전에 충분한 검토와 논의를 거쳐 설계의 틀을 잘 잡는 것이 중요한 이유에 관해 이야기 했다. 하지만 무조건 검토와 논의를 한다고 틀이 잘 잡히는 것이 아니다. 검토에 참여한 사람들의 검토 실력에 따라 이 과정이 효과적일 수 있고 아닐 수 있다. 예를 들어, 나는 예전에 주니어 시절 선임들이 조용히 설계 문서를 읽고 듣기만 하던 설계 검토 미팅에 참여했던 적이 있다. 결국 설계를 마치고 개발 단계를 마친 후 기존 설계의 흠을 발견했고, 코드 전체를 리펙토링하는 불상사가 발생했다.
3️⃣ 빅픽처 보는 능력
알고리즘 문제를 풀 때 문제의 단편만 보고 바로 코드부터 쓰는 경우가 다반사다. 이렇게 문제의 한 부분만 보고 풀면, 틀린 답을 내리기 쉽다. 하지만 큰 그림을 먼저 보고 포괄적인 솔루션을 제공하면 좋은 답을 내릴 가능성이 높다. 단순히 코딩 문제에만 국한되지 않고 라지 시스템 설계 또는 비즈니스 관련 결정을 내릴 때도 빅픽처를 잘 볼 줄 알면, 퀄리티가 높은 결과물을 낼 수 있다.
4️⃣ 라지 스케일 시스템 설계 능력
코딩 공부할 때 간과하는 것은 설계 공부다. 그중에서도 라지 스케일 시스템 설계 능력이 아주 중요하다. 근데 라지 스케일 설계는 학교에서 쉽게 배울 수 없고, 트래픽이 다량으로 발생하는 시스템을 다루어야지만 배울 수 있는 유용한 지식이다. 단순한 설계나 코드는 요즘 챗GPT가 쉽게 힌트를 줄 수 있지만, 라지 스케일 시스템 설계 능력은 단순하게 완성할 수 없다. 많은 아이디어를 검토하고, 절충점을 찾고, 다양한 전문가와 검토를 거쳐야 하는 복잡한 프로세스다.
5️⃣ 글 잘 쓰는 능력
"개발하는 데 코드만 잘 쓰고 의사소통만 잘하면 되지 않을까?"라고 할 수 있다. 코드만큼 중요한 것도 코드를 잘 설명하는 것이다. 아무리 가독성이 높은 코드를 작성해도 비즈니즈 로직이 복잡하면 추가 설명이 필요하다. 마찬가지로 설계만큼 중요한 것도 설계한 것을 잘 설명하고 새로운 팀원이 와도 쉽게 그 시스템을 이해할 수 있도록 전문 지식을 잘 문서화해야 한다.
그 외 공유한 스킬 2개 (자세한 내용은 원문에)
- 프로젝트 관리 능력
- 같이 일하고 싶은 동료가 되는 능력
https://velog.io/@hello_kimcoder/코딩-외에-개발자에게-절대적으로-필요한-7가지-스킬