면접에서 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
2. 새로운 메모리를 할당하지 않고, 기존의 값을 수정하면서 메모리를 아낄 수 있다.
일단은 이정도로 알아봤다.(혹시 장점을 더 찾게 되면 추가할 예정)
'개발 공부 > 웹 개발' 카테고리의 다른 글
[TIL] 함수형 프로그래밍과 람다에 대해 (0) | 2022.12.13 |
---|---|
[가장 쉬운 웹개발 with Boaz] 브라우저 렌더링 최적화 (0) | 2022.12.13 |
브라우저에 URL을 입력하면 어떤 일이 일어날까? (0) | 2022.11.21 |
브라우저 동작 원리 - 브라우저는 어떤 순서로 동작하는가? (0) | 2022.11.21 |
[Git] GitHub Action 공부 (0) | 2022.08.23 |