728x90
deep copy
-
go 언어에서 deep copy 사용Dev 2025. 3. 24. 08:02
Go 언어는 대부분 값 타입(value semantics)이 기본이지만, 슬라이스, 맵, 포인터, 구조체 포인터 등을 다루다 보면 얕은 복사(shallow copy)로 인한 예기치 않은 공유 문제가 발생할 수 있어요.이럴 때 deep copy(깊은 복사)가 필요해집니다. ✅ 언제 Deep Copy가 필요한가?🔹 1. 공유된 메모리로 인한 부작용을 피하고 싶을 때슬라이스나 맵은 참조 타입이기 때문에 복사해도 같은 메모리 영역을 가리킵니다.이를 수정하면 원본 데이터도 함께 변경되죠.original := []int{1, 2, 3}copy := originalcopy[0] = 100fmt.Println(original) // [100 2 3] ← 원본이 변경됨!이런 부작용을 막기 위해서는 deep copy로 ..