IT
벡터(Vector) - 프로그래밍 언어에서의 의미
teligen
2023. 9. 13. 11:57
728x90
현대의 모든 프로그래밍 언어는 벡터(Vector) 혹은 그와 비슷한 역할을 하는 자료구조를 가지고 있다.
프로그래밍 세계에 입문한 초보자라면 처음 벡터를 접했을 때, 고등학교나 대학교 때 배웠던 벡터를 프로그래밍 언어에서도 사용하는구나라고 생각할 수도 있는데, 조금만 사용하다 보면 수학시간에 배웠던 벡터와는 뭔가 다르다는 것을 바로 눈치챌 수 있을 것이다.
사실 프로그래밍과 수학/과학에서의 '벡터'는 확실히 다른 의미로 사용되며 두 분야에서의 벡터를 비교해보면 다음과 같다.
수학/과학에서의 벡터
- 크기와 방향을 모두 갖는 물리량을 나타내기 위한 수학적 표현이다. 예를 들어, 힘이나 속도와 같은 물리량들은 벡터로 표현된다.
- 평면벡터에서는 두 개의 성분 (x, y)으로, 공간벡터에서는 세 개의 성분 (x, y, z)으로 표현된다.
- 덧셈, 뺄셈, 스칼라 곱 등의 연산이 가능하다.
프로그래밍에서의 벡터
- 일반적으로 동적 배열을 의미한다. 예를 들어, C++의 STL(Standard Template Library)에서의 std::vector는 동적 배열로, 크기가 변경 가능하며 연속된 메모리 위치에 요소들이 저장된다.
- 리스트(List), 어레이리스트(ArrayList)와 유사한 자료구조로 생각할 수 있으며, 요소를 추가하거나 삭제하는 것이 가능하다.
- 프로그래밍의 벡터는 어떤 데이터 타입도 저장할 수 있다. 예를 들어, 정수, 실수, 문자열, 객체 등 다양한 타입의 요소들을 담을 수 있다.
이렇게 보면 두 분야에서의 '벡터'는 명백히 다른 개념이다. 그렇다면, 왜 같은 이름을 사용하는 걸까?
'벡터'라는 단어는 원래 '방향'이나 '경로'를 의미하는 라틴어에서 유래되었다. 이 원래의 의미 때문에, 방향과 크기를 모두 가진 수학적 개념과, 요소들의 '방향'으로 확장 가능한 프로그래밍 자료구조 둘 다에 적합한 면이 있기 때문에 용어가 중복되어 사용된다고 할 수 있겠다.
728x90