- 예측 가능성: 원본 데이터를 보존하므로 디버깅이 쉬워지고 React의 최적화 도구들과 잘 맞물립니다.
Trade-off#
- 얕은 복사(Shallow Copy)의 한계: Spread 연산자는 1단계 깊이만 복사합니다. 중첩된 객체(Nested Object)를 업데이트할 때는
Immer와 같은 라이브러리를 고려하거나 더 복잡한 Spread 구조가 필요합니다.
- 가비지 컬렉션: 매번 새로운 객체를 생성하므로 아주 빈번한 업데이트가 발생하는 경우 메모리 사용량이 늘어날 수 있습니다.
6. 마치며#
TypeScript의 유틸리티 타입과 ES6의 문법을 적절히 조합하면, 복잡한 데이터 업데이트 로직도 간결하고 안전하게 작성할 수 있습니다. Pick과 Partial의 차이를 명확히 이해하고 상황에 맞는 도구를 선택하는 습관을 들여보세요!
참고 자료: