이 글을 쓰다 보니 내 자신이 꼰대라는 느낌도 들지만, 젊은 엔지니어들(개발 초입)에게 글을 쓴다는 게 상당히 조심스럽긴 하다. 그래도 도움이 될 분들이 있기를 바라면서 생각했던 부분들을 정리한다.
1. 기본기가 없는 고수는 없다.
- 기본기(개념, 원리, 원칙)에 대한 이해도를 높이고, 표준이나 규약 - HTTP 스펙(RFC 7230 ~ RFC 7235), HTML W3C, API(Java Servlet API, Java Persistence API 등)에 대한 분석을 통해 내 것으로 만든다. 기본기와 표준은 응용을 위한 밑거름이 된다. 해당 케이스를 찾기 위해 검색하는 데 시간을 낭비하지 말고 기본기를 다지는 데 노력을 더 한다.
- 예를 들어, 스펙을 앎으로써 웹 개발의 경우 응용을 통해 보안 위협을 효율적으로 예방할 수 있고, APM 툴(성능 분석 툴)을 만들 수 있고, 우리가 필요로 했던 것들을 스스로 만들 수 있게 해 준다. 또한, 버그를 줄이는 잠재 능력을 갖게 되기도 한다.
2. 스스로 지식의 넓이, 깊이, 실행력을 꾸준히 키운다.
- 지식을 늘 가까이 한다. 독서, 블로그/SNS/뉴스레터 구독, 커뮤니티 활동 등 방법은 많다.
- 오픈 소스 분석을 게을리 하지 않는다. 검증된 오픈 소스들은 내 자신이 만든 코드보다 품질이 더 뛰어날 가능성이 있고 남의 코드를 통해 내 코드에 대한 개선점을 찾는 데 많은 도움이 된다.
- 비즈니스에 대한 연구도 병행해야 한다. 엔지니어라고 해서 기술에만 관심을 가지면 안 된다. 비즈니스의 철학을 모르고는 높은 완성도의 제품이 나오기 어렵다.
- 실행력의 수준을 높여야 한다. 엔지니어는 기술적 완성도 점검을 위한 프로토타입형에 그칠 것이 아니라, 그 기술에 대해 제품/서비스형 프로토타입으로 끌어올리는 몸 만들기가 필요하다. 그래야만 비즈니스의 가치를 스피드와 구현 가능성에 헌납해 버리는 오류를 범하지 않게 된다.
3. 기술 만능주의를 경계한다.
- 최근 들어 많은 기술과 서비스들이 쏟아져 나오면서 다양한 IT 트렌드를 만들어 가고 있다. 이는 엔지니어들에게 기술 만능주의가 Silver Bullet이라는 망각에 빠지기 쉽다. 기술 만능주의보다는 해당 기술이 비즈니스에 적합한 기술인지를 분별하는 식견을 가져야 오버스펙을 피할 수 있다.
4. 생산적인 일에 투자할 수 있도록 자신의 환경을 개선한다.
- 비효율적인 업무에 대해 언제나 회사 욕만 하면서 지낼 것인가. 스스로 비효율적인 부분을 고치려는 노력을 해야 한다. 시스템이 해야 할 반복적인 일은 사람이 하고 있지는 않은지, 불필요한 요식행위의 프로세스는 없는지를 확인해서 개선하는 일을 서두른다. 중요한 부가가치는 사람의 생각과 노력이 개입되어야만 이룰 수 있다.
- 제대로 된 제품을 만들기 위해서, 허비되는 자투리 시간을 줄이기 위해서 엔지니어에겐 개발 도구가 있게 마련이다. 이 도구 사용을 능수능란하게 할 수 있도록 노력한다.
5. 매너리즘 극복의 최선은 변화다.
- 어떤 울타리(직장, 사업 등)든지 시간이 지나가면 그 흐름에 묻혀버리고 만 듯한 느낌을 받을 때가 많다. 그럴 때일수록 어렵고, 새롭고, 다른 것들을 할 때까지, 될 때까지, 이룰 때까지 끈기 있게 하는 게 필요하다. 환경을 바꾸지 못하면 자기 자신을 바꾸어 그 울타리를 벗어나야 한다.
- 시간의 흐름에 따른 자신의 포지셔닝을 계획하고 이행하는 습관을 가진다. 조직의 윗선으로 올라갈수록 자신의 위치에서 해야 할 일을 찾는 것, 회사의 비전과 자신의 의사결정 수준 간의 갭(비전 지향 의사결정 능력)을 줄이는 것에 대해 부단히 노력해야 한다.
6. 내 이름을 빛내기 위한 노력을 한다.
- 엔지니어는 개발만 잘하면 된다는 생각은 버려야 한다. 개인 브랜딩, 즉 블로그를 운영하고, SNS 활동을 하며, 커뮤니티나 외부 세미나 수강·발표 기회 등을 가지려고 스스로 노력하고, 이를 통해 자신의 잠재력을 높이고 사내외에 자신의 가치를 알려 인맥을 쌓아야 한다. 이로써 자존감이 생기고, 엔지니어로서 잘하고 있다는 확신과 열정을 지속시키는 중요한 단초가 된다.
7. 커뮤니케이션 능력은 아무리 강조해도 지나치지 않는다.
- 한 사람의 천재가 모든 것을 할 수 있는 게 아니라 한 사람이 못할 일을 여러 전문가가 함께 모여 만들어가는 시대다. 전문가의 실력은 전문 지식 곱하기 커뮤니케이션 능력이다. - 안철수
- 자신의 언어가 아닌 남이 이해할 수 있는 언어로, 상대방의 영역을 이해하는 노력을 하고, 엔지니어의 안 좋은 환경에서 오는 피해 의식을 잊고, 자신의 지식을 과시하거나 남의 허점을 짚어내는 게 목적이 아닌, 공통의 목표를 상기시키고 동료 의식과 협력 의식을 가지도록 노력한다.
8. 야무진 꿈을 가진다.
- 아무리 끈기와 열정을 가지고 노력하는 엔지니어라도 지치지 않으려면, 자신의 인생을 바꿀 수 있는 엔지니어만이 꿀 수 있는 꿈은 하나 있어야 하지 않을까.
9. 남에게 알리는 수고가 자신을 한 단계 더 성숙하게 만든다.
- 자신이 알고 있는 경험을 공유한다는 건, 그 분야의 거장이 해야 할 필수 과정이고 갖춰야 할 의무다. 가르치는 사람은 배우는 사람보다 2~3배 이상의 노력과 경험을 가지고 올바른 지식을 전파하려고 노력하게 된다. 이 과정에서 자신도 모르는 사이에 실력이 올라가 있고, 남에게서 존경이라는 말을 들을 수 있는 경험을 가지게 된다.
- 자신의 지식을 남에게 전파하는 것 자체가 개발자 생태계 전체를 돕는 일이 된다.
기본기를 쌓고, 지식을 넓히고, 커뮤니케이션하고, 꿈을 갖는 것. 어느 것 하나 단시간에 이뤄지지 않지만, 꾸준히 실천한다면 어느 순간 성장한 자신을 발견하게 될 것이다.

