728x90
Update API – 한번에 수정할까? 각각 나눠서 수정할까?
클라이언트에서 여러 필드를 수정해야 할 때,
1개의 API로 한 번에 처리할지
여러 개의 API로 나눠 처리할지 고민한 적 있으신가요?
1. 한번에 수정하기 (PATCH / PUT)
PATCH /user/profile
{
"nickname": "정박",
"bio": "백엔드 개발자",
"phone": "010-1234-5678"
}
- 한 요청에 모든 필드를 전달
- 클라이언트/서버 모두 로직이 단순해짐
- 트랜잭션 처리도 용이
- 변경하지 않는 값도 함께 보내야 하는 경우가 있음
- 부분 업데이트(PATCH) or 전체 업데이트(PUT)로 분기 가능
2. 각각 수정하기 (분할 API)
PATCH /user/nickname
PATCH /user/phone
PATCH /user/bio
- 필드별로 독립된 API 구성
- 각 필드의 validation, logging, audit 등 개별 처리 가능
- 설정 UI와 잘 어울림 (마이페이지 등)
- 요청 수 증가 → 네트워크/성능 이슈 가능성
무엇이 더 효율적인가?
기준 | 한번에 수정 | 각각 수정 |
---|---|---|
요청 수 | 1번 | N번 |
유효성 검사 | 통합 | 필드별 |
유지보수 | 간단 (전체) | 명확 (세부) |
트랜잭션 처리 | 쉬움 | 복잡할 수 있음 |
UI 연동 | 폼 제출에 적합 | 인라인 수정에 적합 |
선택 기준은?
- 폼 단위로 입력 받고 한 번에 저장 → 한번에 수정
- 인라인 수정이나 필드 단위 UX → 각각 수정
- 필드마다 validation이 전혀 다를 경우 → 각각이 낫다
- 사용자 편의성과 성능을 모두 고려해야 한다면 → 하이브리드 고려도 OK
결론
- 유지보수와 UX, API 설계 일관성, 트래픽에 따라 결정해야 합니다.
- 처음엔 "한 번에" 처리로 시작하고, 필요 시 "세분화"하는 방식도 추천됩니다.
반응형
'백엔드 개발 > API · 아키텍처 설계' 카테고리의 다른 글
SOLID 원칙 완벽 이해와 실전 적용: 리팩토링 전후 코드로 배우는 객체 지향 설계 전략 (0) | 2025.05.22 |
---|---|
UserFactory로 객체 생성 책임을 분리한 이유 – SRP 기반 설계 적용기 (0) | 2025.05.09 |
Procedural 구조에서 Use Case 구조로, 내가 구조를 다시 짠 이유 (0) | 2025.05.08 |
[MSA] API Gateway는 왜 필요한가? – 인증, 보안, 확장성 중심의 설계 가이드 (0) | 2025.04.24 |
사이드 프로젝트 채팅 시스템 설계 Q&A – 안드로이드 & 백엔드 협업 정리 (2) | 2024.02.14 |