2014년 1월 12일 일요일

금융공학도를 위한 프로그래밍 언어 (주관)

이 글은 저자의 개인적인 생각이 섞여있습니다. 저자는 프로그래밍 초짜 중에 초짜입니다. 감안하고 읽으시기 바랍니다.

글을 쓰기에 앞서, 저자의 base 언어는 C++ 이다. WIlmott forum 에서 말하기를, 금융공학에서 가장 많이 쓰이는 언어는 C++이라고 하기에, C++을 먼저 배운 것이다. (1학년 때, JAVA로 프로그래밍을 처음 배웠지만, 모조리 까먹었다.)
다음은, 업계에서 쓰이는 Top Five 언어이다. Top Five 언어

링크된 홈페이지에서 소개하는 언어는 많이 쓰는 순서대로 Python, C/C++,Java, Javascript, Ruby 이다. 저자는, 이 언어들 중 일부와, 금융공학을 하는데 필요한 프로그래밍 언어, 혹은 프로그래밍 패키지를 섞어 중요도 별로 소개한다. (저자 주관) 공대 대학원에서도 똑같은 순위가 적용된다.

MATLAB

쓰임새
공대 대학원이든, 금융공학 분야에 속해있는 사람이든 가장 많이 쓰는 언어이다. 행렬을 활용하여 모든 계산을 처리하기 때문에, 연산이 상당히 빠르고 편리하다. 또한, 원하는 프로그램을 아주 쉽게 짤 수 있기 때문에, 모델링에도 매우 편리한 이점이 있다.
장점
한 마디로 이야기해서, 현재 인류가 "계산" 이라고 부르는 모든 행위를 다 할 수 있다. 그렇기 때문에, 시뮬레이션에 가장 특화되어 있다.
단점
느리다.... 다양한 기능을 패키지로 포함하기 때문이지만 그럼에도 불구하고 엄청나게 느리다. 컴퓨터에 성능이 좋으면 상관없지만, 넷북을 쓰게 되면 실행하는데만 2분이 넘게 걸린다.
그리고 유료다. 보통 유료도 아니고, 엄청, 무지막지하게 비싼 유료다. 학교나 큰 회사에 속해 있다면 라이센스를 취득하고 있겠지만, 그것이 아니라면 그림의 떡에 불과하다. 단, MATLAB의 기본만 구현해 놓은 Octave 라는 프로그램이 있는데 이는 무료이며, 속도도 괜찮게 나온다. 다만, MATLAB의 고급기능은 구현이 안 되어있다.

Python

쓰임새
공학 (컴공 제외)에서는 주로 간단한 알고리즘을 테스트하기 위한 용도로 쓰인다. 라이브러리가 막강하고, 코드가 짧고 간결하게 나오기 떄문에 (C++에서 20줄 걸릴 것이 한 줄), 많이 애용된다.
장점
  1. 쉽다. 아주 쉽기 때문에, 많은 대학교에서 입문용 프로그래밍 언어로 쓰이고 있다. 코드가 아주 간결하게 나오는 특징이 있어서, "가장 짧은 코드 짜기" 대회가 있으면 언제나 파이썬이 1등이다.
  2. 기능이 막강하다. 라이브러리를 활용하여, C/C++과 Java를 데려올 수 있다. (커버가 된다는 얘기)
  3. 속도에서 밀리지 않는다. C++보다는 느리지만, 그래도 우리가 감식할 수 있는 수준은 아니다. MATLAB 보다는 월등히 빠르다.

단점
없다. 금융공학에서는 현재 C++ 이 가장 많은 인기를 독차지하고 있지만, 이는 기존의 언어가 가지는 Market share 효과인 것으로 보인다. 즉, 빠른 시일내에 Python으로 대체될 전망.

C/C++

쓰임새
거의 모든 프로그래밍 언어의 어머니. 절차지향언어, 객체지향언어의 시발점. 파이썬을 빠른 설계가 가능한 스위스 나이프로 비유한다면, C++은 그냥 공구상자 그 자체.
금융공학 외에 게임 프로그래밍, 시스템 프로그래밍에 많이 쓰인다. 한 마디로, 가장 Technical 한 부분에 쓰인다는 이야기.
C++ 대신에 Java를 배워도 아주 무방해보인다.
장점
    매우 빠르다. 프로그래밍 언어에서는 Java를 제외하고, 따라갈 수가 없을 정도로 빠르다. Python 에 비해 3배 정도 빠르다. (그래봤자, 우리가 느낄 수 있는 수준은 아니다.)
    프로그래밍을 하기 위해서는 Java 나 C++ 중에 하나는 배워야 할 것이다. 거의 모든 언어가 C++ 을 기초로 하기 때문에, 꼭 배워야 한다.
    금융공학에서는 가장 Dominant 한 언어이다. Quantlib 이라는 라이브러리가 개발되어 있어서, 상당히 편리하게 모형화를 할 수 있다.

단점
조오금 어렵다. 많은 부분에서 파이썬으로 대체되고 있는 실정이다.

R

쓰임새
통계 무료패키지. SPSS, SAS, Minitab 만큼이나 강력하면서도 거의 유일한 통계패키지이다.
장점
  • MATLAB 은 모델링에 특화된 툴이라면, R은 통계계산에 특화된 툴이다. 더 빠르고 안정적으로 계산이 가능하다. 금융공학에서 쓰이는 거의 모든 수학은 통계인 것을 감안하면, 그냥 배워야 한다.
  • 배우기 쉬움에도 불구하고, 은근히 전문가를 찾기가 어려운 언어다. 따라서, 잘 다룰 수 있으면 어딜가든 환영받는다.
  • 공짜이고, 아주 빠르다. C++ 을 기반으로 작동하는 듯.

Javasctipt

쓰임새 & 설명
HTML, CSS를 선수로 배운 후에, 배워야 하는 언어이다. HTML을 기반으로 작동하며, 오늘날 거의 모든 홈페이지가 자바스크립트 기반으로 쓰여있다. 웹언어에서는 독보적인 위치의 언어.

댓글 없음:

댓글 쓰기