IT

벡터(Vector) - 프로그래밍 언어에서의 의미

teligen 2023. 9. 13. 11:57
728x90

Vector in programming
이미지출처: www.geeksforgeeks.org

 

현대의 모든 프로그래밍 언어는 벡터(Vector) 혹은 그와 비슷한 역할을 하는 자료구조를 가지고 있다.

프로그래밍 세계에 입문한 초보자라면 처음 벡터를 접했을 때, 고등학교나 대학교 때 배웠던 벡터를 프로그래밍 언어에서도 사용하는구나라고 생각할 수도 있는데, 조금만 사용하다 보면 수학시간에 배웠던 벡터와는 뭔가 다르다는 것을 바로 눈치챌 수 있을 것이다.

 

사실 프로그래밍과 수학/과학에서의 '벡터'는 확실히 다른 의미로 사용되며 두 분야에서의 벡터를 비교해보면 다음과 같다.

 


수학/과학에서의 벡터

  • 크기와 방향을 모두 갖는 물리량을 나타내기 위한 수학적 표현이다. 예를 들어, 힘이나 속도와 같은 물리량들은 벡터로 표현된다.
  • 평면벡터에서는 두 개의 성분 (x, y)으로, 공간벡터에서는 세 개의 성분 (x, y, z)으로 표현된다.
  • 덧셈, 뺄셈, 스칼라 곱 등의 연산이 가능하다.

 


프로그래밍에서의 벡터

  • 일반적으로 동적 배열을 의미한다. 예를 들어, C++의 STL(Standard Template Library)에서의 std::vector는 동적 배열로, 크기가 변경 가능하며 연속된 메모리 위치에 요소들이 저장된다.
  • 리스트(List), 어레이리스트(ArrayList)와 유사한 자료구조로 생각할 수 있으며, 요소를 추가하거나 삭제하는 것이 가능하다.
  • 프로그래밍의 벡터는 어떤 데이터 타입도 저장할 수 있다. 예를 들어, 정수, 실수, 문자열, 객체 등 다양한 타입의 요소들을 담을 수 있다.


이렇게 보면 두 분야에서의 '벡터'는 명백히 다른 개념이다. 그렇다면, 왜 같은 이름을 사용하는 걸까?

'벡터'라는 단어는 원래 '방향'이나 '경로'를 의미하는 라틴어에서 유래되었다. 이 원래의 의미 때문에, 방향과 크기를 모두 가진 수학적 개념과, 요소들의 '방향'으로 확장 가능한 프로그래밍 자료구조 둘 다에 적합한 면이 있기 때문에 용어가 중복되어 사용된다고 할 수 있겠다.

728x90