프레임워크 선택 및 학습


지난 두 장에서는 프레임워크가 무엇인지와 어떤 것들이 있는지를 다루었습니다. 이번 장은 실무적인 부분입니다: 프레임워크를 사용할지, 어떤 것을 선택할지, 그리고 어떻게 학습할 것인지입니다. 순서가 중요합니다. 왜냐하면 첫 번째 질문이 가장 자주 건너뛰어지기 때문입니다.
정말로 프레임워크가 필요한가?
두 개의 프로젝트를 생각해봅시다. 첫 번째는 계정, 폼, 그리고 공유된 데이터에 반응하는 화면들이 있는 앱입니다. 직접 만드는 것은 프레임워크가 이미 완성한 정확한 기반을 다시 만드는 것을 의미하며, 순수 HTML/JavaScript 버전은 흩어진 형태의 반은 테스트된 자체 제작 프레임워크가 되어 아무도 유지하고 싶지 않을 것입니다. 이 경우 Django나 React를 사용하는 것이 다른 방법보다 옮겨야 할 부분을 줄이는 선택입니다.
두 번째는 랜딩 페이지, 콘텐츠 사이트, 작은 스크립트, 어딘가로 제출되는 폼입니다. 순수 HTML, CSS, 그리고 조금의 JavaScript가 이런 것들을 빌드 단계 없이, 의존성 업데이트 없이, 내년에 마이그레이션할 것 없이 커버합니다. 이런 페이지를 완전한 프레임워크로 감싸는 것은 도구만 이득을 보는 기계 장치를 추가합니다. 많은 숙련된 개발자는 순수 코드를 의도적으로 배포하며, 이는 초보자의 타협이 아니라 전문적인 답입니다.
엔지니어링에는 두 경우를 모두 다루는 오래되고 무딘 규칙이 있습니다: KISS, "Keep It Simple, Stupid". 그 비난은 디자이너가 아니라 디자인을 향합니다. 아이디어는 최고의 해결책이 일을 여전히 해내면서 가장 적은 기계 장치를 가진 것이라는 뜻입니다. 위의 두 프로젝트 모두 이를 따르고, 반대의 답에 도달합니다.
그래서 테스트는 각 프로젝트마다 새로 물어지는 한 가지 질문입니다: 유지해야 할 기계 장치가 가장 적은 옵션을 선택하세요. 기반이 제품을 압도할 때, 그것이 프레임워크입니다. 제품이 거의 전부일 때, 그것이 순수 코드입니다.
어떤 것을 선택하는가
답이 그렇다면, 우아하지 않은 기준으로 선택하세요. 벤치마크와 기능 비교는 가장 유용하지 않은 입력입니다. 왜냐하면 같은 계열 내에서 유명한 옵션들은 모두 충분히 빠르고 모두 기능이 충분하기 때문입니다. 실제로 당신의 일상을 형성하는 것:
에코시스템과 커뮤니티: 성숙한 문서, 답해진 질문, 그리고 마주칠 문제들을 위한 패키지. 당신이 참여하는 팀과 코드베이스: 최고의 프레임워크는 보통 당신의 프로젝트가 이미 사용하는 것이며, 일관성이 팀 내에서 새로움을 이깁니다. 일자리 시장 (일을 위해 배우는 경우): 순전한 사용량 수치가 중요하며, 이는 많은 사람들이 React를 합리적인 첫 선택으로 만드는 큰 부분입니다. 그리고 당신이 알고 있는 언어: Python 개발자는 품질과 무관한 이유로 Rails보다 Django에 더 빨리 도달합니다.
마지막까지 순수 코드 옵션을 목록에 유지하세요. 비교 표가 채워지고 어느 후보도 단순성 테스트에서 "아무것도 아님"을 이기지 못하면, 그것이 당신에게 무언가를 말하는 답입니다.
어떤 프레임워크든 학습하는 방법
언어를 먼저 배우세요. 프레임워크는 어디서나 그 언어를 가정합니다: React 코드는 처음부터 끝까지 JavaScript이고, Django 앱의 모든 혼란스러운 줄은 아래에 Python입니다. 프레임워크로 건너뛴 학습자는 두 가지 수수께끼를 한 번에 디버깅하게 되며, 프레임워크의 동작과 언어의 구문, 어느 것이 어느 것인지 알 방법이 없습니다. React가 당신의 목표라면, JavaScript 트랙이 실제 첫 단계입니다; Django나 pytest의 경우, Python 트랙이 같은 역할을 합니다. 언어 먼저는 거기서 전부 이전되기 때문에 존재하는 가장 큰 지름길입니다.
그런 다음 작고 실제적인 것을 만드세요. 공식 튜토리얼에 기대면서 만드는 당신이 실제로 원하는 작은 프로젝트 하나는 보기와 읽기의 어떤 양보다 더 많이 가르칩니다. 왜냐하면 프레임워크의 모양은 당신의 손 아래에서만 의미가 되기 때문입니다. 첫 프로젝트를 의도적으로 적당하게 유지하세요: 그것의 전체 일은 당신을 프레임워크의 아이디어에 소개하는 것이고, 걸작은 나중에 올 수 있습니다.
그리고 진행하면서, 계속 프레임워크가 당신을 위해 무엇을 하는지 물으세요. 모든 편리한 기능은 뭔가 실제적인 것을 대신 서 있습니다: 라우트는 URL 파싱을 대신, 컴포넌트는 DOM 업데이트를, 모델은 SQL을. 당신은 처음부터 이 레이어들을 마스터할 필요는 없지만, 그것들이 존재한다는 것과 대략 프레임워크가 그것들을 무엇을 하는지를 아는 것이 프레임워크를 사용하는 것과 맹목적으로 의존하는 것을 분리합니다.
이것이 당신을 어디에 남기는가
그것이 모두입니다: 테스트로서의 단순성, 선택을 위한 우아하지 않은 기준, 학습을 위한 프레임워크 전에 언어. 특정 프레임워크가 다음에 나타날 때, 이 문서 또는 실제로 프레임워크의 종류는 그것을 배치할 지도이고, 프레임워크가 무엇인가는 아래의 정의입니다.

