선형대수를 건너뛴 개발자를 위한 행렬 수학

발행: (2026년 3월 25일 AM 11:02 GMT+9)
4 분 소요
원문: Dev.to

Source: Dev.to

행렬과 기본 연산

표현

행렬은 단순히 숫자의 2차원 배열입니다. 예를 들어, 3×3 행렬:

123
456
789

JavaScript에서는 다음과 같이 만들 수 있습니다:

const matrix = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
];

원소별 덧셈

두 행렬은 차원이 동일해야 합니다.

function add(A, B) {
  return A.map((row, i) => row.map((val, j) => val + B[i][j]));
}

행렬 곱셈

곱셈은 원소별이 아닙니다. 결과 행렬의 (i, j) 위치에 있는 원소는 A의 i번째 행과 B의 j번째 열의 내적입니다.
조건: A의 열 수와 B의 행 수가 같아야 합니다. m×n 행렬에 n×p 행렬을 곱하면 m×p 행렬이 됩니다.

function multiply(A, B) {
  const rows = A.length;
  const cols = B[0].length;
  const n = B.length;

  const result = Array.from({ length: rows }, () =>
    Array(cols).fill(0)
  );

  for (let i = 0; i 
    Array.from({ length: n }, (_, j) => (i === j ? 1 : 0))
  );
}

전치

행과 열을 뒤바꿉니다; i번째 행이 i번째 열이 됩니다.

function transpose(M) {
  return M[0].map((_, j) => M.map(row => row[j]));
}

전치는 머신러닝 파이프라인에서 “특성‑열”과 “특성‑행” 레이아웃을 전환할 때 자주 사용됩니다.

행렬식

정방 행렬의 행렬식은 하나의 숫자로, 가역성(0이 아님) 또는 특이성(0) 여부를 나타냅니다.

2×2 행렬식:

function det2x2(M) {
  return M[0][0] * M[1][1] - M[0][1] * M[1][0];
}

일반 행렬식(여인자 전개):

function determinant(M) {
  const n = M.length;
  if (n === 1) return M[0][0];
  if (n === 2) return det2x2(M);

  let det = 0;
  for (let j = 0; j 
      [...row.slice(0, j), ...row.slice(j + 1)]
    );
    det += M[0][j] * determinant(minor) * (j % 2 === 0 ? 1 : -1);
  }
  return det;
}

실제 적용 사례

CSS 변환

모든 CSS 변환(translate, rotate, scale, skew)은 내부적으로 행렬 연산으로 표현됩니다. 브라우저는 4×4 변환 행렬을 만든 뒤 각 픽셀에 적용합니다.

/* CSS 선언 */
transform: rotate(45deg) scale(1.5) translate(10px, 20px);

/* 내부적으로 계산된 행렬 */
transform: matrix(1.06, 1.06, -1.06, 1.06, -11.21, 25.61);

3D 그래픽

게임 엔진과 3D 렌더러는 카메라 위치 지정, 객체 변환, 3D 세계 공간을 2D 화면 공간으로 투영하기 위해 4×4 행렬을 사용합니다.

머신러닝

신경망은 본질적으로 가중치 행렬을 통한 일련의 행렬 곱셈(비선형 활성화 함수와 교차)으로 구성됩니다. 학습 과정에서 이 가중치 행렬이 조정됩니다.

이미지 처리

컨볼루션 필터(블러, 샤프닝, 에지 검출)는 작은 커널—즉, 로컬 이미지 패치에 곱해지는 행렬—을 사용해 적용됩니다.

편리한 도구

곱셈, 행렬식, 역행렬, 전치, 고유값 등 빠르고 인터랙티브한 계산을 위해 다음 무료 온라인 행렬 계산기를 사용해 보세요:

Matrix Calculator – zovo.one/free-tools/matrix-calculator

0 조회
Back to Blog

관련 글

더 보기 »

게임이 끝났어... kinda'

우리는 어디에 있나요? Holy Carp on itch.io https://depoco.itch.io/holy-carp 게임은 대부분 완성됐으며 itch.io에 업로드되었습니다. 아직 몇 가지 요소가 부족합니다,…