차원의 개념

차원은 수학에서 공간 내에 있는 점 등의 위치를 나타내기 위해 필요한 축의 개수를 말한다. 여기에서 사용된 수를 그 공간의 매개 변수라고 한다.


공간 차원(데카르트 좌표계)
공간에 위치한 한 점이 움직일 수 있는 기본 방향, 위-아래/왼쪽-오른쪽/앞-뒤의 3가지로 생각하면 모든 그 이외 다른 방향으로의 움직임은 이 세 가지 방향으로 움직이는 것을 조합한 것으로 표현할 수 있다. 특히 위, 오른쪽, 앞을 양의 방향이라고 할 때 그와 반대되는 방향은 음의 방향으로 움직인다고 말을 할 수 있다.
공간 차원에서의 3차원은 공간 내 점이 움직일 수 있는 공간에 대한 해석이다. 이걸 조금 깊게 파고들어 생각해보면 한 점이 3차원 공간에서 움직이는 것은 순수하게 독립적이라는 것을 알 수 있다. 이 말의 의미는 왼쪽-오른쪽 움직임으로 앞-뒤 혹은 위-아래의 움직임을 표현 할 수 없다는 것이다. 위-아래처럼 어디까지나 서로 연관성이 있는 움직임만 움직임의 상대성을 해석하는데 도움을 줄 수 있다는 것이 3차원의 의미라고 생각한다.

데이터 구조에서 3차원 배열
데이터 구조에서 3차원 배열은 현실 세계에서 보여주는 3차원 구조와 비슷하지만 조금 다른 성격을 가진다.
간단한 예시를 들어보고자 쉬운 코드를 만들었다.

int[] a = { 1, 2, 3 }; //학생 1의 값

int[][] b = { // 1반
            { 1, 2, 3 }, // 학생 1의 값
             { 4, 5, 6 }, // 학생 2의 값
             { 7, 8, 9 }  // 학생 3의 값
          }; // 1반의 끝
int[][][] c = { // 1학년
                 { // 1반
                     { 1, 2, 3 }, // 학생 1의 값
                     { 4, 5, 6 }, // 학생 2의 값
                     { 7, 8, 9 }  // 학생 3의 값
                 },// 1반의 끝
                 { // 2반
                     { 11, 12, 13 }, // 학생 4의 값
                     { 14, 15, 16 }, // 학생 5의 값
                     { 17, 18, 19 }  // 학생 6의 값
                }, // 2반의 끝
                { // 3반
                     { 21, 22, 23 }, // 학생 7의 값
                     { 24, 25, 26 }, // 학생 8의 값
                     { 27, 28, 29 }  // 학생 9의 값
                 } // 3반의 끝
             }; //1학년의 끝

위의 예시에서 볼 수 있듯이 a배열은 1차원, b배열은 2차원, c배열은 3차원이다.
그런데 이것은 공간 차원의 3차원과는 의미가 조금 다르다. 왜냐하면 공간에서의 3차원은 x,y,z라는 공간의 구성요소가 서로서로 독립적인데 비해서 데이터 구조에서 3차원은 서로가 해석에 따른 의미 군으로만 나눠지기 때문이다. 이는 데이터의 구조 특성상 비슷한 요소들끼리 묶어서 처리하기 때문이다. 
데이터 구조 특성상 구분에 있어 절대적인 기준은 작은 의미 군이 큰 것을 담을 수 없다는 점을 알아야 한다. 위의 예시에서 알 수 있듯이 의미 군의 크기가 큰 순서로 학년>반>학생만 가능하고 이것의 역, 혹은 중간을 섞는 것은 불가능하기 때문이다.
이러한 차이에도 불구하고 3차원과 3차원 데이터 구조는 공간위치/자료위치를 표시하는데 각 요소를 섞으면 하나로만 표기했을 때보다 더 정확한 위치를 보여줄 수 있다는 점에서 비슷하다고 할 수 있다.




ref.
위키백과 / 차원
- https://ko.wikipedia.org/wiki/%EC%B0%A8%EC%9B%90


+ Recent posts