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

Rails 앱에 맞는 라이브러리, 어떻게 고를까? 선택 피로에서 벗어나는 현실적인 가이드

Angular vs Ember. RSpec vs Minitest. Haml vs Slim vs ERB. 새 프로젝트를 시작하면 수많은 선택의 기로에 서게 됩니다. 진영마다 열렬한 지지자들이 목소리를 높이죠. 그러다 문득 깨닫게 됩니다. 네 번째 튜토리얼을 끝까지 읽고, 'Sass가 Less보다 나은가'를 두고 30개 댓글이나 달린 논쟁을 추적하는 데 낭비한 시간으로는 이미 프로젝트를 시작할 수 있었다는 사실을요.

그렇다면 어떻게 해야 '올바른' 라이브러리를 골라 실제 코드 작성에 착수할 수 있을까요?

선택의 압박감, 생각보다 큽니다

개발 커뮤니티는 놀랍도록 빠르게 움직입니다. 매일같이 새로운 라이브러리가 쏟아져 나오고, 각자 다양한 문제를 해결한다고 내세웁니다. 그중 많은 라이브러리는 이미 해결된 문제를 되풀이해서 해결하고, 또 그중 많은 것들은 기존 라이브러리에 대한 반작용으로 탄생합니다.

논쟁은 개인적인 영역까지 번집니다. 사람들은 이런 라이브러리를 다루며 인생의 한 부분을 경험 쌓기에 보냈습니다. 어떤 이들은 지금 새로 좋아하게 된 라이브러리가 해결하고자 했던 바로 그 문제로 고통받은 적도 있습니다. 그래서 특정 라이브러리를 옹호하는 논거에는 늘 열정과 감정이 실려 있습니다.

이런 열정적인 주장들을 읽다 보면, 잘못된 결정을 내리면 경멸당하지 않을까 불안해지기 쉽습니다.

라이브러리 선택을 편안하게 받아들이는 방법

모든 사람이 당신의 선택에 동의하지 않으리라는 건 분명합니다. 최선은 그 결정에 스스로 만족하는 것입니다. 선택한 라이브러리가 기술적으로도, 개인적으로도 만족스러워야 합니다.

기술적인 측면에서는 프로젝트에 맞는 젬(gem)을 고르는 가이드를 참고해 보세요. 그 조언 대부분은 이런 종류의 선택 전반에 그대로 적용됩니다.

물론 개인적인 선호도 역시 선택에 영향을 줍니다. 하지만 해당 라이브러리를 사용하는 앱을 직접 만들어 보기 전에는, 어떤 라이브러리를 더 선호하게 될지 예측하기 어렵습니다.

GitHub 코드 검색이 이런 결정에 큰 도움이 됩니다. 사용하려는 라이브러리의 클래스 이름을 검색하면 해당 라이브러리를 실제로 사용하는 프로젝트를 찾을 수 있습니다. (클래스 이름은 대체로 README나 gem 문서에서 확인할 수 있습니다.)

실제 코드를 살펴보면 라이브러리가 어떻게 활용되는지, 다른 코드와 라이브러리와 얼마나 자연스럽게 통합되는지, 사용이 얼마나 간편한지를 파악할 수 있습니다. 특히 기술적 논거만으로 판단하기엔 정보가 부족할 때 이 방법이 큰 힘이 됩니다.

애초에 그 선택, 정말 중요할까?

잘못된 선택은 나중에 고통을 안겨줄 수 있습니다. 하지만 소프트웨어를 만드는 일에서 '0번째 실패(Failure 0)'는 프로젝트 자체를 시작하지 못하는 것입니다. 앱에 맞는 완벽한 라이브러리를 고르느라 시간을 아무리 많이 써도 그 실패를 막을 수는 없습니다. 대부분의 경우, 아무 선택이든 하는 것이 잘못된 선택이 주는 손해보다 훨씬 큰 도움이 됩니다.

내린 선택 때문에 마음을 쓸 필요는 없습니다. 새로운 라이브러리를 배우고, 프로젝트에 적용해 보고, 어떤 라이브러리를 더 선호하는지 개인적·기술적으로 판단하는 데 잘못된 점은 하나도 없습니다.

설령 나중에 마음이 바뀌더라도, 처음 선택한 라이브러리에서 배운 것들은 계속 남습니다. 새로운 라이브러리는 백지 상태에서 공부하는 것보다 기존 지식과의 차이(diff)로 익히는 편이 훨씬 빠릅니다.

오래전에 저는 Rubyist 대신 Pythonista가 되었을 수도 있었습니다. 그랬다면 지금만큼 행복하지 않았을지도 모르죠. (솔직히 말해, 누가 알겠습니까?) 하지만 그래도 여전히 코드를 작성하고, 여전히 그 일을 사랑했을 겁니다.