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

Ruby를 배우기 전에 Rails를 먼저 배워도 될까요?

Ruby를 배우기 전에 Rails를 먼저 배울 수 있을까요? 잠시 동안은 가능합니다. 하지만 앱이 REST 기반 스캐폴드 생성이나 트위터 클론 수준을 넘어 성장하기 시작하면 반드시 벽에 부딪히게 됩니다. 물론 몸으로 익히는 과정에서 어느 정도의 Ruby는 자연스럽게 습득되겠지만, 그 방식으로는 시간이 너무 오래 걸립니다.

Rails를 제대로 마스터할 만큼 Ruby를 익히고 싶다면, Ruby를 독립적으로 공부하는 것이 좋습니다. 서점에 가면 Ruby 관련 책이 셀 네 개를 가득 채울 정도로 많습니다. 그중 상당수가 훌륭하지만, 단연 독보적인 몇 권이 있습니다. 이 책들은 Ruby를 배우는 전 과정에서 든든한 길잡이가 되어 줄 것입니다.

처음부터 시작하기

Rails가 여러분의 첫 프레임워크이고, Ruby가 첫 프로그래밍 언어일 수도 있습니다. 프로그래밍 자체가 처음이라면 《Learn to Program》부터 시작하는 것이 좋습니다. 이 책은 코드 작성 경험이 전혀 없어도 Ruby로 직접 프로그램을 작성하는 방법을 알려주며, 처음부터 좋은 코딩 습관을 길러 줍니다. 실제로 이 책을 인생 첫 프로그래밍 입문서로 삼고 즐겁게 학습한 사람들을 저는 여럿 알고 있습니다.

다음으로 《Eloquent Ruby》는 '답게 보이는' Ruby 코드를 작성하는 법을 가르쳐 줍니다. (Ruby 개발자들에게 이것은 정말 중요합니다.) 클래스를 정의하는 방법, 실행 중에 메서드를 동적으로 생성하는 방법, 그리고 여러 코드 작성 방식 중 하나를 선택해야 하는 이유까지 배울 수 있습니다.

《Eloquent Ruby》를 다 읽고 나면 관용적인(idiomatic) Ruby를 익히게 되고, 이후 마주치는 코드를 훨씬 쉽게 읽고 이해할 수 있게 됩니다.

난이도가 올라갈 때

앞선 책들을 읽고 나면 Ruby 코드를 작성할 줄은 알게 되지만, 여전히 코드를 체계적으로 구성하는 데는 어려움을 느낄 것입니다. 어떤 메서드를 한 클래스가 아닌 다른 클래스에 넣어야 하는 시점은 언제일까요? 클래스가 너무 비대해졌다는 것은 어떻게 판단할까요? 작성한 메서드가 너무 복잡해서 스스로도 이해할 수 없을 때는 어떻게 해야 할까요?

《Confident Ruby》와 《Practical Object-Oriented Design in Ruby》는 중급 Ruby 개발의 보석 같은 책입니다. 이 두 권을 읽고 나면 여러분의 Ruby 코드는 한 단계 더 발전하게 될 것입니다.

어떻게 그런 일이 가능할까요?

《Confident Ruby》는 간단하고 보편적인 패턴을 따라 읽기 쉬운 Ruby 코드를 작성하는 법을 가르쳐 줍니다. 핵심은 자신이 하는 일을 명확히 드러내는 코드입니다. 결정 사항, 중복, 엣지 케이스를 코드 바깥으로 밀어내어, 불필요할 때는 복잡한 부분을 신경 쓰지 않아도 되는 코드. 그야말로 '그냥 잘 동작하는' 코드를 말합니다.

《Practical Object-Oriented Design in Ruby》는 코드에 좋은 설계를 적용하는 방법을 다룹니다. 객체와 메서드, 그리고 그들 간의 상호작용을 어떻게 구조화해야 코드를 더 쉽게 사용하고 테스트할 수 있는지 배우게 됩니다. 과도한 구조화 없이 유연한 코드를 만드는 것, 그리고 코드가 변경될 때 수정하기 싫지 않은 테스트를 작성하는 것이 이 책의 주제입니다.

지속적인 학습

그다음에는 다양한 아이디어를 폭넓게 접하고, 흥미로운 주제를 더 깊이 파고들며 배움을 이어가면 됩니다. 블로그도 좋지만, 요즘은 다양한 Ruby 주제를 다루는 훌륭한 리소스가 꾸준히 쏟아져 나오고 있습니다.

제가 특히 좋아하는 리소스는 다음과 같습니다:

  • The Ruby Rogues 팟캐스트 (그 외 다른 팟캐스트와 강연)
  • RubyWeekly
  • RubyTapas
  • Ruby Steps

RubyTapas와 Ruby Steps는 모두 유료 서비스입니다. 하지만 두 서비스 모두 무료로 이용할 수 있는 에피소드와 뉴스레터를 제공하므로, 구독하기 전에 자신에게 맞는 스타일인지 충분히 살펴볼 수 있습니다.

저 역시 수년간 무작정 접한 수많은 아티클과 스크린캐스트를 통해 Ruby에 대해 정말 많은 것을 배웠습니다. 가장 체계적인 정보 습득 방법은 아니지만, 분명 효과가 있습니다.

다시 Rails로 돌아가서

Rails는 곧 Ruby입니다. Ruby를 배우는 데 투자한 시간은 Rails를 이해하는 데에도 도움이 되고, 그 반대도 마찬가지입니다.

따라서 Rails를 사용하기 위해 반드시 먼저 Ruby를 배워야 하는 것은 아닙니다. Ruby를 어설프게나마 활용하면서도 Rails로 많은 것을 만들어 낼 수 있습니다.

하지만 그것이 최선의 방법은 아닙니다. 결국 언젠가는 Ruby를 배워야 하고, 그때 위에서 소개한 책들을 활용해 탄탄한 기반을 다질 수 있습니다.