LabHub

블로그

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

한국어English日本語

프롤로그 — "수학을 컴퓨터로 푼다"의 의미가 바뀌었다

20세기 후반의 수학 소프트웨어는 단순했다. 한 가지 도구 — Mathematica든 MATLAB이든 Maple이든 — 가 모든 걸 해야 했다. 라이선스 한 개에 학생은 천 달러를, 학교는 십만 달러를 냈다. 코드는 그 도구의 언어로만 살았다.

2026년 풍경은 다르다.

이 글은 그 지형 전체를 본다. 상용 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)인 패턴 매칭 기반 함수형 언어다.

핵심 강점

코드 한 조각

(* 미분 방정식 풀기 *)
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]

약점과 비판

2026년 위치


MATLAB(MATrix LABoratory)은 1984년 출시 후 전기·기계·자동차·항공 분야의 사실상 표준이다. 2026년 시점 R2026a 대다. Simulink는 블록 다이어그램 기반 시뮬레이션 도구로, MATLAB과 짝을 이룬다.

왜 산업이 못 떠나는가

코드 한 조각

% 상태공간 시스템 시뮬레이션
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년 변화

약점

위치


4장 · Maple (Maplesoft) — Mathematica의 영원한 경쟁자

Maple은 1980년 워털루 대학교에서 시작된 CAS다. 2025년 Maple 2025가 출시됐다. Mathematica와 자주 비교되지만 정신모델이 다르다.

Mathematica와의 차이

항목MathematicaMaple
언어 패러다임함수형 + 패턴 매칭명령형 + 절차적
노트북노트북 우선Worksheet (보수적) + Math Mode
강점상징 + 데이터 + 시각화미분방정식 + 정수론 + 교과 통합
가격비싸다비싸다 (조금 더 쌈)
학교 채택미국·이공계 우세캐나다 + 유럽 + 일부 한국

Maple의 진짜 강점

코드 한 조각

# 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));

위치


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년 현황

위치


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 생태계

약점

위치


7장 · R + tidyverse + Posit (구 RStudio) — 통계의 표준

R은 1993년 출시된 통계 전용 언어다. 2026년 4.x 대다. R 자체보다 더 중요한 것은 tidyverse 생태계와 그걸 끌고 가는 회사 Posit(2022년 RStudio에서 사명 변경)이다.

왜 R은 죽지 않았는가

10년간 "Python이 R을 대체할 것"이라는 예측이 반복됐다. 2026년에도 R은 살아있다. 이유:

코드 한 조각

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 회사가 아니라 데이터과학 회사다." 이후:

약점

위치


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년 주목해야 할 변화

코드 한 조각

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 스택의 약점

위치


9장 · GeoGebra + Desmos — 교육 현장의 두 거인

수학 교육에서 가장 많이 쓰이는 도구는 Mathematica도 MATLAB도 아니다. GeoGebraDesmos다.

GeoGebra

GeoGebra Suite (2026)
├── Graphing Calculator (Desmos급 함수 그래프)
├── Geometry (Euclid 작도)
├── 3D Calculator (공간 시각화)
├── CAS Calculator (상징 계산, Maxima 기반)
├── Notes (디지털 화이트보드)
└── Classic 6 (모든 기능 통합 데스크탑)

Desmos

비교

항목GeoGebraDesmos
강점기하 + CAS + 3D함수 그래프 UX, 교과 액티비티
약점UI가 무겁다CAS 약함, 3D 약함
가격무료 (재단)무료 (비영리)
한국많이 채택, EBS 협업일부 학교, 영어 장벽
일본보급 보통보급 약함
모바일iOS/Android 정식iOS/Android 정식

위치


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개 비교

시스템출신강점라이선스
GAPRWTH Aachen유한군, 표현론GPL
Macaulay2Illinois/Cornell가환환, 자유 분해GPL
MagmaSydney정수론, 상위 대수상용
SingularTU Kaiserslautern다항환, 그뢰브너GPL

위치


11장 · CoCalc — 클라우드 SageMath + Jupyter

CoCalc는 William Stein이 2013년 시작한 클라우드 협업 노트북 플랫폼이다. SageMath의 사실상 클라우드 호스트.

무엇을 제공하나

가격 (2026)

CoCalc의 핵심 가치

수업에서 모두가 같은 환경을 갖는다. SageMath/Jupyter 설치 안되는 학생, M1 Mac 호환 안되는 패키지, 윈도우에서 깨지는 LaTeX — 이 모든 문제가 사라진다. 학부 강의에서 큰 가치.

위치


12장 · Wolfram Cloud + Wolfram Alpha API

Wolfram Cloud는 Mathematica의 클라우드 버전. Wolfram Alpha API는 자연어 수학 풀이를 외부 앱에서 호출하는 API.

Wolfram Cloud

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"

활용 시나리오


13장 · JAX (Google) — 과학 + ML 융합

JAX는 Google이 2018년 발표한 라이브러리. "NumPy + autograd + XLA"의 조합이다. 2026년에는 과학 계산과 ML의 교차점에서 가장 뜨거운 도구.

정신모델

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

항목JAXPyTorch
정신모델함수형, 순수함수객체지향, 명령형
자동미분grad/jacrev/jacfwdautograd.backward
JITXLA, 정적TorchScript/torch.compile
분산pjit / shard_mapDDP / FSDP
생태계JAX Ecosystem (Flax, Optax, Equinox)PyTorch 압도적

과학 계산에서 JAX

약점

위치


14장 · CAS 진영 — Symbolics.jl / Reduce / Maxima / Pari-GP / SymPy

상용을 빼면 오픈 CAS 진영은 풍부하다.

SymPy

import sympy as sp
x = sp.Symbol("x")
sp.integrate(sp.sin(x) * sp.exp(-x), x)

Symbolics.jl

using Symbolics

@variables x y
expr = x^2 + 2x*y + y^2
simplify(expr)

Maxima

Reduce

Pari/GP

? factor(2^256 - 1)
? isprime(2^127 - 1)
? E = ellinit([0, 0, 1, -1, 0])
? ellanalyticrank(E)

5개 비교

CAS언어강점사용자
SymPyPython일반 + 학습학생, 엔지니어
Symbolics.jlJuliaPDE/ODE, MTK과학 ML
MaximaLisp적분, 미방, 노련함Sage 사용자
ReduceLisp물리 계산역사적, 일부 매니아
Pari/GPC정수론수론 박사과정

15장 · 한국 — KAIST / 카이스트 SageMath / Posit 한국

한국 대학 수학 / 공학 풍경.

KAIST (한국과학기술원)

서울대학교

POSTECH

산업 — 한국

한국어 자료


16장 · 일본 — 京都大学 / 東京大学 / RIKEN / Mathematica 라이선스

일본 대학 풍경.

東京大学 (도쿄대)

京都大学 (교토대)

RIKEN

大阪大学 / 名古屋大学

산업 — 일본

일본어 자료


17장 · 누가 무엇을 골라야 하나 — 학생 / 연구 / 산업 / 교육

마지막으로 시나리오별 권고.

학부 1~2학년 (수학·과학·공학 입문)

학부 3~4학년 / 전공 결정 후

박사과정 (수학 순수)

박사과정 (공학·물리)

회사 R&D

교육 (교사)


참고 / References

댓글

아직 댓글이 없습니다.

로그인하면 댓글을 쓸 수 있습니다