The One-Person Framework 실천하기 (Rails)

The One Person Framework 実践編 / asonas - Kaigi on Rails 2024

3줄 요약

  • The One-Person Framework는 애플리케이션을 한 사람의 뇌 용량으로 이해하고 기술할 수 있도록 하는 것을 목표로 합니다.
  • 개인 개발의 '거주 가능성'을 팀 작업에 적용하기 위해 공유된 어휘를 늘려 인지 부하를 줄이는 것이 중요합니다.
  • Rails 8의 발전과 같은 프레임워크의 변화는 이러한 '한 사람' 또는 '작은 팀' 단위의 개발 경험을 개선하는 데 기여합니다.

본 영상은 "The One-Person Framework"의 실천 방안을 Rails 환경에 초점을 맞춰 논합니다. 이 프레임워크는 DHH의 블로그에서 시작되어 Rails 커뮤니티에서 논의되고 있으며, 애플리케이션의 전체 구조와 의도를 한 명의 개발자가 충분히 이해하고 자신 있게 변경할 수 있는 상태, 즉 '거주 가능성(Habitability)'을 높이는 것을 핵심으로 합니다.

발표자는 개인 프로젝트인 ‘회람판’ 애플리케이션을 Sinatra에서 Rails로 전환하면서 겪은 경험을 공유합니다. 작은 Sinatra 앱이 기능이 추가되면서 Rails와 유사한 구조를 갖추게 되는 과정을 통해, 본질적인 구현에 집중하기 위해서는 Rails와 같은 구조화된 프레임워크가 유용하다는 점을 시사합니다. ‘거주 가능성’은 소스 코드가 인간에게 이해하기 쉽고, 편안하며 자신 있게 변경할 수 있는 특성을 의미하며, 이는 The One-Person Framework의 목표와 연결됩니다. 한 사람의 뇌 용량으로 애플리케이션을 이해할 수 있다면, 거주 가능성이 높아진다고 볼 수 있습니다. 하지만 팀 작업 환경에서는 이러한 거주 가능성을 유지하는 것이 도전 과제가 됩니다. 발표자는 Amazon의 ‘Two-Pizza Team’ 규칙을 언급하며, 소규모 팀이 효율적일 수 있다는 점을 들어 The One-Person Framework의 아이디어가 확장될 수 있음을 제시합니다. 팀을 ‘하나의 인간’으로 간주하고, 팀원 간의 공유된 어휘(Vocabulary)를 늘리는 과정을 통해 인지 부하(Cognitive Load)를 줄이는 것이 중요하다고 강조합니다. 인지 부하는 과제 자체의 어려움(Intrinsic), 불필요한 요소(Extraneous), 학습 관련 요소(Germane)로 나눌 수 있으며, 프레임워크 활용이나 팀 내 어휘 통일을 통해 Extraneous 및 Germane 부하를 줄여 본질적인 문제 해결에 집중할 수 있게 됩니다. Rails 8에 도입된 Propshaft, Solid Queue 등의 기능 변화 또한 이러한 인지 부하 감소 및 거주 가능성 향상이라는 맥락에서 이해될 수 있습니다. 팀 전체의 공유 어휘를 늘려 논쟁의 여지를 줄이는 것이 The One-Person Framework를 팀 환경에서 실천하는 핵심 방안입니다.

결론적으로, The One-Person Framework를 실천한다는 것은 팀원 간의 공유된 어휘를 확장하여 인지 부하를 낮추고, 이를 통해 애플리케이션의 거주 가능성을 높여 개발자가 더욱 편안하고 자신 있게 코드를 변경할 수 있는 환경을 조성하는 것을 의미합니다. 이는 궁극적으로 개인 또는 소규모 팀이 경쟁력 있는 애플리케이션을 효율적으로 구축할 수 있도록 지원하는 Rails의 철학과도 맞닿아 있습니다.