Computer >> 컴퓨터 >  >> 프로그래밍 >> Ruby

오래된 자료로 배우고 최신 버전 따라잡는 법

(이 글은 예전에 필자의 메일링 리스트 구독자들에게 보낸 내용입니다. 마음에 드셨다면 구독을 통해 비슷한 글들을 더 만나보세요!)

Rails 생태계는 놀랍도록 빠르게 변합니다. 인쇄 출판물이 감당하기에는 지나칠 만큼 빠른 속도죠. 저처럼 프레임워크와 젬(gem)의 최신 버전을 배우고 싶어 하는 사람이라면 답답할 수밖에 없습니다. 정작 훌륭한 학습 자료들은 대개 몇 버전씩 뒤처져 있거든요.

그래도 이런 자료들은 여전히 큰 가치가 있습니다. 잘 편집된 책, 스크린캐스트, 튜토리얼만큼 라이브러리의 API, 설계 철학, 구조를 깊이 있게 배울 수 있는 매체는 드뭅니다.

예를 들어, 최고의 Rails 책이 Rails 4.0까지만 다룬다면? 그래도 그 책부터 시작하는 것이 좋습니다. 새로운 젬이나 프레임워크를 배울 때 핵심은 '왜' 그렇게 설계되었는지, 그리고 모든 조각들이 어떻게 맞물려 작동하는지 이해하는 것입니다. 이런 통찰은 레퍼런스 문서나 블로그 글에서 얻기 어렵지만, 책에서는 비교적 쉽게 얻을 수 있습니다.

문제는 그다음입니다. 구버전으로 경험을 쌓았다면, 어떻게 최신 버전을 따라잡을 수 있을까요?

변경 사항 따라잡기

대부분의 인기 있는 젬은 git 저장소에 CHANGELOG 파일을 두고 있습니다. bundler가 대표적인 예죠(https://github.com/bundler/bundler/blob/master/CHANGELOG.md). 체인지로그는 버전 간 주요 변경 사항을 따라잡는 훌륭한 도구입니다. 대체로 각 변경점을 짧게 요약해 두었는데, 덕분에 더 자세히 알아볼 출발점을 잡을 수 있습니다.

많은 체인지로그가 GitHub의 버그 번호를 함께 표기합니다. 체인지로그에서 버그 번호가 달린 항목을 발견하면, 해당 프로젝트의 Issues에서 그 버그를 찾아 무엇이, 어떻게, 왜 바뀌었는지 파악할 수 있습니다.

그럼 체인지로그는 어떻게 찾을까요? 저는 보통 'bundler github'처럼 검색어를 입력합니다. 검색 결과 첫 페이지의 GitHub 저장소에서 대부분 찾을 수 있습니다.

체인지로그가 없다면 프로젝트의 README나 GitHub 위키를 살펴볼 수도 있습니다. 다만 이곳은 버전 간 변경 사항 추적을 위해 만들어진 곳이 아니라서, 시간이 더 걸리는 편입니다.

최신 레퍼런스 문서 활용하기

젬을 다루다 보면 항상 최신 레퍼런스 문서를 곁에 두어야 합니다. 앱을 개발하는 도중에 API 사용법과 예제를 즉시 확인할 수 있어야 하니까요.

rdoc.info에서는 모든 젬의 모든 버전에 대한 API 문서를 찾을 수 있습니다. 하지만 더 빠른 문서 조회를 원한다면 Dash나 Zeal을 사용해 보세요.

저는 Dash를 사용하는데, API 문서가 필요할 때 option-Space를 누르고 타이핑을 시작하면 필요한 젬 문서가 순식간에 나타납니다. 작업 흐름을 바꾼 이 작은 습관은 이미 수십 번 그 값을 되찾아 줬습니다.

Rails를 위한 몇 가지 팁

Rails는 규모가 큰 프로젝트이며, Rails 기여자들은 체인지로그와 문서 관리를 아주 잘 해냅니다.

Rails 공식 가이드는 품질이 좋습니다. 게다가 Rails와 같은 git 저장소에서 빌드되기 때문에 항상 최신 상태로 유지됩니다.

최신 Rails 버전을 따라잡고 싶다면 릴리스 노트가 가장 좋은 출발점입니다. 예를 들어 Rails 4.1 릴리스 노트는 https://guides.rubyonrails.org/4_1_release_notes.html 에서 확인할 수 있습니다.

제가 실제로 밟는 학습 과정

지금까지의 내용을 종합하면, 새로운 라이브러리를 완전히 최신 상태로 익힐 때 저는 다음 순서로 진행합니다.

  1. 젬에 대한 책, 튜토리얼 또는 문서를 읽습니다. 가능한 한 가장 최신 자료를 찾으려 노력하고, 읽으면서 해당 버전으로 직접 앱을 만들고 연습합니다.
  2. GitHub에서 프로젝트를 찾습니다.
  3. 프로젝트의 체인지로그, README 또는 위키를 읽으며 내가 아는 버전에서 최신 버전까지 따라갑니다.
  4. 특정 변경 사항이 궁금하면 검색해 보거나 프로젝트의 이슈를 살펴 더 자세히 알아봅니다.
  5. 젬을 최신 버전으로 업그레이드합니다.
  6. Dash에 새 젬의 문서를 설치합니다.
  7. 바로 코드를 작성해 봅니다!

매번 이 모든 단계를 거치지는 않습니다. 하지만 대체로 이런 순서로 진행하며, 막히는 단계가 생기거나 다음에 무엇을 해야 할지 모를 때 이런 로드맵이 큰 도움이 됩니다.

체인지로그를 못 찾거나 문서를 이해하기 어렵다면?

간혹 젬의 GitHub 저장소나 API 문서에서 원하는 정보를 얻지 못할 때가 있습니다. 그럴 때는 직접 코드 속으로 뛰어들어 읽어야 합니다.

의외일 수 있지만, 코드 읽기는 책 읽기와 다릅니다. 파일을 처음부터 끝까지 차례로 읽는 대신, 코드를 탐험(exploring)해야 합니다. 이는 과학이라기보다 예술에 가깝지만, 반드시 익혀야 할 중요한 기술입니다. 그래서 나중에 이 주제로 다시 이야기할 기회가 있을 겁니다!

여러분은 젬의 변경 사항을 따라잡기 위해 어떤 요령을 발견하셨나요? 최신 정보를 유지하는 나만의 방법이 있다면 공유해 주세요.