300x250
JavaScript 얕은 복사와 깊은 복사 패턴 소개, 사용 사례, 예시 코드
JavaScript에서 객체와 배열을 복사할 때 얕은 복사와 깊은 복사는 중요한 주제입니다. 이 글에서는 얕은 복사와 깊은 복사를 수행하는 패턴과 각각의 특징에 대해 알아보겠습니다.
얕은 복사 패턴
얕은 복사의 개념
얕은 복사는 원본 객체의 프로퍼티를 복사하여 새로운 객체를 생성하는 것입니다. 이 복사본은 원본 객체의 프로퍼티를 참조하므로 내부 객체가 있는 경우 주의가 필요합니다.
얕은 복사 패턴 예시 코드
var copyObject = function(target) {
var result = {};
for (var prop in target) {
result[prop] = target[prop];
}
return result;
}
깊은 복사 패턴
깊은 복사의 개념
깊은 복사는 원본 객체의 모든 프로퍼티와 내부 객체까지 재귀적으로 복사하여 완전히 독립적인 복사본을 생성합니다. 내부 객체의 변경이 원본에 영향을 미치지 않습니다.
깊은 복사 패턴 예시 코드
var copyObjectDeep = function(target) {
var result = {};
if (typeof target === 'object' && target !== null) {
for (var prop in target) {
result[prop] = copyObjectDeep(target[prop]);
}
} else {
result = target;
}
return result;
}
얕은 복사와 깊은 복사 패턴의 사용 사례
얕은 복사 패턴
- 객체를 복사하고 원본 객체의 일부 프로퍼티만 변경할 때.
- 원본 객체와 복사본이 일부 프로퍼티를 공유하는 것이 상관 없을 때.
깊은 복사 패턴
- 원본 객체와 완전히 독립적인 복사본을 만들어야 할 때.
- 내부 객체가 있는 복합 데이터 구조를 복사하고 관리해야 할 때.
끝으로
얕은 복사와 깊은 복사는 JavaScript에서 데이터를 복사하거나 복사본을 생성할 때 중요한 패턴입니다. 얕은 복사는 프로퍼티를 복사하고 참조를 공유하는데 사용되며, 깊은 복사는 프로퍼티와 내부 객체까지 완전히 독립적인 복사본을 만들 때 유용합니다. 올바른 패턴을 선택하면 데이터를 안전하게 다룰 수 있을 것입니다.
▼ 아래 글도 읽어보세요! ▼