소규모 팀에서 백엔드 만드는 중인데요, 솔직히 지금까지는 라우트 핸들러 하나에 DB 쿼리랑 비즈니스 로직이랑 다 때려넣고 짰어요. 돌아가긴 잘 돌아가고 오히려 파일 안 왔다갔다 해도 되니까 빠르더라고요.
이런 식이에요.
app.post('/orders', async (req, res) => {
const rows = await db.query('SELECT ...');
// 재고 체크, 할인 계산, 결제 호출
await db.query('INSERT ...');
res.json({ ok: true });
});
근데 자꾸 선배들이 클린 아키텍처니 레이어드니 하면서 컨트롤러, 서비스, 리포지토리 이렇게 나눠라 그러거든요. 파일만 많아지고 같은 데이터를 여기저기 넘기느라 코드도 늘어나는데 이게 왜 좋은 건지 체감이 안 돼요.
궁금한 건 이겁니다. 지금 잘 돌아가는데 굳이 나누면 뭐가 실질적으로 좋아지나요? 그냥 "유지보수 좋다" 이런 뻔한 말 말고 실제로 어떤 상황에서 안 나눈 게 발목 잡는지 겪어보신 예가 궁금해요.
그리고 반대로, 이렇게 나누는 게 오히려 오버엔지니어링이 되는 규모나 상황도 있나요? 프로젝트 크기에 따라 어디까지 나누는 게 적당한지 기준 잡는 법도 알려주시면 좋겠습니다.