방어적 복사와 불변 컬렉션은 언제 사용하면 좋나요? #50
Replies: 4 comments
-
실수를 피하는 코드에 대한 내용이므로, 클린 코드로 분류 해봤어용 |
Beta Was this translation helpful? Give feedback.
-
방어적 복사와 불변 컬렉션은 데이터의 무결성을 보장하기 위한 상황에서 고려할 수 있는 방법 입니다. 또한, 방어적 복사를 사용하면 컬렉션을 전달할 때 실수로 참조를 유지하고 있는 경우에 발생할 수 있는 메모리 누수를 방지할 수 있습니다. 방어적 복사를 사용하여 스레드 간의 데이터 공유를 제어하거나, 불변 컬렉션을 사용하여 변경이 불가능한 상태로 만드는 등으로 멀티 스레드 환경에서 안전성을 보장할 때도 방어적 복사나 불변 컬렉션을 고려할 수 있습니다. |
Beta Was this translation helpful? Give feedback.
-
※ 질문에서의 방어적 복사는 불변 컬렉션은 '변경 불가능한 뷰'를 제공합니다. 방어적 복사는 기존 컬렉션과의 참조를 끊고, 새로운 컬렉션을 만듭니다. 산초 정리 : https://github.com/nayonsoso/WIL/blob/main/level1/2-ladder-5.md |
Beta Was this translation helpful? Give feedback.
-
방복 불컬 |
Beta Was this translation helpful? Give feedback.
-
입력 = 방어적 복사
응답 = 성능을 고려해서 불변 컬렉션 고고?
/**
* 불변 컬렉션을 사용하여 객체의 상태를 변경할 수 있는 위험을 방지하는 방법입니다.
* 응답하는 컬렉션을 불변 컬렉션으로 만들어 객체의 상태를 변경할 수 있는 위험을 방지할 수 있습니다.
* 입력을 받는 컬렉션을 불변 컬렉션을 만드는 것은 그대로 외부에서 조작할 수 있는 위험이 존재합니다.
* 따라서 입력받는 컬렉션은 방어적 복사로, 응답하는 컬렉션은 불변 컬렉션으로 만드는 것이 좋습니다.
*/
Beta Was this translation helpful? Give feedback.
All reactions