Show GN: CalcMax – SymPy 엔진을 내장한 오픈소스 안드로이드 공학용/CAS 계산기
요약
SymPy 엔진을 내장한 오픈소스 안드로이드 공학용 계산기 CalcMax를 소개합니다. 이 앱은 일반 공학 계산부터 CAS, 그래프, 통계 분석까지 포괄하며, 인터넷 연결 없이 강력한 기호 계산이 가능합니다. 특히 LaTeX 붙여넣기를 지원하여 ChatGPT 등에서 복사한 수식도 바로 계산할 수 있습니다.
핵심 포인트
- SymPy 엔진 내장으로 오프라인 CAS 계산 가능
- LaTeX 붙여넣기 기능 추가로 사용 편의성 극대화
- Android 네이티브 Compose와 Kotlin 기반 파싱 구조 채택
- 계산 프로세스 분리 및 AST 검증을 통한 안정성 확보
안드로이드에서 일반 공학용 계산기처럼 바로 사용할 수 있으면서, 필요할 때 CAS·그래프·Python·통계까지 사용할 수 있는 계산기를 만들었습니다. SymPy 엔진을 앱에 직접 포함해서 인터넷 연결 없이 강력한 CAS 계산이 가능합니다.
주요 기능은 다음과 같습니다.
-
일반 공학용 계산 + 정확한 분수/기호 계산
-
SymPy 기반 CAS
-
미분/적분
-
극한/급수
-
방정식/부등식
-
행렬/벡터
-
ODE, Laplace transform 등
-
Cartesian / Parametric / Polar / Sequence / 3D / 미분방정식 그래프
-
앱 내부 Python 실행 환경
-
연립방정식, 행렬, 벡터 전용 화면
-
통계 분석
-
t/z test, χ², ANOVA, confidence interval
-
회귀분석, histogram, box plot 등
-
단위 변환 / 물리 상수 / Programmer / 환율 계산 / tip 계산
-
사용자 함수 저장
-
계산 기록 및 즐겨찾기
-
내부 정밀도 최대 200자리
최근에는 LaTeX 붙여넣기도 추가했습니다.
예를 들어 ChatGPT 같은 곳에서
$$\int_{0}^{\infty} e^{-x^2} \times \cos(2x) \, dx$$
를 그대로 복사해서 CalcMax에 붙여넣으면 계산 가능한 식으로 변환됩니다.
UI 쪽은 웹뷰가 아니라 Android 네이티브 Compose로 만들었고, 수식 입력은 Kotlin으로 만든 lexer / Pratt parser / AST를 사용합니다. 같은 AST를 CAS, 그래프, 방정식, 통계 등에 공통으로 사용하고, 실제 기호 계산은 별도 프로세스에서 SymPy가 처리하도록 구성했습니다.
SymPy의 parse_expr
이나 unrestricted eval
로 사용자 문자열을 바로 실행하지 않고, 검증된 AST를 통해서만 계산 엔진으로 전달하도록 했습니다. 무거운 기호 계산이 앱 전체를 멈추지 않도록 계산 프로세스 분리와 시간/크기 제한도 넣었습니다.
처음에는 단순히 제가 쓰려고 공학용 계산기를 만들기 시작했는데, 기능을 하나씩 넣다 보니 꽤 본격적인 계산기가 됐습니다. 카시오 계산기처럼 편하게 쓸 수 있으면서 TI89, Nspire CAS 처럼 강력한 계산기를 목표하고 있습니다.
아직 다듬을 부분이 많아서 실제로 사용해 보시고 불편한 점이나 추가했으면 하는 기능이 있으면 의견 부탁드립니다.
GitHub:
https://github.com/kirinonakar/calcmax
개인 홈페이지 (다른 개발 앱들도 구경해 보세요!): https://kirinonakar.github.io/
AI 자동 생성 콘텐츠
본 콘텐츠는 RSS: GeekNews (한국어)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기