Skip to main content

스크립 언어의 재발견

예전에 Trading Desk 에서 사용하는 시스템들은 모두 Java 또는 C/C++ 가 아니면 거들떠 보지도 않았었던게 사실이나, 지금은 그런 생각이 없어진지 오래이다.  초창기 한국에 나가 작업을 했을때면 모두들 묻는 질문이 '이거 어떤 언어로 만들어 진 트레이딩 시스템이죠?' 이었는데, 그땐 내 자신도 사용하는 언어가 꽤나 큰 작용을 했다는 것을 인정하지 않을 수가 없다.  밑 바탕이 된 언어가 무엇이냐에 따라 그만큼 어플리케이션에 주어지는 Credit 도 많았을 뿐 아니라, 사용할 증권사 입장에서도 마음을 놓으며 구매할 수 있는 입장이었기에 말이다.

그게 벌써 1997년, 10년전 일이 되었다.
이후로 월가에서 4년을 RiskMetrics Group 에서 일하면서, 조금씩 이러한 고정관념에서 탈피하기 시작하였는데... 그 이유는 비즈니스 어플리케이션을 만들고 디자인하는데 있어 가장 중요한 것은 언어가 아니라, 완성된 어플리케이션이 얼마나 end user 입장에서 자유롭게 사용할 수 있으며 추가기능을 마음껏 interface 할 수 있느냐로 바뀌기 시작했기 때문이다.  따라서 회사내에서 대표했던 위험관리 시스템들은 제각가 사용하는 언어와 플랫폼이 다르기 마련이었다.  포트롤리오 위험관리 시스템의 경우는 Java 와 Delphi, 그리고 웹서비스를 제공하며 SQL 서버로, Credit Risk Management 시스템의 경우는 Java 와 Oracle, Pension Risk Management 의 경우는 Delphi 와 SQL 서버로 팀별로 최상의 솔류션을 제공하려 애썼다.  물론 이런 제품들은 모두 1년에 두번 또는 한번씩 Upgrade 와 새로운 제품을 출시하는 Package 화된 제품들이었기에 이런 상황이었다.

그 이후로 지금의 회사로 Asset Management 옮겨 Fixed Income 트레이딩 데스크에서 일을 하다보니, 이와는 또 다른 상황을 접하게 되었다.  매일같이 하루 하루 트레이딩을 하며 해당 포지션을 포트폴리오 메니지먼트 시스템에 입력하게 되고, Risk 관련 시스템과 연동하여 하루 Market 을 마감함과 동시에 그날까지의 상황을 리포트로 출력하여 분석하게 되니, 하루에도 몇번씩 특수한 상황에 접하여 수정을 하게 되는 부분이 발생하게 되었다.  따라서 이러한 부분을 감안하여 전체적인 시스템을 모듈화함과 동시에 Daily Process 에 민감한 부분은 C/C++ 로 API 를 만들어 TCL 스크립에서 라이브러리화 하여 재상용이 가능하도록 하였고, 따라서 순간 순간 Emergency case 에는 컴파일작업없이 쉽게 TCL 스크립과 PERL 스크립을 수정하여 바로 테스트함과 동시에 쉽게 production box (실제 사용되는 시스템)에 설치할 수 있도록 하고 있다.   물론 우리회사 뿐만이 아니라 주위의 많은 회사들에서도 이와 비슷한 방향으로 시스템 개발 방향을 잡고 있는것으로 듣고있다.

쉽게 Business logic 이 설정되지 못하거나 순간순간 바뀌어야 할 경우, 개인적인 생각이며 경험에 비춰보면 스크립 언어만큼 뛰어난 것도 없다고 생각한다.  특히나 트레이딩 데스크와 같이 시 분을 다퉈야 하는 경우는 더욱 그러하다 생각한다.  스크립 언어가 다시 부활하고 있는가 보다.

Python, Perl, Tcl, 그리고 Ruby 와 Ruby on Rails 까지...
쉽게 개발하고 테스트할 수 있는 환경이 발전에 발전을 거듭하고 이와 함께 Eclipse 개발자 환경이 발전을 계속하고 있는데, 이는 분명 Business users 들과 하루하루 접하며 사는 software engineer 들에게는 한번 더 고민하고 생각해 보아야 할 부분이다.  남들에게 show off 하려는 제품이 아닌, 사용자들에게 최적화 되고 문제가 발생했을 때 보다 신속하게 대처하고 Fix 하기 위해 적합한 개발툴이 무엇인가 하는 그런 고민 말이다...

Comments

Popular posts from this blog

컴퓨터 사이언스에 관심있는 학생들에게 추천하는 책들

지난번에 마무리 하며, 이번 주엔 관련 책들을 소개 시켜 드리겠다 약속 드렸습니다. Head First Python: A Brain-Friendly Guide , by Paul Barry Head First Learn to Code: A Learner's Guide to Coding and Computational Thinking   Problem Solving with Algorithms and Data Structures Using Python , by Bradley N Miller Practical Programming: An Introduction to Computer Science Using Python 3.6, by Paul Gries  위에 언급한 책들은 제가 개인적으로 한 번씩 리뷰 해 보았던 책들입니다. Head First 시리즈는 개인적으로 좋아하는 시리즈로, 어려운 내용들도 쉽게 그림을 섞어 설명이 되어 있습니다.  책을 선택하고 이제 막 시작해 보려는 학생들 그리고 부모님들께서 궁금하신 사항이 있다면, 제가 도움이 될 수 있는 한도 내에서는 Q&A 로 도와드리도록 하겠습니다. 우선은 이메일로 여쭤봐 주시고, 조만간 Slack 채널을 Q&A 만을 위해 열도록 하겠습니다.