조금 오래되기는 했지만 내가 하고 싶은 일에 관한 내용이 있으리라 기대하고 읽고 있던 책에서 반갑게도 F#을 만났다.

이 책은 실버라이트 3을 이용해서 BI 소프트웨어를 개발하는 방법에 대한 이야기를 하고 있다. 특히, 9장에서 "예측 분석", 즉 데이타를 분석해서 앞 일을 예측하는 방법에 대해서 서술하고 있는데, 여기서 F#을 언급하고 있다. (P209)
이 책을 통해서 좋은 UI에 관한 점을 많이 배우고 있는데, 이렇게 F#에 대한 언급을 보니 반갑기만 하다. 이 책의 (Silverlight 4.0을 이용한) 새버전이 나왔단다. 책에서 소개한 예제를 여기에서 직접 볼 수도 있단다.
이 책은 실버라이트 3을 이용해서 BI 소프트웨어를 개발하는 방법에 대한 이야기를 하고 있다. 특히, 9장에서 "예측 분석", 즉 데이타를 분석해서 앞 일을 예측하는 방법에 대해서 서술하고 있는데, 여기서 F#을 언급하고 있다. (P209)
함수형 언어(F#) 이용하기
경험많은 BI 개발자라면 예측 모델을 만들기 위해 함수형 언어나 통계 언어를 접해본 적이 있을 것이다. 함수형 언어는 수학과 매우 밀접하기 때문에 이런 류의 언어들은 통계나 회귀 연산, 데이타 변형 및 함수 연산에 이상적이다. 따라서, 통계 함수를 추가할 수 있는 BI 패키지를 사용할 수 있다는 것은 복잡한 예측 분석 도구를 만드는데 다른 무엇보다 중요하다.
.NET에 기반한 실버라이트는 C#이나 VB.NET 외의 언어도 사용할 수 있는데, .NET 4.0과 비주얼 스튜디어 2010에 추가된 새로운 함수형 언어인 F#이 그 중의 하나다. F#은 .NET CLR (Common Language Runtime)의 모든 기능을 사용할 수 있기 때문에, 클라이언트에서 복잡한 통계 모델을 만들기 위해 실버라이트에서 사용할 수 있다. 경험많은 개발자면 F#의 기능이 C# 및 LINQ의 새 기능과 겹친다고 할 지 모르겠지만, F#은 실버라이트용 BI 응용프로그램을 만드는데 이상적인 흥미로운 기능을 많이 갖고 있다:
- C# / VB.NET에 비해서 수학 연산에 있어서 눈에 띄는 성능향상이 있다. F# 코드는 더 빨리 IL (중간언어)로 컴파일되고 어떤 경우에는 실행시 20-30 퍼센트 더 빠르다.
- 문법이 연산에 쓰기에 간결하다. 예를 들어서 함수를 함수에 전달하는 것이 가능하기 때문에 C#이나 VB.NET에서처럼 delegate 메모리누수같은 문제를 고민할 필요가 없다. C# / VB.NET에서는 객체가 일등 시민인데 비해서 F#에서는 함수가 일등 시민이다.
- F#은 불변의 구조체(값이 변할 수 없다는 의미)를 기본으로 한다. 읽기 전용의 데이타 연산에 무척 유용한데, 이런 연산은 대부분의 BI 응용프로그램에 포함되어 있다. 값이 변하지 않기때문에 멀티스레드의 동기화를 쉽게 한다.
- F#은 다차원 데이타를 사용하기에 C# 3.0보다 용이하다. (C# 4.0의 경우는 다르다.) 예를 들어서, 분석 서비스로부터 다차원 데이타 세트를 받았다면 F# 튜플을 써서 각 데이타를 쉽게 그룹핑할 수 있다. 따라서, 차원이나 단위를 엮어서 쓰기가 다른 언어보다 쉽다.
마이크로소프트가 F#을 .NET 4.0의 주 언어로 포함시킨데는 좋은 이유가 있다. F#은 C# 같은 객체지향 언어의 좋은 함수형 대안이다. F#은 금융, 수학, 통계에 뛰어난 응용프로그램을 갖고 있다. 실버라이트 클라이언트에서 이 언어의 능력을 이용할 수 있다면 좋은 자산이 될 것이다.
이 책을 통해서 좋은 UI에 관한 점을 많이 배우고 있는데, 이렇게 F#에 대한 언급을 보니 반갑기만 하다. 이 책의 (Silverlight 4.0을 이용한) 새버전이 나왔단다. 책에서 소개한 예제를 여기에서 직접 볼 수도 있단다.



