개인적으로 지금 일하는 레포에선 프론트의 책임이 과중한 것 같아서 백엔드에 좀 책임을 이관하고 싶다.
그래도 내가 모르는 고려사항이 많을 테니 gpt에 대충 물어봤다.
좋은 질문이야.
요약하면,
백엔드 책임을 키울지 vs 프론트 책임을 키울지 결정할 때 고려해야 하는 것들은 다음과 같아:
데이터 일관성, 보안이 중요한 경우 → 백엔드 책임 강화
일시적인 데이터 조작, UI 중심 가공이 중요한 경우 → 프론트 책임 강화
📌 실제 기준:
대량 데이터 가공, 복잡 연산 → 서버에서 미리 가공하는 편이 거의 항상 효율적임.
여러 소비자가 같은 API를 쓸 필요가 있으면 → 백엔드 책임 강화
특정 프론트엔드에 맞춘 특화된 동작만 필요하면 → 프론트 책임 강화
(물론 여기선 "프론트가 강하니까 아무거나 맡긴다" 이런 게 아니라, 유지보수 가능성을 고려해야 한다는 얘기야.)
요구사항이 자주 바뀔 것 같으면 → 프론트 책임 강화
계약(API 스펙)이 단단해야 하는 상황이면 → 백엔드 책임 강화
고려사항 | 백엔드 책임 강화 | 프론트 책임 강화 |
---|---|---|
데이터 무결성 | 필요 | 덜 중요 |
성능 최적화 | 서버가공 | 클라이언트가공 |
API 재사용성 | 높음 | 낮음 |
팀 역량 | 백엔드 강함 | 프론트 강함 |
요구사항 변경 | 적음 | 잦음 |
보안 | 민감함 | 덜 민감함 |
"데이터를 믿어야 하는 책임이 어디 있어야 하느냐" 이게 제일 큰 기준이고, 부수적으로 성능/팀역량/변경성 등을 따진다.
필요하면, 각각 상황별 구체적인 예시도 같이 들어줄게.
특정 상황(예: "관리자 페이지에서 테이블 필터링", "회원가입 로직") 같은 거 정해서 물어볼래? 🚀
(그럼 더 현실적인 비교도 해줄 수 있어.)
다른 건 좀 당연한 말이고 집중할 필요가 있어 보이는 것은
정도 인 것 같다.
특히 변경 가능성이 높을 때엔 확실히 백엔드에 검증 코드를 넣어두는 것보다 프론트에서 상황에 맞춰 다르게 구현해 놓는 것이 더 빠르고 편할 것 같긴 하다.
지금 작업하는 곳이 변화가 많은 만큼 자연스럽게 프론트 쪽으로 책임이 치우쳐지지 않았나 싶다...