Java

3.3.7 값복사가 적용되는 곳

by IT장인 posted Dec 28, 2013
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄


3.3.7 값복사가 적용되는 곳

앞에서 배운 값복사라는 개념은 너무나도 단순한 개념이다. 세상에 이 개념을 모르는 사람이 어디 있겠는가? 하지만 이 개념을 언급하는 것과 언급하지 않는 것은 엄청난 차이가 있다.

□ 값복사의 중요성
◇ 원리는 단순하지만 이 원리를 알면 많은 것들이 해결된다.

값복사의 개념을 언급하는 것은 앞으로 배울 메서드에서의 매개변수의 전달과 참조값 할당에 이 값복사의 원리가 그대로 적용되기 때문이다.

□ 값복사라는 용어가 적용되는 곳
◇ 값의 의한 호출(메서드의 매개변수 전달)
◇ 참조값 할당(참조값 값복사)

표준 C++의 경우 두 변수를 1대 1로 할당하면 무조건 비트 대 비트끼리 복사가 된다. 이것은 포인터에서도 마찬가지이다. 포인터 변수끼리 할당하면 포인터 변수 대 포인터 변수로 복사가 이루어진다. 이 개념을 알고 포인터에 접근했다면 아마 많은 이들이 포인트를 정복했을지도 모른다.

참고로 컴퓨터 용어에서 값복사는 범용적인 용어가 아니다. 메모리에 들어 있는 값을 다른 메모리로 그 값만을 복사한다 하여 필자가 붙인 이름이다. 필자가 이름을 붙였다 하여 신뢰가 없다고 생각하지 말기 바란다. 이 단어 때문에 여러분은 많은 부분에서 엄청난 혜택을 보게 될 것이다. 값복사라는 단어를 반드시 기억하라. 다른 것은 잊어도 값복사는 잊지 말기 바란다.

□ 값복사라는 용어
◇ 컴퓨터 용어에서 값복사는 범용적인 용어가 아니다.
◇ 메모리에 들어 있는 값을 다른 메모리로 그 값만을 복사한다 하여 필자가 붙인 이름이다.

컴퓨터 언어를 처음 접할 때의 기분이 생각난다. 메서드가 뭐지! 저걸 어떻게 만들어!라고 생각할 때가 필자 또한 있었다. 처음엔 메서드가 두렵고, 두 번째엔 포인터가 두렵고, 세 번째엔 자료구조가 두렵고, 마지막으로 알고리즘이 두려웠다. 자바에서는 포인터 대신에 참조 변수라는 것을 사용하니 포인터 대신에 참조 변수가 어렵게 느껴질 것이다.

하지만 반복학습과 원리학습 위주로 기초를 튼튼히 한다면 쉽게 극복할 수 있을 것이다. 언어를 조금 접한 분들이야 그렇게 어렵겠는가? 모르고 있었다면 알았으니 다행이고, 그래도 별 무리 없이 이해할 수 있을 테니 큰 걱정은 하지 않는다. 하지만 Beginner에겐 또 다른 장벽이다.

필자가 추천해주고 싶은 말은 천천히 공부하라는 것이다. 그리고 어떠한 책이든 끝까지 천천히 보기 바란다. 너무 빨리 보고 키보드만 두들기면 당장은 빠를 수 있겠지만 나중에는 제일 느린 사람이 될 것이다. 천천히 정확하게 보는 것이 제일 좋은 방법이다.

아마! 컴퓨터에 관련된 내용을 배우면서 천천히 하나씩이라는 말을 마음속으로 제일 많이 한 것 같다. 글은 단어 by 단어로 줄 by 줄로 읽고, 코딩은 의심스러울 때 한번 정도만 하기 바란다. 먼 길로 돌아가기 싫다면!