octave 관련된 간단한 글을 쓰고 싶었는데, 이 기회에 시작합니다.
회사 다니면서도, 아는 중학생과 고등학생 몇명에게 옥타브를 가르쳐 주면서 그냥 간단한 것만 보여주면서 수치해석에 대한 이야기를 간단하게 원격으로 강의를 했었습니다. 근데 애들이 생각 이상으로 즐겁게 시도해보기도 하는 걸 보면서, 쉽게 접근 가능한 녀석으로 가르쳐 주는 것도 좋을 거 같아보이더군요.
뭐, 대학 오면 매트랩(matlab)도 써보고 하면 그쪽에서 충분히 익히겠지만, 전 이쪽이 좀 더 좋아보입니다. 그 이유를 좀 정리하면…
- GPL 라이센스의 오픈소스이다.
이건 엄청 중요하다고 생각합니다. 접근성이 엄청 좋은 것이니깐요. 쉽게 설치해서 쓸 수 있는 것은 시작하기 쉽다는 것이기도 하니깐요. - 여러 운영체제에서 이용 가능하다.
이게 윈도우, 맥, 리눅스 뿐 아니라 안드로이드에서까지도 사용이 가능합니다. ios도 되었으면 좋겠는데….ㅠㅠ - MATLAB 문법과 거의 비슷하게 이용할 수 있다.
일부 차이점은 존재하지만, 그것들을 제외하면 어느정도 matlab 코드를 이해하면서 사용할 수 있습니다. 필요하면 그대로 짜서 만들면 그만이니깐요. - 다양한 패키지를 무료로 내려받아서 적용할 수 있다.
이거 은근 사용하는 사람들이 많아서 좀 많은 패키지들이 존재합니다. 이들을 무료로 받아서 이용할 수 있고, 그를 통한 지식을 습득할 수도 있습니다.
그러나, 이렇게 적어도 좀 단점이랄 것들도 당연히 존재하는데, 단점에 대해서 이야기하면 다음과 같습니다.
- 느리다.
뭐 아주 못쓸 정도로 느린 건 아닌데…. 이걸로 실무에서 쓴다고 하면 그냥 돈주고 매트랩 쓰는 곳들도 많을 것입니다. 근데 이건 개인적으로는, 리눅스 환경이나 윈도우 환경에서 메모리 엄청 때려박는 환경은 그나마 나을지도요. - MATLAB 대비 지원 기능이 떨어진다.
자료형 관련부터 시작해서 여러모로 matlab에서는 지원하는 자료형 변수, 함수가 octave에는 없을 수 있습니다. 이런 것들은 코드 만드는데 좀 어려울 수 있는데, 이런 것들도 충분히 코드로 짤 수 있으면 문제 없다고 봅니다. - 프로그래밍 환경만 제공하는 octave는 사용에 제약이 있다.
매트랩은 수치해석 관련한 여러 툴박스를 가지고 있습니다. 이를 통해서 여러 환경을 지원해줄 수 있는데, 그에 반해서 octave는 코드를 짜서 돌리는 것에만 한정된 환경을 제공하기만 해서, 사용성 관련해서 떨어진다고 볼 수 있습니다.
장점과 단점이 명확하지만, 전 그래도 좋은 접근성을 통해서 여러모로 이용할 수 있는 옥타브를 추천하고 그를 간단한 강의로 사용법을 정리해보고 싶어지더군요. 못하는 것이 아니라 좀 번거로운 것이니깐요. AMD GPU로도 딥러닝, 인공지능을 구현하고 할 수 있지만 굳이 사람들이 CUDA 땜에 엔비디아 GPU로만 딥러닝, 인공지능을 이용하는 것과 같은 거라고 보고 있습니다.
그래서 하나하나 쉬운 걸 해보는 걸로 한 번 쭉 써보고, 이걸 가지고 여러모로 활용하는 내용들도 조금씩 적어서 하나하나 정리해보려고 합니다.
잘부탁합니다~

p.s. 좀 많이 써보고 많은 사람들과 내용 공유도 했으면 좋겠네요. 커뮤도 있긴 할텐데… 그래도 내가 써봐야지 말하기 편하죠. ㅇㅂㅇ