티스토리 뷰

728x90

몇 년 전 한 프로젝트에서 실험실에서 매트랩으로 만든 모델을 자동 제어를 수행하는 레벨-2 C/C++ 프로그램에 매트랩 라이브러리를 활용하여 적용한 경험이 있었는데 국내 기업이나 대학에서 매트랩의 인기는 여전한 모양이다. 초보자들이 그래픽 도구로 어도비(Adobe)의 포토샵(Photoshop)을 접한다면 수치 해석이나, 데이터 분석, 신호 처리등 수학이나 공학적 접근이 필요한 분야에서는 매스워크(MathWorks)의 매트랩(Matlab)을 접하는 그림이다. 물론 포토샵처럼 매트랩은 캠퍼스에서는 부담 없이 사용해 볼 수 있다. 문제는 현장에서 발생한다.

 

라이선스 비용이 개인이나 중소기업이 감당하기에는 보통이 아니다. 그 비싸다는 1위 DBMS 라이선스 비용에 육박한다고 해도 과언이 아니다. 물론 이런 인식은 매트랩을 "상용 도구"로 바라보는 시각에 기인한다. 비용에 구애받지 않고 매트랩을 사용하시던 분들은 매트랩을 C/C++, 파이썬과 같은 범용 프로그래밍 언어 중의 하나로 인식하는 분들도 있다. 물론 매트랩이 언어라고 인식하는 것도 틀린 말은 아니다.

 

columns = 10000;
rows = 1;
bins = columns/100;

rng(now);
list = 100*rand(rows,columns);
histogram(list,bins)

 

위의 코드를 보면 C언어 문법과 상당히 유사하다. 이런 스크립트를 저장하면 *. m이란 파일로 저장된다.

 

문제는 일반 범용 언어라면 특정 도구에서만 해당 언어를 인식하는 것이 아니라 다양한 도구에서 해당 언어를 인식하여 원하는 작업을 수행할 수 있어야 하는데, 현실은 라이선스가 있는 매트랩 도구를 설치해야 해당 언어로 작성한 기능을 지속적으로 사용할 수 있다는 것이다. 이메일과 전화 확인을 통해서 30 일 체험판 라이선스를 받을 수는 있지만 이 방법은 지속 가능하지 않다. 그렇다면, 대안은 없을까? 결론적으로 말하면 대안은 있지만 매트랩과 100% 소스 호환을 지원하는 도구는 없다. 특히, 매트랩이 자랑하는 전용 툴박스 기능을 상당 부분 사용했다면 비슷하게 기능을 구현했다 하더라도 동일한 값은 기대하기 어렵다. 

 

첫 번째 대안은 옥타브(Octave)로 우선 프로그램을 설치하지 않아도 온라인으로 직접 코드를 수행해 볼 수 있는 사이트가 있다는 점이 매력적이다. 간단한 매트랩 코드는 온라인 사이트에서 직접 실행해 볼 수 있다. 

위의 그림은 https://octave-online.net/에서 간단한 예제 코드를 입력하여 사인 곡선을 그린 모습이다. 그림처럼 기본적인 코드 문법은 매트랩과 동일하게 사용할 수 있지만 툴박스 기능 차이가 있기 때문에 매트랩에서 옥타브로 옮기고 싶어도 실행하지 못하는 사람이 많아 보인다. 대표적인 매트랩 툴박스 기능들을 살펴보면 생물정보학, 커브 피팅, 딥러닝, 계량경제학, 이미지 처리, 최적화, 병렬 컴퓨팅, 신호 처리, 통계 및 머신 러닝, 웨이블릿 등이 있는데 빅데이터나 AI와 연계하여 생각해 보면 앞으로도 그 활용도가 적지 않아 보인다. 

 

그럼에도, 오픈소스 프로젝트를 찾아보는 것은 비용 문제와 함께 시스템의 유연성 확보 등을 들 수 있겠다. 

 

https://github.com/gnu-octave

 

옥타브의 소스 코드는 위와 같은 깃허브에서 확인할 수 있다. 없어지는 프로젝트가 한둘이 아닌데 최근까지도 지속적으로 업데이트하고 있다는 점이 아주 매력적이다. 핵심 코드들은 C/C++로 작성되어 있다. 공식 웹사이트는 https://www.octave.org/인데 포스팅 일자 기준 최근 릴리즈는 2025년 6월의 GNU Octave 10.2.0이다. 활발하게 살아있는 오픈 소스 프로젝트라고 표현할 수 있다. 다운로드는 https://octave.org/download.html에서 가능하다. 크로스 플랫폼 소프트웨어 이므로 어떤 운영체제에서도 사용할 수 있다.

 

앞서 옥타브를 매트랩을 대체하여 사용하는 데 있어 걸림돌로 작용하는 것이 매트랩의 툴박스 기능들이라 언급했는데, 매트랩의 툴박스와 비교할 수 있는 것이 옥타브 패키지로 위의 그림은 "learn"으로 검색한 패키지 검색 결과이다. https://gnu-octave.github.io/packages/에서 검색하고 다운로드할 수 있다. 패키지들도 최근까지 활동이 활발하다는 것이 눈에 들어온다. 많은 경우 스크립트 함수로 필요한 기능들을 확장시켜 주는 모양새다. 옥타브의 소스코드들도 *. m으로 저장한다.

 

매트랩 입장에서는 옥타브보다는 파이썬이 자신들에게 더 위협적인 존재라고 여기는 듯하다. 필자의 생각으로는 예전과 달리 파이썬을 어린 시절부터 접하는 공학자나 연구자들이 많고 파이썬의 확장성이 주요한 판단 근거가 아닐까 싶다. 파이썬에 사용할 수 있는 매트랩 연관 대표 라이브러리들은 다음과 같다.

파이썬의 확장성에도 불구하고 매트랩이 강조하는 자신들의 장점은 결국 속도 및 사용 편의성과 함께 효과적인 지원 가능성, 그리고 하위 호환성을 유지하는 등의 효율적인 유지 보수 강점 등이다. 

 

끝으로 매트랩의 대안으로 개인적으로는 옥타브를 선택하고 싶다. 활발하게 살아있는 오픈소스 프로젝트 만큼 매력적인 것은 없다. 매트랩과 100% 호환되는 것은 아니지만 필요하다면 패키지를 찾아보고 그래도 원하는 것이 없다면 원천 코드 또는 매트랩 함수 형태로 추가할 수 있는 여지가 있다.

728x90
댓글
최근에 올라온 글
최근에 달린 댓글
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함