제공된 텍스트는 레일즈 애플리케이션 내 비즈니스 로직 배치에 대한 일반적인 고민과 그로 인한 코드베이스의 복잡성을 제시합니다.
비즈니스 로직 분산 문제개발자들은 흔히 다음과 같은 질문에 직면합니다:* 모델 (Model): 데이터와 밀접하지만, 과도한 로직은 Fat Model을 유발합니다.
- 컨트롤러 (Controller): 요청 처리에 적합하지만, 비즈니스 로직이 많아지면 Fat Controller가 되어 재사용성이 저하됩니다.
- 서비스 (Service): 특정 비즈니스 작업을 캡슐화하지만, 남용 시 불필요한 클래스 증가를 초래할 수 있습니다.
- 컨선 (Concern): 모듈화와 재사용에 유리하나, 잘못 사용하면 암묵적 의존성으로 코드 추적을 어렵게 만듭니다.
- 백그라운드 잡 (Background Job): 비동기 처리에 적합하지만, 모든 로직에 적용할 수는 없습니다.이처럼 비즈니스 로직이 모델, 컨트롤러, 서비스, 컨선, 백그라운드 잡 등 다양한 위치에 흩어지면서 코드의 가독성 저해, 유지보수 어려움, 그리고 새로운 기능 추가 시 예상치 못한 부작용을 야기합니다. 본 문서는 이러한 문제에 대한 실질적인 해결책을 제시하며, 이론이 아닌 실제 프로덕션 경험을 바탕으로 최적의 로직 배치 전략을 안내할 것을 약속합니다.