- Published on
수학 & 과학 계산 도구 2026 — Mathematica / MATLAB / Maple / SageMath / Julia 1.11 / R Posit / JAX / GeoGebra / Desmos / GAP / Macaulay2 심층 가이드
- Authors

- Name
- Youngju Kim
- @fjvbn20031
프롤로그 — "수학을 컴퓨터로 푼다"의 의미가 바뀌었다
20세기 후반의 수학 소프트웨어는 단순했다. 한 가지 도구 — Mathematica든 MATLAB이든 Maple이든 — 가 모든 걸 해야 했다. 라이선스 한 개에 학생은 천 달러를, 학교는 십만 달러를 냈다. 코드는 그 도구의 언어로만 살았다.
2026년 풍경은 다르다.
- 오픈소스가 진짜로 따라잡았다. SageMath가 2005년 시작해 20년이 지나 종합 CAS로 자리잡았다. Julia는 1.11에서 정식 안정 ABI를 잠갔다. R + tidyverse는 통계 표준이고, Python의 NumPy/SciPy/SymPy/Pandas/Polars 조합은 과학 컴퓨팅의 사실상 표준이 됐다.
- 상용은 여전히 살아있다. Mathematica는 LLM 통합과 자연어 함수, MATLAB은 Simulink와 산업 인증, Maple은 정밀한 교과 통합으로 자기 자리를 지킨다. 다만 "학생이 처음 만나는 도구"의 자리는 잃었다.
- 클라우드가 들어왔다. CoCalc, Wolfram Cloud, Google Colab, Posit Cloud, Hex, Deepnote가 노트북을 브라우저로 가져왔다. 라이선스 모델보다 SaaS 모델이 빠르게 자리잡고 있다.
- AI가 끼어들었다. Wolfram은 Mathematica에 LLMFunction을, MathWorks는 MATLAB Copilot을, Posit은 Positron에 AI 어시스턴트를 넣었다. SymPy와 SageMath는 Jupyter AI로 자연어 입력을 받는다.
이 글은 그 지형 전체를 본다. 상용 4 거인(Mathematica/MATLAB/Maple/Magma), 오픈 종합(SageMath/Julia/R/Python), 교육 도구(GeoGebra/Desmos), 특화 대수(GAP/Macaulay2/Singular), 클라우드(CoCalc/Wolfram Cloud), 그리고 CAS 진영(SymPy/Symbolics.jl/Maxima/Reduce/Pari-GP)을 다룬다. 마지막으로 학생/연구자/공학자/교육자별로 무엇을 골라야 하는지 권고한다.
1장 · 2026년 수학 / 과학 계산 지도 — 4 분류
도구는 너무 많다. 한 번 분류해두자.
┌────────────────────────────────────────────────────────────────┐
│ 2026 수학/과학 계산 4 분류 │
│ │
│ ┌─────────────────┐ ┌─────────────────────┐ │
│ │ 상용 종합 │ │ 오픈소스 종합 │ │
│ │ │ │ │ │
│ │ - Mathematica │ │ - SageMath │ │
│ │ - MATLAB/Simulink│ │ - Julia 1.11 │ │
│ │ - Maple │ │ - R + tidyverse │ │
│ │ - Magma │ │ - Python sci-stack │ │
│ └─────────────────┘ └─────────────────────┘ │
│ │
│ ┌─────────────────┐ ┌─────────────────────┐ │
│ │ 교육 │ │ 특화 / CAS │ │
│ │ │ │ │ │
│ │ - GeoGebra │ │ - GAP (군) │ │
│ │ - Desmos │ │ - Macaulay2 (AG) │ │
│ │ - Wolfram Alpha │ │ - Singular │ │
│ │ - Khan Mathway │ │ - Pari/GP (수론) │ │
│ │ │ │ - Maxima / Reduce │ │
│ │ │ │ - SymPy / Symbolics │ │
│ └─────────────────┘ └─────────────────────┘ │
└────────────────────────────────────────────────────────────────┘
각 분류의 정신모델은 다르다.
| 분류 | 정신모델 | 사용자 | 라이선스 |
|---|---|---|---|
| 상용 종합 | "한 통에 다 들어있다" | 산업, 연구실, 학생(라이선스 학교) | 유료 |
| 오픈소스 종합 | "쌓아서 만든다" | 연구자, 스타트업, 자가 학습자 | 무료 |
| 교육 | "보고 만진다" | K-12, 학부 1~2학년, 교사 | 무료/저가 |
| 특화 / CAS | "이 좁은 분야만큼은 최고" | 박사과정 이상, 전문 연구자 | 혼합 |
실제 연구실은 보통 2-3 도구를 섞는다. MATLAB으로 시뮬레이션, Mathematica로 상징 풀이, Python으로 데이터 처리. 또는 Julia로 PDE 풀고, R로 통계 검증, SageMath로 대수 확인. 한 도구가 모든 걸 잘하는 시대는 끝났다.
2장 · Wolfram Mathematica — 프리미엄 상징 계산의 표준
Mathematica는 1988년 Stephen Wolfram이 발표한 이래 상징 계산의 표준이다. 2026년 버전은 14.x 대다. Wolfram Language(WL)라는 자기만의 언어를 갖고, 모든 것이 식(expression)인 패턴 매칭 기반 함수형 언어다.
핵심 강점
- 상징 계산의 깊이. Integrate, Solve, DSolve, Series, Reduce — 거의 모든 폐쇄형 풀이가 한 줄이다.
- Wolfram|Alpha와의 통합. 자연어 입력
=어제 서울 기온이 식으로 평가된다. - 방대한 내장 데이터. ChemicalData, CountryData, FinancialData, GenomeData — 학술 데이터셋 수백 개가 함수로 노출된다.
- 노트북 UI. 식·그래프·텍스트·상호작용 위젯(Manipulate)이 한 셀에서 산다. 인터랙티브 시연이 강하다.
- LLM 통합. 13.3부터 LLMFunction, ChatEvaluator가 정식 들어왔다. Mathematica 안에서 GPT-4, Claude를 호출하고 그 결과를 식으로 받는다.
코드 한 조각
(* 미분 방정식 풀기 *)
DSolve[{y'[x] + y[x] == Sin[x], y[0] == 1}, y[x], x]
(* 인터랙티브 위젯 *)
Manipulate[
Plot[Sin[a x + b], {x, 0, 2 Pi}],
{a, 1, 5}, {b, 0, 2 Pi}
]
(* LLM 호출도 한 줄 *)
LLMFunction["다음 정리를 영어로 증명해 줘: {1}"][myTheorem]
약점과 비판
- 가격. 학생 라이선스 약 440/년, 회사용은 천 단위. 학교 사이트 라이선스는 비밀이지만 십만~수십만.
- 벤더 락인. WL 코드는 다른 곳으로 안 옮긴다. 오픈소스 백엔드가 없다.
- 속도. 수치 계산은 MATLAB/NumPy보다 일반적으로 느리다(상징은 압도적).
- 현대 ML 부재. PyTorch/JAX 같은 표준 ML 도구가 없다. NetTrain은 자체 시스템.
2026년 위치
- 가장 잘 맞는 곳: 상징 풀이, 노트북 시연, 데이터 시각화, 수학 교과 (라이선스 학교)
- 가장 안 맞는 곳: 딥러닝, 대규모 데이터 처리, 오픈소스 협업
- 한 줄 평: "상징 계산이 핵심이고 학교가 라이선스를 사준다면 여전히 1등."
3장 · MATLAB + Simulink (MathWorks) — 공학 산업 표준
MATLAB(MATrix LABoratory)은 1984년 출시 후 전기·기계·자동차·항공 분야의 사실상 표준이다. 2026년 시점 R2026a 대다. Simulink는 블록 다이어그램 기반 시뮬레이션 도구로, MATLAB과 짝을 이룬다.
왜 산업이 못 떠나는가
- 인증. DO-178C(항공), ISO 26262(자동차), IEC 61508(산업) 인증된 모델-기반 설계 툴체인을 가졌다. Simulink Coder가 모델에서 C 코드를 생성하고, 그 코드가 인증을 통과한다.
- 툴박스. Control System, Signal Processing, Aerospace, Powertrain Blockset — 산업 도메인 100여 개에 대해 검증된 알고리즘이 박혀 있다.
- HDL/Embedded Coder. 모델 → C/C++/Verilog/HDL/PLC 자동 생성. 임베디드와 FPGA 워크플로의 표준.
- 수치 안정성. LAPACK 위에 수십 년 튜닝된 코드. 행렬 연산의 신뢰도는 압도적.
코드 한 조각
% 상태공간 시스템 시뮬레이션
A = [-0.5 1; 0 -1];
B = [0; 1];
C = [1 0];
sys = ss(A, B, C, 0);
t = 0:0.01:10;
u = ones(size(t));
[y, t] = lsim(sys, u, t);
plot(t, y)
% 신호 처리 — FFT
Fs = 1000;
t = 0:1/Fs:1-1/Fs;
x = sin(2*pi*50*t) + sin(2*pi*120*t) + randn(size(t));
Y = fft(x);
P2 = abs(Y/length(x));
plot(Fs*(0:(length(x)/2))/length(x), P2(1:length(x)/2+1))
2026년 변화
- MATLAB Online + MATLAB Mobile — 라이선스가 있으면 브라우저/스마트폰에서 곧장 돌릴 수 있다.
- AI Chat in MATLAB — IDE 안에 어시스턴트가 들어왔다. 코드 설명, 디버그, 함수 추천.
- Python 통합 강화 — py.* 네임스페이스로 NumPy/PyTorch를 MATLAB에서 호출. 반대도 matlab.engine으로.
- Apple Silicon 네이티브 — 2024년 R2024a부터 ARM64 macOS 네이티브. 성능 대폭 개선.
약점
- 가격. 학생 149, 회사 $940/년 (코어). 툴박스는 별도. 한 연구실이 20개 툴박스를 쓰면 수만 달러.
- 언어 한계. 객체지향은 어색하고, 패키지 매니저(MATLAB File Exchange)는 npm/PyPI에 못 미친다.
- GIL 비슷한 제약. parfor는 강력하지만 분산은 PCT(Parallel Computing Toolbox) 추가 결제.
- 오픈소스 진영 부재. GitHub Actions가 못 돌린다(라이선스). 협업 마찰.
위치
- 가장 잘 맞는 곳: 공학(EE/ME/AE) 학부·대학원, 자동차·항공·국방 R&D, 신호처리, 제어
- 가장 안 맞는 곳: 데이터과학·통계(R), 머신러닝(Python), 학부 1학년 수학(GeoGebra)
- 한 줄 평: "공학 산업에서는 여전히 떠날 수 없다. 학계는 점점 떠난다."
4장 · Maple (Maplesoft) — Mathematica의 영원한 경쟁자
Maple은 1980년 워털루 대학교에서 시작된 CAS다. 2025년 Maple 2025가 출시됐다. Mathematica와 자주 비교되지만 정신모델이 다르다.
Mathematica와의 차이
| 항목 | Mathematica | Maple |
|---|---|---|
| 언어 패러다임 | 함수형 + 패턴 매칭 | 명령형 + 절차적 |
| 노트북 | 노트북 우선 | Worksheet (보수적) + Math Mode |
| 강점 | 상징 + 데이터 + 시각화 | 미분방정식 + 정수론 + 교과 통합 |
| 가격 | 비싸다 | 비싸다 (조금 더 쌈) |
| 학교 채택 | 미국·이공계 우세 | 캐나다 + 유럽 + 일부 한국 |
Maple의 진짜 강점
- MapleSim — Simulink 경쟁자. 물리 기반 모델링이 강하다.
- Maple Calculator + Maple Learn — 교과서 결합 워크플로. 학생이 단계별 풀이를 볼 수 있다.
- MapleFlow — 엔지니어링 계산서 도구. MathCAD 후계로 자리를 잡는 중이다.
- Grid Computing Toolbox — 노드 분산이 비교적 단순.
코드 한 조각
# ODE 풀이
ode := diff(y(x), x, x) + y(x) = sin(x);
sol := dsolve({ode, y(0) = 1, D(y)(0) = 0}, y(x));
# 정수론
isprime(2^127 - 1); # Mersenne prime
ifactor(2^256 - 1);
# 단계별 풀이
Student[Calculus1]:-ShowSolution(int(x^2 * exp(x), x));
위치
- 가장 잘 맞는 곳: 공학 교과(특히 ODE/PDE), 학부 수학 강의실, MapleSim을 쓰는 자동차 시뮬레이션
- 가장 안 맞는 곳: 상징 풀이의 절대 깊이(Mathematica가 더 강함), 머신러닝, 데이터 분석
- 한 줄 평: "Mathematica를 살 수 있는 학교라면 둘 중 하나는 고를 만하다. 교과 통합이 핵심이면 Maple."
5장 · SageMath — 오픈소스 종합 CAS
SageMath는 2005년 William Stein이 시작한 오픈소스 수학 시스템이다. 목표는 명확했다 — "Mathematica/Maple/Magma의 오픈소스 대안." 2026년 9.x 후반대로 가고 있다.
구조 — 합성 시스템
Sage는 처음부터 다른 도구들의 인터페이스로 설계됐다. Python을 인터페이스 언어로 두고, 내부에서 GAP, PARI, Singular, Maxima, FLINT, GMP, NumPy, SciPy, NetworkX 등 100여 개의 패키지를 호출한다.
┌──────────────────────────────────────────────────┐
│ SageMath = "조립품" │
│ │
│ 사용자 인터페이스 (Python + Sage 확장) │
│ │ │
│ ┌───────────▼───────────────────────────────┐ │
│ │ 상징: Maxima, SymPy, Pynac, Sympy │ │
│ │ 수치: NumPy, SciPy, R │ │
│ │ 정수론: PARI, FLINT, ECL │ │
│ │ 군: GAP │ │
│ │ 대수기하: Singular, Macaulay2 (선택) │ │
│ │ 그래프: NetworkX │ │
│ │ LP/MIP: GLPK, PPL, Coin-OR │ │
│ └───────────────────────────────────────────┘ │
└──────────────────────────────────────────────────┘
코드 한 조각
# Sage는 Python 슈퍼셋
# 정수론
E = EllipticCurve([0, 0, 1, -1, 0])
print(E.rank()) # 0
print(E.j_invariant())
# 미분방정식
x = var('x')
y = function('y')(x)
de = diff(y, x, 2) + y == sin(x)
desolve(de, y, ics=[0, 1, 0])
# 다항환
R.<x, y> = QQ[]
I = R.ideal(x^2 + y^2 - 1, x - y)
print(I.groebner_basis())
2026년 현황
- 개발 속도 — 코어 개발자가 줄었다. William Stein은 CoCalc로 이동, 일부는 산업으로. 그러나 패치 흐름은 유지된다.
- Jupyter 통합 — Sage 노트북은 Jupyter 기반이 표준이 됐다.
- CoCalc 백엔드 — CoCalc가 사실상 Sage의 클라우드 호스트.
- AI 통합 — 자연어 → Sage 코드 변환이 jupyter-ai로 들어왔다. 정밀도는 아직 보장 안됨.
위치
- 가장 잘 맞는 곳: 수학 박사과정, 정수론·대수기하 연구, 학부 수학 (특히 비싼 라이선스 대안), 무료 교육
- 가장 안 맞는 곳: 공학 인증 워크플로(MATLAB), Mathematica의 자연어 입력, 폐쇄형 적분 정밀도
- 한 줄 평: "오픈소스 CAS의 종착역. 학부생이 Mathematica 못 사면 SageMath."
6장 · Julia 1.11 — 과학 계산 우선 설계
Julia는 2012년 MIT에서 발표된 언어다. 슬로건은 분명했다 — "Walks like Python, runs like C." 2024년 1.10 LTS와 2025년 1.11 안정 출시 이후, 2026년에는 1.12로 가고 있다.
Julia가 푸는 문제 — Two-language problem
Python 과학 컴퓨팅의 본질적 문제 — 핫 루프는 결국 C/Fortran으로 내려간다. NumPy가 빠른 건 NumPy가 C이기 때문이다. Julia는 하나의 언어로 둘 다 한다 — JIT 컴파일 + 다중 디스패치 + 강력한 타입 시스템.
코드 한 조각
using DifferentialEquations, Plots
function lorenz!(du, u, p, t)
σ, ρ, β = p
du[1] = σ * (u[2] - u[1])
du[2] = u[1] * (ρ - u[3]) - u[2]
du[3] = u[1] * u[2] - β * u[3]
end
u0 = [1.0, 0.0, 0.0]
tspan = (0.0, 100.0)
p = (10.0, 28.0, 8/3)
prob = ODEProblem(lorenz!, u0, tspan, p)
sol = solve(prob, Tsit5(), reltol=1e-8, abstol=1e-8)
plot(sol, idxs=(1, 2, 3))
이 코드는 Python+NumPy로 짠 동등 버전보다 보통 5~50배 빠르다. 그리고 SciML 생태계는 PDE, SDE, DAE, neural ODE까지 일관된 인터페이스로 다룬다.
2026년 Julia 생태계
- SciML — DifferentialEquations.jl, ModelingToolkit.jl, Symbolics.jl — 과학 머신러닝의 표준 스택.
- Flux.jl / Lux.jl — Julia 네이티브 ML.
- Pluto.jl — 반응형 노트북. Jupyter와 다른 정신모델 (셀이 의존성 그래프를 갖는다).
- Julia for HPC — DOE 슈퍼컴퓨터에서 점점 채택. CliMA(기후 모델링), Celeste(천체 분류) 등.
- Symbolics.jl — Julia 네이티브 CAS. SymPy보다 빠르다는 평이 많다.
약점
- 컴파일 지연. "Time to first plot" 문제. 1.9+에서 PCG로 많이 개선됐지만 여전히 거슬린다.
- 생태계 크기. Python 대비 작다. 라이브러리 검색이 어렵다.
- 회사 채용 시장. Python/R/MATLAB 대비 Julia 잡 공고가 적다. 학계 vs 산업 비대칭.
- 버전 안정성 인식. 1.x여도 패키지 호환성 깨지는 일이 종종.
위치
- 가장 잘 맞는 곳: 과학 머신러닝, 미분방정식 풀이, HPC, 양자/플라스마/기후 시뮬레이션, 금융 모델링
- 가장 안 맞는 곳: 웹 서비스, 짧은 스크립트, 회사 데이터 분석 팀(Python이 표준)
- 한 줄 평: "수치 + 상징 + 미분방정식을 한 언어로 풀고 싶으면 Julia 1.11이 정답."
7장 · R + tidyverse + Posit (구 RStudio) — 통계의 표준
R은 1993년 출시된 통계 전용 언어다. 2026년 4.x 대다. R 자체보다 더 중요한 것은 tidyverse 생태계와 그걸 끌고 가는 회사 Posit(2022년 RStudio에서 사명 변경)이다.
왜 R은 죽지 않았는가
10년간 "Python이 R을 대체할 것"이라는 예측이 반복됐다. 2026년에도 R은 살아있다. 이유:
- 통계학자가 만든 언어. lm, glm, summary, anova가 일급 함수다. Python에서는 statsmodels로 비슷한 걸 하지만 결과 출력 품질이 다르다.
- tidyverse. dplyr, tidyr, ggplot2, purrr, readr — Hadley Wickham이 설계한 일관된 인터페이스. 데이터 분석의 정신모델이 그대로 코드가 된다.
- CRAN. 패키지 품질 통제가 PyPI보다 빡세다. 학계가 출판한 통계 방법 거의 모두 CRAN에 있다.
- Quarto — R Markdown 후계. Posit이 2022년 출시. Python, R, Julia, Observable 모두 지원하는 멀티 언어 문서.
코드 한 조각
library(tidyverse)
library(lme4)
# tidyverse 데이터 파이프라인
mtcars |>
as_tibble(rownames = "model") |>
group_by(cyl) |>
summarise(
mean_mpg = mean(mpg),
n = n(),
.groups = "drop"
) |>
ggplot(aes(x = factor(cyl), y = mean_mpg)) +
geom_col(fill = "steelblue") +
labs(x = "Cylinders", y = "Mean MPG")
# 혼합효과 모델
model <- lmer(mpg ~ wt + (1 | cyl), data = mtcars)
summary(model)
Posit (구 RStudio)
2022년 RStudio가 Posit으로 사명 변경한 이유 — "우리는 R 회사가 아니라 데이터과학 회사다." 이후:
- Positron — RStudio의 후계 IDE. VS Code 기반, Python + R + Julia 동등 지원. 2024년 베타, 2025년 안정. RStudio는 유지되지만 신규 개발은 Positron으로.
- Quarto — 멀티언어 문서 시스템.
- Posit Cloud — 브라우저 R/Python 환경.
- Shiny — R/Python 양쪽 지원하는 웹앱 프레임워크.
약점
- 속도. R 코어는 빠르지 않다. data.table, Rcpp, arrow로 대응.
- 머신러닝 생태계. Python(PyTorch/scikit-learn)에 못 미친다. tidymodels로 따라가는 중.
- 에디터 의존. RStudio/Positron 밖에서는 R 경험이 떨어진다.
- 언어 일관성. S3/S4/R5/R6 객체 시스템이 4종 — 학습 곡선이 일정하지 않다.
위치
- 가장 잘 맞는 곳: 통계, 역학(epidemiology), 임상, 사회과학, 데이터 저널리즘
- 가장 안 맞는 곳: 딥러닝, 대규모 ETL, 일반 백엔드, 실시간 시스템
- 한 줄 평: "데이터 분석이 통계학에 가깝다면 R + tidyverse. 컴퓨터과학에 가깝다면 Python."
8장 · Python 과학 스택 — NumPy / SciPy / SymPy / Pandas / Polars
Python은 2026년에도 데이터·과학·ML의 사실상 표준 언어다. 한 도구가 아니라 스택이다.
스택 구조
┌──────────────────────────────────────────────────────┐
│ Python 과학 스택 (2026) │
│ │
│ 애플리케이션 ┌────────────────────────────┐ │
│ │ Jupyter, Streamlit, Dash │ │
│ └────────────────────────────┘ │
│ 통계 / ML ┌────────────────────────────┐ │
│ │ statsmodels, scikit-learn, │ │
│ │ PyTorch, JAX │ │
│ └────────────────────────────┘ │
│ 데이터프레임 ┌────────────────────────────┐ │
│ │ Pandas 2.x, Polars, │ │
│ │ DuckDB │ │
│ └────────────────────────────┘ │
│ 상징 / CAS ┌────────────────────────────┐ │
│ │ SymPy │ │
│ └────────────────────────────┘ │
│ 수치 / 과학 ┌────────────────────────────┐ │
│ │ NumPy 2.x, SciPy 1.14+, │ │
│ │ Matplotlib │ │
│ └────────────────────────────┘ │
│ 저수준 / 가속 ┌────────────────────────────┐ │
│ │ Numba, Cython, mypyc │ │
│ └────────────────────────────┘ │
└──────────────────────────────────────────────────────┘
2026년 주목해야 할 변화
- NumPy 2.x — 2024년 6월 NumPy 2.0 출시. ABI break가 있었고 1년 만에 생태계가 따라왔다. 더 일관된 dtype 시스템.
- Pandas 2.x + PyArrow backend — Arrow 백엔드가 옵션이 아니라 기본으로 가고 있다.
- Polars — Rust로 작성된 데이터프레임 라이브러리. 큰 데이터에서 Pandas보다 빠르다. Lazy API가 강력.
- SymPy 1.13+ — 상징 계산. Mathematica 대비 느리지만 무료 + Python.
- DuckDB + Ibis — 노트북 안에서 OLAP 쿼리. CSV/Parquet을 SQL로 직접 처리.
코드 한 조각
import numpy as np
import polars as pl
import sympy as sp
# 수치
A = np.random.randn(1000, 1000)
e = np.linalg.eigvals(A)
# Polars (Pandas보다 빠른 데이터프레임)
df = (
pl.scan_csv("sales.csv")
.filter(pl.col("amount") > 100)
.group_by("region")
.agg(pl.col("amount").sum().alias("total"))
.collect()
)
# SymPy 상징 풀이
x = sp.Symbol("x")
integral = sp.integrate(sp.sin(x) * sp.exp(-x), x)
print(sp.latex(integral))
Python 스택의 약점
- 속도. 핫 루프는 NumPy/Numba/Cython으로 내려야 한다. Two-language problem.
- 패키지 의존성 지옥. conda/pip/uv/poetry/pixi 다섯 가지 도구가 공존. 2026년에는 uv가 표준으로 빠르게 자리잡고 있다.
- 상징 깊이. SymPy는 Mathematica/Maple의 정밀도와 속도에 미치지 못한다.
위치
- 가장 잘 맞는 곳: 거의 모든 데이터·과학·ML 워크플로, 학부 1학년부터 박사까지 범용
- 가장 안 맞는 곳: 공학 인증(MATLAB이 표준), 고급 상징 풀이(Mathematica), Julia가 우월한 PDE
- 한 줄 평: "고민될 때는 Python으로 시작하는 게 안전한 선택이다."
9장 · GeoGebra + Desmos — 교육 현장의 두 거인
수학 교육에서 가장 많이 쓰이는 도구는 Mathematica도 MATLAB도 아니다. GeoGebra와 Desmos다.
GeoGebra
- 출신. 2001년 오스트리아 잘츠부르크 대학교의 Markus Hohenwarter가 박사 프로젝트로 시작.
- 포지셔닝. 기하 + 대수 + 미적분 + 통계의 통합 다이내믹 수학.
- 사용자. 전 세계 1억 명. 학교 라이선스 거의 무료.
- 모듈. Graphing, Geometry, 3D Calculator, CAS, Classic, Notes, Suite — 2024년 통합 Suite로 정리.
GeoGebra Suite (2026)
├── Graphing Calculator (Desmos급 함수 그래프)
├── Geometry (Euclid 작도)
├── 3D Calculator (공간 시각화)
├── CAS Calculator (상징 계산, Maxima 기반)
├── Notes (디지털 화이트보드)
└── Classic 6 (모든 기능 통합 데스크탑)
Desmos
- 출신. 2011년 Eli Luberoff 창업. 2022년 Amplify에 인수됐다(교과 부분), 그래프 계산기는 별도 비영리.
- 포지셔닝. "최고의 함수 그래프 계산기" + K-12 교과 통합.
- 사용자. 미국 K-12의 사실상 표준. SAT/ACT 인증.
- 2024년 출시 Geometry Tool — GeoGebra Geometry와 경쟁.
비교
| 항목 | GeoGebra | Desmos |
|---|---|---|
| 강점 | 기하 + CAS + 3D | 함수 그래프 UX, 교과 액티비티 |
| 약점 | UI가 무겁다 | CAS 약함, 3D 약함 |
| 가격 | 무료 (재단) | 무료 (비영리) |
| 한국 | 많이 채택, EBS 협업 | 일부 학교, 영어 장벽 |
| 일본 | 보급 보통 | 보급 약함 |
| 모바일 | iOS/Android 정식 | iOS/Android 정식 |
위치
- GeoGebra는 기하 + 시각화 + CAS가 필요한 학교/대학 1~2학년에 적합.
- Desmos는 함수 그래프 + 활동 기반 학습이 핵심인 K-12에 적합.
- 학년이 올라가서 미적분, 선형대수, 미방으로 가면 SageMath 또는 Mathematica로 졸업한다.
10장 · GAP / Macaulay2 / Magma / Singular — 특화 대수
박사과정 이상으로 가면, 종합 도구가 풀지 못하는 좁은 분야들이 있다. 거기서 자리잡은 특화 CAS 네 개를 본다.
GAP — 계산 군론
GAP(Groups, Algorithms, Programming)은 1986년 RWTH Aachen에서 시작한 군론 시스템이다. 2026년 4.13+ 대. 유한군, 표현론, 부분군 격자, 군 코호몰로지가 핵심.
gap> G := SymmetricGroup(5);
Sym( [ 1 .. 5 ] )
gap> Order(G);
120
gap> ConjugacyClasses(G);
[ ()^G, (1,2)^G, (1,2)(3,4)^G, (1,2,3)^G, ...]
gap> IsSimple(G);
false
Macaulay2 — 계산 대수기하
Macaulay2는 1992년 Daniel Grayson과 Michael Stillman이 시작한 가환환 + 대수기하 시스템. 환, 아이디얼, 그뢰브너 기저, 자유 분해, 호몰로지 대수가 핵심.
i1 : R = QQ[x, y, z]
o1 = R
i2 : I = ideal(x^2 - y, y^2 - z, x*y - z)
o2 = ideal (x^2 - y, y^2 - z, x*y - z)
i3 : gens gb I
o3 = | yz-x z2-y2 xz-y2 y2-z xy-z x2-y |
Magma — 상용 가환대수
Magma는 시드니 대학교의 Computational Algebra Group이 개발한 유료 시스템(1993~). 정수론, 대수기하, 코딩이론, 표현론에서 가장 강하다는 평. GAP/M2와 같이 쓰는 일도 흔하다.
가격은 라이선스 협상 — 학생 라이선스가 별도 있다. SageMath가 Magma의 일부 기능을 호출하는 옵션이 있지만 라이선스가 필요하다.
Singular — 다항식 대수
Singular는 1984년 카이저슬라우테른 대학교에서 시작한 다항식 계산 시스템. 그뢰브너 기저, 자유 분해, 특이점 해석이 핵심. SageMath의 다항환 백엔드로도 쓰인다.
4개 비교
| 시스템 | 출신 | 강점 | 라이선스 |
|---|---|---|---|
| GAP | RWTH Aachen | 유한군, 표현론 | GPL |
| Macaulay2 | Illinois/Cornell | 가환환, 자유 분해 | GPL |
| Magma | Sydney | 정수론, 상위 대수 | 상용 |
| Singular | TU Kaiserslautern | 다항환, 그뢰브너 | GPL |
위치
- 학부에는 거의 안 쓰인다. 박사과정에서 분야에 따라 필수.
- SageMath가 GAP, Singular을 내장한다 — Sage 안에서 자연스럽게 호출 가능.
- Macaulay2는 Sage가 별도 호출 (
macaulay2.eval()). - Magma는 라이선스 부담이라 학교 사이트 라이선스에 따라 사용 가능 여부가 다르다.
11장 · CoCalc — 클라우드 SageMath + Jupyter
CoCalc는 William Stein이 2013년 시작한 클라우드 협업 노트북 플랫폼이다. SageMath의 사실상 클라우드 호스트.
무엇을 제공하나
- SageMath, Jupyter, R, Julia, Octave 노트북 브라우저에서.
- 풀 Linux 터미널 — LaTeX 컴파일, gnuplot, git까지.
- 실시간 협업 — 구글 닥스 같은 동시 편집.
- 과제 / 채점 시스템 — 교사가 학생 노트북을 받고 자동 채점.
- 시간되감기 — 모든 편집 히스토리를 슬라이더로 재생.
가격 (2026)
- 무료 — 인터넷 접근 없음, 1GB 메모리, 1 CPU
- 학생 — 월 $5 정도 (인터넷 + 더 많은 자원)
- 교사 / 연구실 — 월 $14~ 부터 (사이트 라이선스 별도)
CoCalc의 핵심 가치
수업에서 모두가 같은 환경을 갖는다. SageMath/Jupyter 설치 안되는 학생, M1 Mac 호환 안되는 패키지, 윈도우에서 깨지는 LaTeX — 이 모든 문제가 사라진다. 학부 강의에서 큰 가치.
위치
- 학부 수학 / 통계 강의의 표준 인프라.
- 박사과정 연구에는 한계 — 큰 메모리, GPU 등은 별도.
- 자기 호스트가 가능한 오픈소스 버전도 존재(KuCalc).
12장 · Wolfram Cloud + Wolfram Alpha API
Wolfram Cloud는 Mathematica의 클라우드 버전. Wolfram Alpha API는 자연어 수학 풀이를 외부 앱에서 호출하는 API.
Wolfram Cloud
- 브라우저에서 Wolfram Language 노트북.
- Cloud Notebook + Deployable APIs — 노트북을 그대로 웹 API로 배포 가능.
- Free Tier가 있다. 단, 계산량 제한.
- 가격 — 개인 $5~/월 부터 시작, 비즈니스는 별도.
Wolfram Alpha API
import wolframalpha
client = wolframalpha.Client(app_id="XXXX")
res = client.query("integral of sin(x)^2 from 0 to pi")
print(next(res.results).text)
# -> "pi/2"
- 자연어 입력 → Wolfram 식 평가 결과.
- 챗봇, 교육 앱, 그래프 계산기에 자주 박힌다.
- 무료 — 월 2,000 호출. 그 이상은 유료.
활용 시나리오
- 챗봇이 수학 질문을 받으면 Alpha API에 떠넘긴다.
- 학습 앱이 단계별 풀이를 보여줄 때 사용.
- Mathematica 라이선스 없는 사람이 일회성 문제 풀이.
13장 · JAX (Google) — 과학 + ML 융합
JAX는 Google이 2018년 발표한 라이브러리. "NumPy + autograd + XLA"의 조합이다. 2026년에는 과학 계산과 ML의 교차점에서 가장 뜨거운 도구.
정신모델
- API는 NumPy와 거의 동일 — 학습 곡선이 낮다.
- 모든 함수가 자동 미분된다 —
jax.grad. - 모든 함수가 JIT 컴파일된다 —
jax.jit로 XLA 컴파일 (CPU/GPU/TPU). - 함수형 + 순수 함수 강제 — 부작용 있는 코드는 안된다.
import jax
import jax.numpy as jnp
def rosenbrock(x):
return jnp.sum(100.0 * (x[1:] - x[:-1]**2)**2 + (1 - x[:-1])**2)
# 그래디언트
grad_rb = jax.grad(rosenbrock)
# JIT 컴파일
jit_rb = jax.jit(rosenbrock)
# 벡터화 — 배치 처리
batched = jax.vmap(rosenbrock)
xs = jnp.array([[1.0, 1.0], [2.0, 2.0]])
print(batched(xs))
JAX vs PyTorch
| 항목 | JAX | PyTorch |
|---|---|---|
| 정신모델 | 함수형, 순수함수 | 객체지향, 명령형 |
| 자동미분 | grad/jacrev/jacfwd | autograd.backward |
| JIT | XLA, 정적 | TorchScript/torch.compile |
| 분산 | pjit / shard_map | DDP / FSDP |
| 생태계 | JAX Ecosystem (Flax, Optax, Equinox) | PyTorch 압도적 |
과학 계산에서 JAX
- 물리 시뮬레이션 — DeepMind의 분자 동역학, NASA의 유체 코드.
- 베이지안 추론 — NumPyro, BlackJAX.
- 신경 ODE / PDE — Diffrax, JAX-CFD.
- 양자 시뮬레이션 — JaxQuTip 등.
약점
- 함수형 사고 강제 — 학습 곡선이 있다.
for루프를 자유롭게 쓰면 안된다(jax.lax.scan등 사용). - 에코시스템 분열 — Flax, Haiku, Equinox 등 여러 신경망 라이브러리. 표준이 없다.
- JIT 디버깅 — 컴파일된 코드의 에러 메시지는 거칠다.
위치
- 과학 + ML 교차점에서 점점 표준이 되고 있다.
- 순수 ML이면 PyTorch가 여전히 큰 표준.
- 순수 수치는 NumPy/Julia로도 충분, JAX는 미분 + 가속이 같이 필요할 때.
14장 · CAS 진영 — Symbolics.jl / Reduce / Maxima / Pari-GP / SymPy
상용을 빼면 오픈 CAS 진영은 풍부하다.
SymPy
- Python 네이티브.
- 학생/엔지니어가 처음 만나는 CAS — Mathematica 사기 전 시도.
- 약점 — 속도. 큰 식 풀 때 답답하다.
import sympy as sp
x = sp.Symbol("x")
sp.integrate(sp.sin(x) * sp.exp(-x), x)
Symbolics.jl
- Julia 네이티브 CAS. ModelingToolkit과 묶여 PDE/ODE 시스템 빌더로 자리잡았다.
- 다중 디스패치 덕에 큰 식에서 SymPy보다 빠르다.
using Symbolics
@variables x y
expr = x^2 + 2x*y + y^2
simplify(expr)
Maxima
- Macsyma의 직계 후손. MIT 1960년대 시작, 현재는 GPL.
- Lisp 기반, 오래된 UX. SageMath의 상징 백엔드 중 하나.
- 깊은 정수론, 적분 — 의외로 강하다.
Reduce
- 1968년 Hearn이 시작. 2008년 오픈소스화.
- 물리학 계열에서 역사적으로 강했다 — Feynman 다이어그램 계산 등.
- 현대 도구로는 보기 드물지만 여전히 살아있다.
Pari/GP
- 1985년 Bordeaux에서 시작. 정수론 전문 CAS.
- 빠른 정수론 알고리즘 — 소수 판정, 인수분해, 타원곡선.
- C 라이브러리(libpari) + 인터랙티브 셸(GP).
- SageMath의 정수론 백엔드.
? factor(2^256 - 1)
? isprime(2^127 - 1)
? E = ellinit([0, 0, 1, -1, 0])
? ellanalyticrank(E)
5개 비교
| CAS | 언어 | 강점 | 사용자 |
|---|---|---|---|
| SymPy | Python | 일반 + 학습 | 학생, 엔지니어 |
| Symbolics.jl | Julia | PDE/ODE, MTK | 과학 ML |
| Maxima | Lisp | 적분, 미방, 노련함 | Sage 사용자 |
| Reduce | Lisp | 물리 계산 | 역사적, 일부 매니아 |
| Pari/GP | C | 정수론 | 수론 박사과정 |
15장 · 한국 — KAIST / 카이스트 SageMath / Posit 한국
한국 대학 수학 / 공학 풍경.
KAIST (한국과학기술원)
- 공학 — MATLAB이 학부부터 깊이 박혀있다. EE/ME/AE 라이선스 사이트가 운영된다.
- 수학과 — Mathematica + SageMath 병행. 학부 미적분, 선형대수에서 Mathematica를, 연구실에서는 SageMath가 흔하다.
- AI 대학원 — Python/JAX/PyTorch 중심. R은 일부 통계 과목에서.
- 개별 강의 사례 — 카이스트 수학과의 SageMath 실습 과목, 산업공학과의 R 통계 과목이 알려져 있다.
서울대학교
- 수리과학부 — Mathematica 라이선스 + 일부 SageMath.
- 공과대학 — MATLAB + Python.
- 통계학과 — R + tidyverse가 강세.
- AI 연구실 — Python + PyTorch / JAX.
POSTECH
- 작은 규모지만 MATLAB / Mathematica 라이선스를 사이트 단위로 보유.
- 수학과는 SageMath / GAP / Macaulay2 등 오픈 CAS 활용도가 높다.
산업 — 한국
- 자동차(현대·기아) — MATLAB / Simulink 깊이 박혀있다. 인증 워크플로 때문.
- 반도체(삼성·SK하이닉스) — MATLAB + Python. 신호처리·계측에 MATLAB, 데이터 분석에 Python.
- 금융 — R + Python. 분석은 R, 모델 배포는 Python.
- 스타트업 — Python 거의 독점. R은 데이터 분석가가 일부.
한국어 자료
- 한국 SageMath 그룹 — 학회 발표 중심으로 활동.
- 카이스트 OCW — 일부 수학 강의에 SageMath 실습 자료.
- EBS / 교육방송 — GeoGebra 활용 수학 강의.
16장 · 일본 — 京都大学 / 東京大学 / RIKEN / Mathematica 라이선스
일본 대학 풍경.
東京大学 (도쿄대)
- 数理科学研究科 — Mathematica 사이트 라이선스 운영. 학부생도 접근 가능.
- 工学部 — MATLAB이 학부 전 학년에 박혀있다.
- 物理学科 — Mathematica + Python + Julia 혼합.
- 情報理工 / AI — Python + PyTorch / JAX 중심.
京都大学 (교토대)
- 理学部数学教室 — Mathematica + SageMath. 일부 박사과정 학생이 SageMath / GAP / Macaulay2를 사용.
- 数理解析研究所(RIMS) — 순수 수학 연구 중심. 도구는 연구자 선호에 따라 다양.
- 工学部 — MATLAB / Simulink가 자동차·전자 산업과의 연계로 깊다.
RIKEN
- R-CCS (계산과학연구센터) — 富岳 슈퍼컴퓨터를 운영. Julia / Python / C++ / Fortran 혼용.
- AIP (혁신지능통합연구센터) — Python + PyTorch + JAX 중심.
大阪大学 / 名古屋大学
- 공학부 강세 — MATLAB / Simulink 깊이.
- 수학과는 SageMath / Mathematica 혼용.
산업 — 일본
- 자동차(Toyota·Honda·Nissan) — MATLAB / Simulink 표준. 일본은 MathWorks 일본 법인이 강력하다.
- 전자(Sony·Panasonic·Renesas) — MATLAB + Python + C/C++.
- 금융 — R + Python. 보수적인 통계 분석은 R, 새 워크플로는 Python.
- AI 스타트업(Preferred Networks, Sakana AI 등) — Python + JAX / PyTorch.
일본어 자료
- 京大の数理リテラシー — 교토대 SageMath 자료가 일부 공개돼있다.
- MathWorks Japan — MATLAB 일본어 자료 풍부.
- Wolfram Japan — Mathematica 일본어 세미나 정기.
17장 · 누가 무엇을 골라야 하나 — 학생 / 연구 / 산업 / 교육
마지막으로 시나리오별 권고.
학부 1~2학년 (수학·과학·공학 입문)
- 기본은 Python + NumPy + SymPy + Matplotlib. 무료, 한 번 배워두면 평생 쓴다.
- 시각화·기하 — GeoGebra 또는 Desmos.
- 학교가 Mathematica/MATLAB 사이트 라이선스를 사주면 — 그것도 함께 익혀라.
학부 3~4학년 / 전공 결정 후
- 수학 / 통계 전공 — R + tidyverse, SageMath, SymPy.
- 공학(EE/ME/AE) — MATLAB + Simulink (산업 표준이라 어쩔 수 없다).
- CS / AI — Python + PyTorch / JAX.
박사과정 (수학 순수)
- 정수론 / 대수기하 — SageMath + GAP + Macaulay2 + Singular. Magma 라이선스 있으면 추가.
- 해석학 / PDE — Julia (DifferentialEquations.jl) 또는 MATLAB + PDE Toolbox.
- 응용 수학 — Python + JAX + Julia 혼용.
박사과정 (공학·물리)
- 산업 인접 — MATLAB / Simulink 필수.
- 학계 인접 — Python + Julia + 분야 도구.
- 양자 — Qiskit / Cirq + JAX.
회사 R&D
- 자동차·항공·국방 — MATLAB / Simulink (인증 요구).
- 반도체·통신 — MATLAB + Python.
- 금융 — R + Python + Julia.
- AI / 스타트업 — Python + PyTorch / JAX 거의 독점.
교육 (교사)
- K-12 — Desmos 또는 GeoGebra. 학생이 모바일에서도 쓸 수 있다.
- 고교 — GeoGebra + Python (입문).
- 대학 강의실 — CoCalc 또는 Posit Cloud — 환경 통일이 중요.
참고 / References
- Wolfram Mathematica — https://www.wolfram.com/mathematica/
- Wolfram Language — https://www.wolfram.com/language/
- Wolfram Alpha — https://www.wolframalpha.com/
- Wolfram Cloud — https://www.wolframcloud.com/
- MATLAB — https://www.mathworks.com/products/matlab.html
- Simulink — https://www.mathworks.com/products/simulink.html
- Maple — https://www.maplesoft.com/products/maple/
- MapleSim — https://www.maplesoft.com/products/maplesim/
- SageMath — https://www.sagemath.org/
- Julia — https://julialang.org/
- SciML — https://sciml.ai/
- Symbolics.jl — https://docs.sciml.ai/Symbolics/stable/
- R Project — https://www.r-project.org/
- tidyverse — https://www.tidyverse.org/
- Posit — https://posit.co/
- Positron — https://positron.posit.co/
- Quarto — https://quarto.org/
- NumPy — https://numpy.org/
- SciPy — https://scipy.org/
- SymPy — https://www.sympy.org/
- Pandas — https://pandas.pydata.org/
- Polars — https://pola.rs/
- JAX — https://github.com/google/jax
- Flax — https://github.com/google/flax
- GeoGebra — https://www.geogebra.org/
- Desmos — https://www.desmos.com/
- GAP — https://www.gap-system.org/
- Macaulay2 — https://macaulay2.com/
- Magma — http://magma.maths.usyd.edu.au/magma/
- Singular — https://www.singular.uni-kl.de/
- Maxima — https://maxima.sourceforge.io/
- Reduce — https://reduce-algebra.sourceforge.io/
- PARI/GP — https://pari.math.u-bordeaux.fr/
- CoCalc — https://cocalc.com/
- William Stein on Sage — https://wstein.org/
- KAIST — https://www.kaist.ac.kr/
- 서울대학교 수리과학부 — https://www.math.snu.ac.kr/
- POSTECH — https://www.postech.ac.kr/
- 東京大学 数理科学 — https://www.ms.u-tokyo.ac.jp/
- 京都大学 数理解析研究所 (RIMS) — https://www.kurims.kyoto-u.ac.jp/
- RIKEN R-CCS — https://www.r-ccs.riken.jp/
- MathWorks Japan — https://jp.mathworks.com/