기술 재구현을 통한 프로그래밍 마스터하기
여러분은 도구가 어떻게 작동하는지 모른 채 매일 도구를 사용합니다. 프레임워크와 라이브러리는 빠른 작업을 돕기 위해 복잡성을 숨깁니다. 이는 지식의 공백을 만듭니다.
'build-your-own-x' 방식이 이를 해결해 줍니다. 사용하는 도구의 단순화된 버전을 처음부터 직접 만들어 보는 것입니다. 기술을 단순히 사용하는 단계에서 벗어나, 기술을 설계(architecting)하기 시작하게 됩니다.
이 방식이 효과적인 이유:
신비감을 제거합니다. 도구를 마법처럼 여기는 것을 멈추게 됩니다. 웹 서버가 요청을 라우팅하는 방식이나 Git이 데이터를 저장하는 방식을 배우게 됩니다.
기본기를 가르쳐 줍니다. 서버를 구축하면 소켓(sockets)과 HTTP에 대해 배울 수밖에 없습니다. 해시 맵(hash map)을 만들면 충돌 해결(collision resolution)에 대해 배우게 됩니다. 이것들이 바로 소프트웨어의 구성 요소입니다.
문제 해결 능력을 향상시킵니다. 밑바닥부터 직접 만들 때는 인터넷에서 해결책을 그대로 복사해 올 수 없습니다. 문제를 세분화하고 스스로 답을 찾아내야 합니다.
자신감을 길러 줍니다. 복잡한 시스템을 만들어 보는 경험은 더 큰 프로젝트를 다룰 수 있는 기술을 제공합니다.
이론을 적용하게 합니다. 네트워킹과 알고리즘에 관한 강의실 수업 내용을 실무 기술로 전환할 수 있습니다.
작게 시작해도 좋습니다. 데이터베이스나 명령줄 도구(command-line tool) 같은 도구를 하나 골라 그 기본 기능을 재현해 보세요.