- Call by value : 해당 인자가 갖고 있는 값을 새로운 메모리 공간에 복사하고 호출 = 깊은 복사
- Call by reference : 해당 인자의 참조값(주소값)을 복사하여 호출 = 얕은 복사
우리가 어떤 변수나 객체를 제어하기 위해 접근하는 방식은 딱 두 가지 방식밖에 없다.
두 방식 중 어떤 방식이 좋은가는 개발자의 의도에 따라 달라질 것이다. 어떤 변수가 안전을 보장해야 한다면 깊은 복사로 안정적인 수행이 이뤄지도록 하는 것이 좋을 것이고, 공유 자원을 통해 여러 리소스들을 효율적으로 관리해야 한다면 얕은 복사 방식으로 접근하는 것이 좋을 것이다.