· 톺아보기

추천app

[자작앱] 손글씨로 코딩하고 수식을 코드로 연결하는 iPad Python IDE 만들어봤습니다

김짠물 ·

조회 264 · 공감 0 · 댓글 0

안녕하세요. 개인 개발로 iPad용 앱 CodeNote Ink를 만들어 출시했습니다.

Apple Pencil로 수학식이나 Python 코드를 손글씨로 작성하고, 인식한 내용을 실제 계산이나 Python 실행으로 연결할 수 있는 앱입니다.

개인적으로 카페에서 심심풀이 삼아 코딩 테스트 알고리즘 문제를 풀거나, 떠오른 공학적인 아이디어를 스케치하고 결과를 시각화하거나, 수학 계산을 Python 코드로 바로 옮겨서 사용하고 싶을 때 활용하고 있습니다. 아이패드에서 손으로 생각을 정리하는 것부터 실제 코드 실행까지 한 번에 할 수 있으면 좋겠다는 생각으로 만들었습니다.

수학 노트에서는 수식을 손글씨로 작성한 뒤 LaTeX 인식 결과를 직접 편집할 수 있습니다. 식 간소화, 방정식과 부등식 풀이, 미분, 적분, 수치 계산, 인수분해, 그래프 그리기 등을 지원합니다. 행렬과 벡터 연산, 고유값과 고유벡터, Jacobian과 Hessian 같은 기능도 있고, 극한이나 급수, 라플라스 변환과 푸리에 변환도 다룰 수 있습니다.

확률과 통계 기능도 지원합니다. 정규분포, 이항분포, 포아송분포 등 여러 확률분포를 다룰 수 있고, 기댓값과 분산, 공분산, 조건부 확률을 계산하거나 분포에서 표본을 추출해 히스토그램으로 확인할 수 있습니다. 함수와 방정식뿐 아니라 벡터장이나 확률분포도 그래프로 시각화할 수 있습니다.

최근에는 수학 노트에 그래프와 이산 미적분 관련 기능도 추가했습니다. 정점과 간선으로 그래프를 정의하고, 단체 복합체나 이산 외미분, Hodge Laplacian 등을 다룰 수 있습니다. 수학 노트 기능은 현재 베타이며, 지원하는 기호와 연산의 전체 목록 및 사용 예제는 앱 내 Guide에 정리해 두었습니다.

또 하나 신경 쓴 기능은 수학 노트와 코드 노트의 연결입니다. 수학 노트에서 정의한 변수와 함수가 Python 모듈로 제공되며, 모듈 이름은 노트 이름을 기반으로 정해집니다. 사이드바에 표시되는 실제 import 이름을 사용하면 코드 노트에서 바로 불러올 수 있습니다.

예를 들어 helpers라는 수학 노트에서 f(x, y) = x² + y²를 정의했다면 다음처럼 사용할 수 있습니다.

import helpers

result = helpers.f_fn(1, 2)

행렬 같은 수학 객체도 가져올 수 있고, 수학 노트에서 정의한 확률분포의 확률밀도함수(PDF)와 누적분포함수(CDF)도 Python에서 호출할 수 있습니다.

import helpers

pdf_value = helpers.X_pdf(0)
cdf_value = helpers.X_cdf(0)

수학 노트에서 작성한 내용을 별도로 다시 구현하지 않고 Python 코드에서 활용할 수 있도록 한 기능입니다. 자세한 사용법과 이름 규칙도 앱 내 Guide에서 확인할 수 있습니다.

Python 3.13을 기반으로 하며 NumPy, SciPy, SymPy, Matplotlib, NetworkX, Requests를 지원합니다. 이 라이브러리들은 앱에 포함되어 있어 별도의 패키지 설치 없이 사용할 수 있습니다.

인터넷 연결 없이 사용할 수 있도록 Python 실행 환경과 라이브러리, 손글씨 인식 모델을 모두 앱에 포함했습니다. 별도의 계정이나 서버 연결도 필요하지 않습니다. 손글씨 인식 결과가 항상 정확한 것은 아니기 때문에 필요한 경우 코드를 수정할 수 있도록 했고, 코드는 직접 Run 버튼을 눌렀을 때만 실행됩니다.

CSV 같은 데이터 파일을 파일 앱으로 넣어서 Python 코드에서 사용하는 것도 가능합니다. 처음 사용해 보는 분들을 위한 예제 노트도 몇 가지 포함했습니다.

아이패드로 코딩하거나 수학 계산을 자주 하시는 분들이 계시다면 한번 구경해 주세요. 사용해 보시고 의견이나 개선할 점을 알려주시면 감사하겠습니다.

Public TestFlight와 출시되어있는 앱의 버전이 동일하기 때문에 TestFlight로 충분히 사용해보세요.

혼자 개발하다보니 수리 논리를 전개하고, 실제 파이썬 코드로 연결하고 하는 실사용 부분들에서 검증되지 못한 부분들이 있을수 있기 때문에 기능관련 버그, 피드백 모두 매우 필요한 상황입니다

TestFlight 피드백 주실때 피드백 내용에 이메일 남겨주시면 프로모션 코드를 제공하고 싶습니다. 별도 인앱 결제 없는 Lifetime Purchase를 지향하기 때문에 한번 받아두시면 계속 사용하실수 있으며 적극적으로 업데이트할 예정입니다.

App Store Link: https://apps.apple.com/kr/app/codenote-ink/id6810325898
TestFlight Link: https://testflight.apple.com/join/4cZqnxH2


아래는 예시 사진입니다.

가우시안 혼합분포

IMG_0085.PNG


IMG_0084.PNG


IMG_0086.PNG


IMG_0088.PNG


IMG_0087.PNG


벡터장

IMG_0083.PNG


파티클 필터

IMG_0063.PNG


칼만 필터

IMG_0064.PNG


벡터장

IMG_0074.PNG


로렌츠 어트랙터

IMG_0058.PNG


댓글 0

아이포니앙 최근 글

아이포니앙 목록 더 보기