이 글은 예전에 들었던 강의 내용을 정리한 내용이에요.
개발을 어떻게 할 것인가: 깊이와 폭의 균형#
개발자라면 누구나 더 나은 코드를 작성하고, 더 효율적으로 문제를 해결하며, 더 창의적인 기술을 탐구하고 싶어 해요. 하지만 어떻게 더 나은 개발자로 성장할 수 있을까요?
철학자 칸트는 이렇게 이야기했어요. "철학이 아닌 철학함을 배워야 한다" 그의 말을 빌려 "개발이 아닌 개발함"을 생각하고, 깊이와 폭을 키우는 것이 중요해요.
개발의 깊이#
개발의 깊이는 기술의 구조와 원리를 이해하고, 내가 사용하는 기술이 어떻게 동작하는지 알아가는 과정이에요.
내 코드가 왜 돌아가는지 정확히 아는 것은 단순한 기능 구현을 넘어서는 중요한 단계예요.
왜 깊이를 키워야 하는가?#
- 기능을 더 빠르게 구현할 수 있어요
- 버그가 적은 코드를 작성할 수 있어요
- 디버깅이 효율적으로 이루어져요
- 이렇게 함으로써 재미를 느껴요
깊이를 키우는 방법#
- 왜 되는지/안 되는지 알아내기: 단순히 작동 여부를 확인하는 데 그치지 않고, 이유를 탐구하기
- 블랙박스를 줄이기: Spring, Django, React 등에서 사용하는 명령어와 함수가 어떻게 작동하는지 파고들어 보기
- 당연한 것에 의문을 품기: 익숙한 코드라도 의도를 추측하고 극단적인 상황을 상상해 보기
예를 들어, Spring에서 사용하는 어노테이션이나 React의 함수들이 내부적으로 어떻게 작동하는지 모른다면 그것은 나에게 블랙박스예요. 이를 이해해야 진정한 깊이를 키울 수 있어요.
개발의 폭#
개발의 폭은 다양한 기술에 대한 관심과 내가 하는 업무와 관련된 다른 기술에 대한 이해를 의미해요.
국내외 개발 커뮤니티에서 트렌드를 파악하고, 새로운 기술에 도전해 보는 것도 폭을 넓히는 좋은 방법이에요.
왜 폭을 키워야 하는가?#
- 새로운 기술을 빠르게 배울 수 있어요
- 좋은 설계에 대한 안목이 높아져요
- 내가 더 잘할 수 있는 일을 발견할지도 몰라요
- 이렇게도 재미를 느낄 수 있어요
폭을 넓히는 방법#
- 다음 토이 프로젝트에는 GraphQL을 사용해 보기
- 웹과 상관없는 프로그램 만들어 보기 (예: 메일 클라이언트)
- Django로 만든 블로그를 Spring MVC로 다시 만들어 보기
- React-hook-form으로 구현한 form을 Recoil로 재구현하기
추천 활동 및 도서#
폭을 넓히기 위해 아래와 같은 책들을 읽어보는 것도 좋아요:
- 프레드 브룩스, 맨먼스 미신
- 쳇 하스, 안드로이드 뜻밖의 역사
- 펠리너 헤르만스, 프로그래머의 뇌
- 앨런 튜링, 지능에 관하여
- 박정일, 튜링 & 괴델: 추상적 사유의 위대한 힘
사람과 기술에 대한 존중#
기술 뒤에는 사람도 있다는 사실을 꼭 기억하세요. 모든 기술적 선택은 양자택일이며, 어떤 기술이 엉망처럼 보일지라도 대신 얻는 무언가가 있을 가능성이 있어요.
비난하기 전에 더 나은 방법을 고민하고, 다양성을 존중해야 해요.
I Love My Job#
개발자는 단순히 코드를 작성하는 사람이 아니에요.
철학적 사고와 실용적 접근법을 통해 깊이와 폭을 균형 있게 키워 나갈 때 진정한 즐거움을 느낄 수 있어요.
여러분도 자신만의 방식으로 개발함을 실천해 보세요!
Anybody can make history. Only a great man can write it.
— Oscar Wilde