개발 공부/웹 개발

왜 Call by reference가 필요할까?

5묘 2022. 12. 22. 23:37

면접에서 call by value와 call by reference의 차이를 물어보시는 질문에는 잘 답했지만, 이어지는 후속 질문인 '왜 call by reference를 쓰는 지 아나요?' 란 질문에는 답변을 못했다.

메모리 주소만 복사되기 때문에 변수를 복사해 수정하면 원본 값에도 손상이 가는 call by reference는 과연 왜 쓴는 걸까? 어떤 상황에서 쓰게 되는 걸까? 를 조사해봤다.


1. 함수 내부에서 변수가 가리키는 메모리 그 자체를 변화시킨 것이 반영된다. (참고로 JS에서 함수에 값을 넣으면, 그 변수에 담긴 메모리에 대한 참조값이 원시값처럼 복사되므로, 함수 안에서 메모리의 값 자체를 변경한건 적용되나, 함수에 아예 다른 메모리 주소를 할당하면 함수 외부의 원래 변수와는 연결이 아예 끊어지게 된다. 아래 자료 참조)

https://velog.io/@qqbck123/Call-by-value%EC%99%80-Call-by-referencecall-by-sharing

 

Call by value와 Call by reference,call by sharing

call by ...라는 것은 평가 전략(Evaluation Strategy) 중 하나이며 위키피디아에서는 아래와 같이 서술하고 있다.프로그래밍 언어에서 함수 호출의 아규먼트(argument)의 순서를 언제 결정하고 함수에 어

velog.io

2. 새로운 메모리를 할당하지 않고, 기존의 값을 수정하면서 메모리를 아낄 수 있다.

일단은 이정도로 알아봤다.(혹시 장점을 더 찾게 되면 추가할 예정)