16:9는 어떻게 계산되나: 종횡비의 유클리드 호제법
이미지 파일을 이미지 크기 확인기에 올리면 "1920×1080 → 16:9"처럼 종횡비가 자동으로 표시됩니다. 1920과 1080이라는 두 숫자에서 어떻게 16과 9라는 훨씬 단순한 숫자가 나올까요. 답은 2,300년 전 유클리드가 정리한 알고리즘, 최대공약수(GCD)를 구하는 방법에 있습니다.
1. 종횡비란: 가장 단순한 형태로 줄인 비율
종횡비(aspect ratio)는 가로와 세로의 비율을 뜻합니다. 1920×1080이라는 픽셀값 자체도 비율이지만(1920:1080), 관례적으로는 이를 더 이상 나눌 수 없는 가장 단순한 정수쌍으로 표기합니다. 1920:1080과 16:9는 수학적으로 완전히 동일한 비율이지만, 16:9 쪽이 사람이 인식하고 비교하기 훨씬 쉽습니다. 이 "가장 단순한 형태로 줄이는" 과정이 바로 최대공약수 나눗셈입니다.
2. 최대공약수(GCD)를 구하는 두 가지 방법
두 수의 최대공약수를 구하는 전통적인 방법은 각 수를 소인수분해한 뒤 공통 인수를 곱하는 것입니다. 하지만 숫자가 커지면 소인수분해 자체가 느려집니다. 그 대안이 기원전 300년경 유클리드가 저서 「원론」에 기록한 유클리드 호제법(Euclidean algorithm)입니다. 소인수분해 없이 나눗셈의 나머지만 반복해서 구하면 되므로 훨씬 빠르고, 이 사이트의 이미지 크기 확인기를 포함해 대부분의 소프트웨어가 이 방식을 씁니다.
3. 유클리드 호제법의 원리
핵심 공식은 GCD(a, b) = GCD(b, a mod b)이고, b가 0이 되는 순간의 a값이 곧 최대공약수입니다. 이 도구가 실제로 쓰는 코드도 이 공식을 그대로 한 줄로 구현한 재귀 함수입니다.
function gcd(a,b){return b===0 ? a : gcd(b, a%b);}
원리는 "두 수의 공약수는 두 수의 차(또는 나머지)의 공약수와 같다"는 성질을 이용하는 것입니다. 큰 수를 작은 수로 나눈 나머지로 계속 문제를 축소해가다 보면, 나머지가 0이 되는 지점에서 자연스럽게 답이 나옵니다.
4. 실제 계산: 1920×1080이 16:9가 되는 과정
Full HD 해상도인 1920×1080을 예로 들어 유클리드 호제법을 손으로 따라가 보면 다음과 같습니다.
| 단계 | 계산 | 결과(나머지) |
|---|---|---|
| 1 | 1920 ÷ 1080 | 몫 1, 나머지 840 |
| 2 | 1080 ÷ 840 | 몫 1, 나머지 240 |
| 3 | 840 ÷ 240 | 몫 3, 나머지 120 |
| 4 | 240 ÷ 120 | 몫 2, 나머지 0 |
1920 ÷ 120 = 16, 1080 ÷ 120 = 9 → 종횡비는 16:9
5. 흔한 해상도들의 종횡비
같은 방식으로 대표적인 해상도들을 계산하면 다음과 같은 익숙한 비율이 나옵니다.
| 해상도 | GCD | 종횡비 | 용도 |
|---|---|---|---|
| 1920×1080 | 120 | 16:9 | Full HD, 유튜브 표준 |
| 3840×2160 | 240 | 16:9 | 4K UHD |
| 1080×1080 | 1080 | 1:1 | 인스타그램 정사각형 |
| 1200×675 | 75 | 16:9 | 트위터/X 카드 이미지 |
| 2160×3840 | 240 | 9:16 | 세로 영상(쇼츠·릴스) |
가로세로가 뒤집힌 세로 영상(9:16)도 GCD 계산 원리는 동일하며, 단지 큰 값이 세로에 오는 것뿐입니다. 정확한 종횡비를 확인한 뒤 이미지 자르기로 원하는 비율에 맞춰 잘라내거나, 이미지 회전으로 방향을 맞추는 식으로 후속 작업에 활용할 수 있습니다.
자주 묻는 질문
Q. 유클리드 호제법은 왜 소인수분해보다 빠른가요?
A. 소인수분해는 숫자가 소수인지 일일이 확인해야 해 큰 수일수록 느려지지만, 유클리드 호제법은 나눗셈의 나머지만 반복하면 되므로 숫자 크기와 무관하게 몇 단계 안에 끝납니다. 실제로 1920, 1080 같은 4자리 수도 단 4단계 만에 계산이 끝났습니다.
Q. 두 수가 서로소(공약수가 1뿐)이면 어떻게 되나요?
A. GCD가 1이 되므로 원래 픽셀값 자체가 이미 가장 단순한 비율입니다. 예를 들어 1920×1081이라면 종횡비는 그대로 1920:1081로 표시됩니다.
Q. SVG처럼 픽셀 크기가 없는 이미지도 종횡비를 구할 수 있나요?
A. SVG는 벡터 형식이라 viewBox 또는 width/height 속성값을 픽셀 대신 사용해 같은 방식으로 계산합니다. 둘 다 없으면 브라우저의 기본 대체 크기(보통 300×150)를 기준으로 계산되므로 실제 의도와 다를 수 있습니다.
Q. 이 계산이 서버에서 이루어지나요?
A. 아니요. gcd() 함수를 포함한 모든 계산이 브라우저 안에서 즉시 실행되며 이미지 파일이 서버로 전송되지 않습니다.