Rails 커뮤니티는 상충되는 조언으로 가득합니다. 테스트 프레임워크는 Minitest를 써야 할까요, 아니면 RSpec을 써야 할까요? 일반 Ruby 객체는 app/models에 두어야 할까요, app/classes일까요, 아니면 lib/일까요?
경험 많은 개발자들조차 이런 주제로 끊임없이 논쟁을 벌인다면, 초보 개발자는 대체 어떤 조언을 따라야 할지 어떻게 알 수 있을까요?
비결은 생각보다 단순합니다
비결은 이것입니다. 그냥 한쪽을 고르고, 그것을 따르세요.
무책임한 답변처럼 들릴 수 있습니다. 하지만 이런 논쟁들은 대부분 사소한 철학적 차이를 두고 벌어지는 것입니다. 흥미로운 점은, 논쟁이 치열할수록 그 선택이 실제로는 덜 중요하다는 사실입니다. 특히 처음 시작하는 소규모 앱이라면 더욱 그렇습니다.
숙련된 개발자들도 그렇게 경험을 쌓아온 것입니다. 배우고, 코드를 작성하고, 앱을 출시하며 성장했습니다. 어떤 선택을 했든 그 선택이 발목을 잡지는 않았습니다. 그렇다면 그들의 선택을 따른다고 해서 여러분의 발전이 막히지도 않습니다.
저는 Minitest의 확고한 지지자이며, 피할 수 있다면 RSpec을 사용하지 않습니다. RSpec보다 Minitest를 선호하는 이유에 대해서도 이미 수많은 글을 썼습니다. 하지만 여러분이 RSpec이 자신에게 맞는 프레임워크라고 판단한다 해도, 결과물이 쓸모없는 앱이 되지는 않습니다. 나중에 Minitest로 갈아타게 되더라도 처음부터 다시 시작하는 게 아닙니다. 지금까지 쌓은 테스트 기술 대부분은 그대로 활용됩니다. 그러니 그냥 하나를 고르세요. 정하기 어렵다면 동전을 던져도 좋습니다. 어느 쪽이든 아무것도 선택하지 않는 것보다는 낫습니다.
생각보다 쉽게 바꿀 수 있습니다
자신에게 맞는 선택은 성격, 개발 환경, 팀 분위기, 과거 경험에 따라 달라집니다. 그런데 이 요소들은 커리어가 진행됨에 따라 계속 변합니다. 며칠에 걸쳐 양쪽 진영의 배경지식과 세세한 차이까지 공부하고 내린 '완벽한 선택'조차 언젠가 바뀔 수 있다는 뜻입니다.
누구나 잘못된 선택을 합니다. 제가 아는 최고 수준의 개발자들 중에도 지금은 반대 입장을 주장하는 철학을 기반으로 gem을 통째로 만든 사람이 있습니다. 코드의 세계에서 영원히 유효한 의견은 거의 없습니다.
그러니 아직 온전히 이해하지 못하는 Rails 논쟁에서 '정답'을 찾으려고 몇 시간씩 고민하지 마세요. 선택이 마음에 들지 않으면, 언제든 마음을 바꾸면 됩니다.