📦

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

#객체 #스프레드 #병합