📦
Merge Objects
Merge Objects - Explanation
쉬움 객체 O(n + m) O(n + m)
Problem Summary
Write a function that merges two objects into one.
Go to Problem →Detailed Explanation
이 문제는 **객체 스프레드 연산자**를 사용한 객체 병합을 학습합니다. **스프레드 연산자로 객체 병합** `{ ...obj1, ...obj2 }`는 두 객체의 속성을 새 객체에 복사합니다. **동작 원리** 1. 새 빈 객체 생성 2. obj1의 모든 속성 복사 3. obj2의 모든 속성 복사 **{a: 1}와 {b: 2} 병합** `{ ...{a: 1}, ...{b: 2} }` → `{a: 1, b: 2}` **중복 키 처리** 같은 키가 있으면 나중에 오는 값이 덮어씁니다: `{ ...{x: 1}, ...{x: 2} }` → `{x: 2}` **Object.assign과의 비교** `Object.assign({}, obj1, obj2)`도 같은 결과지만 스프레드가 더 간결합니다. **얕은 복사 주의** 스프레드는 1단계만 복사합니다. 중첩 객체는 참조가 복사됩니다: ```javascript const a = { nested: { x: 1 } }; const b = { ...a }; b.nested.x = 2; // a.nested.x도 2가 됨! ``` **실용적 활용** 기본값과 사용자 설정 병합에 자주 사용됩니다: `const config = { ...defaults, ...userOptions };`
Solution Code
solution.js
function merge(obj1, obj2) {
return { ...obj1, ...obj2 };
}Key Concepts from This Problem
1. 스프레드 연산자
2. 객체 병합
3. 얕은 복사
4. 속성 덮어쓰기
Common Mistakes
✗ 스프레드는 얕은 복사만 수행합니다
✗ 순서가 중요합니다 - 나중 객체가 이전 값을 덮어씁니다
✗ 원본 객체는 변경되지 않습니다
Hints
Hint 1: 스프레드 연산자를 사용하세요.
Complexity Analysis
Time Complexity
O(n + m)
Space Complexity
O(n + m)
Related Tags
#객체 #스프레드 #병합