개발자는 전문직으로서 제품 도메인에 대한 이해뿐만 아니라 다양한 기술적 지식을 겸비하는 것이 중요합니다. 실무에서 개발하며 도메인에 대한 깊은 고민을 통해 커리어 경험을 쌓는 것이 가능합니다. 그러나 한 회사에 근무하면서 여러 도메인에 대한 경험을 짧은 시간 내에 얻기는 어렵습니다. 이런 경우, 사이드 프로젝트나 스터디를 통해 다른 도메인에 대한 경험이 보다 유익할 수 있습니다.
대부분의 소프트웨어 개발자는 자신이 전문적으로 다루는 도메인의 프로그래밍에 익숙하며, 역사적으로 중요한 프로그램들을 연구하는 일은 드뭅니다. 이로 인해, 개발자들은 서로의 성공보다는 실수를 반복하는 경향이 있습니다.
500 Lines or less
라는 책은 이러한 문제를 예방하려는 목적을 가지고 있습니다. 이 책은 프로그래머가 새로운 시스템을 설계할 때 초기에 고려해야 할 디자인 결정들에 대해 설명합니다. 각 장을 읽기 전에, 주요 디자인 제약 사항과 문제 해결 방법을 고민 해봅니다.
이 책은 그래프 데이터베이스, 지속적 통합(CI) 시스템, 파이썬 인터프리터, 웹 크롤러, 키-값 데이터베이스, 이벤트 주도 웹 프레임워크, 웹 스프레드시트, 합의에 의한 클러스터링, 운영체제 스케줄러 등 다양한 분야를 다룹니다.
이 책을 토대로 각 주제에 대한 문서를 읽고 현대적 맥락에서 재해석하며(이 책은 2015년에 출판되었습니다.), 해당 프로그램을 어떻게 발전시킬 수 있을지 고민하는 것을 목표로 합니다.