# 데카르트 곱 (Cartesian Product)

데카르트 곱(곱집합) A × B는 첫째 성분이 집합 A의 원소이고 둘째 성분이 집합 B의 원소인 모든 순서쌍 (a, b)의 집합입니다. 유한 집합이면 원소 수는 |A| × |B|입니다. 이름은 좌표 평면을 고안한 르네 데카르트에서 왔으며, 평면 ℝ × ℝ이 대표적인 예입니다.

## 자세히 알아보기

순서쌍이므로 (a, b)와 (b, a)는 다르며, 일반적으로 A × B ≠ B × A입니다. 세 개 이상의 집합도 A₁ × A₂ × … × A_n처럼 n-튜플로 확장되고, 같은 집합을 n번 곱한 것을 Aⁿ이라 씁니다. 예를 들어 n비트 문자열 전체는 {0, 1}ⁿ이며 원소가 2ⁿ개입니다.

데카르트 곱은 수학의 많은 개념을 정의하는 바탕입니다. 관계는 A × B의 부분집합이고, 함수 f: A → B는 각 a마다 정확히 하나의 (a, b)를 갖는 특별한 관계입니다. 이항 연산은 A × A → A인 함수입니다. 군·환의 직곱도 데카르트 곱 위에 성분별 연산을 정의한 것입니다.

데이터베이스에서 SQL의 CROSS JOIN은 두 테이블의 데카르트 곱을 만들며, 조건 없이 결합하면 결과 행 수가 곱으로 폭증하므로 주의해야 합니다.

## 블록체인·암호화폐에서는

- 키 공간과 조합 수: 여러 독립적인 선택을 합치면 경우의 수는 각 선택지 수의 곱입니다. BIP-39 니모닉 12단어는 2,048개 단어 목록의 12중 데카르트 곱에서 고르는 셈이어서 2048^12 = 2^132가지 단어열이 있고, 그중 체크섬 4비트를 만족하는 2^128가지가 유효합니다.
- 타원곡선 점: secp256k1 위의 점은 (무한원점을 제외하면) GF(p) × GF(p)의 원소 (x, y) 가운데 곡선 방정식 y² = x³ + 7을 만족하는 것들입니다.
- 서명: ECDSA 서명 (r, s)는 Z_n × Z_n의 원소로 볼 수 있습니다.
- 곱 암호와 확장 키: 여러 라운드 키를 독립적으로 고르면 전체 키 공간은 각 라운드 키 공간의 데카르트 곱이 됩니다.

## 쉽게 말하면

데카르트 곱은 '셔츠 3벌과 바지 4벌로 만들 수 있는 모든 옷차림 목록(12가지)'입니다.

## 예시

A = {1, 2}, B = {x, y, z}이면 A × B = {(1,x), (1,y), (1,z), (2,x), (2,y), (2,z)}로 원소가 6개입니다.

세 집합의 곱 {0,1} × {0,1} × {0,1} = {0,1}³은 원소가 8개로, 3비트 값 000부터 111까지와 정확히 대응합니다. 256비트 문자열 전체는 {0,1}^256, 즉 2^256개의 원소를 갖는 데카르트 곱입니다.

---
출처: https://achivx.kr/glossary/cartesian-product-%EB%8D%B0%EC%B9%B4%EB%A5%B4%ED%8A%B8-%EA%B3%B1/ · ACHIVX 용어 사전 · 수정일 2026-10-20
