2013.02.04

빅 데이터 개발자를 위한 MS의 제안 ‘F# 맛보기’

Paul Krill | InfoWorld
F#(“에프 샵”이라고 읽음) 객체 지향 함수형 프로그래밍 언어는 2004년경 마이크로소프트 리서치에서 탄생했다. 마이크로소프트 수석 연구원인 돈 사임이 설계했다. 이 언어가 추구하는 것은 데이터 지향 프로그래밍과 병렬 프로그래밍, 알고리즘 개발이다. 지난 해 대규모의 체계화된 데이터와 API를 지원하는 F# 3.0이 출시됐고 마이크로소프트의 비주얼 스튜디오 2012 IDE에서 비주얼 F# 도구도 함께 업데이트됐다.

최근 마이크로소프트는 F# 사용을 위한 도구와 리소스를 제공하는 F# 맛보기(Try F#) 웹 사이트도 업데이트했다. 인포월드 책임 편집자인 폴 크릴은 얼마 전 돈 사임과 인터뷰를 통해 F#에 대한 마이크로소프트의 생각을 들어봤다.
 
 
인포월드: 개발자가 현재 C#, C++, 비주얼 베이직 또는 다른 프로그래밍 언어로는 할 수 없는 F#만의 기능은 무엇인가?
 
사임: 가장 주된 차이점은 F#은 함수 우선 언어이며 많은 측면에서 데이터 우선 프로그래밍 언어라는 점이다. 언어의 구조는 함수형 프로그래밍 방식으로 데이터 지향적인 문제 해결 및 조작을 실행할 수 있도록 설계됐다. 함수형 프로그래밍의 중요한 면 중 하나는 데이터 구조에 대한 루틴 조작 시 버그 발생률을 낮추는 것이다.
 
인포월드: 함수형 언어란 정확히 무엇인가?
 
사임: 주요 특징 가운데 하나는 데이터가 속칭 불변성(immutable)을 갖는다는 점이다. 예를 들어 데이터의 설계와 같은, 데이터에 대한 설명을 갖고   있다. 사진을 촬영한다고 상상한다면 프로그래밍으로 지금 갖고 있는 것을 변환하여 그 결과로 새로운 사진을 만드는 것이라고 할 수 있다. 예를 들어 인스타그램이나 엑셀도 일종의 함수형 시스템이다. 데이터를 가져다가 이 시스템을 통해 데이터가 어떻게 변경되는지 지정하는 것이다. 함수형 프로그래밍 언어는 범용 프로그래밍을 통해 이 패러다임을 사용하는 언어다.
 
인포월드: F#가 가진 가장 큰 힘은 무엇인가?
 
사임: 분석 소프트웨어 구성 요소를 배포하는 데 걸리는 시간을 줄여준다. 이러한 종류의 프로그래밍은 금융이나 보험 업계에서도 찾을 수 있지만 다양한 과학 분야나 데이터 지향 또는 데이터 집약적 프로그래밍 영역에도 사용된다. 마이크로소프트는 마이크로소프트 플랫폼에서 최상의 함수형 프로그래밍 환경을 구현하기 위해 F#을 선택하고 F#에 기여했다. 마이크로소프트가 F#에 기여한 것은 세 가지다. 하나는 비주얼 스튜디오에 포함된 비주얼 F# 도구다. 마이크로소프트 리서치는 F#에 언어 설계를 기여하며, 이번 주에 출범한 F# 맛보기 사이트도 기여한다.
 
인포월드: 기본적으로 F#은 병렬 프로그래밍인가?
 
사임: 그렇다. F#의 큰 장점 가운데 하나이며 그 근원은 이 함수 무상태형(stateless) 프로그래밍 방식에 있다.
 
인포월드: F#은 오픈 소스와 상용 버전으로 나뉘는가?
 
사임: 맥 또는 리눅스 시스템에서 F#을 사용한다면 보통 오픈 소스 버전의 F#을 사용한다. 윈도우 시스템의 경우 아마 마이크로소프트의 F# 구현과 비주얼 F# 도구를 사용하는 형태가 일반적일 것이다. 내가 알기로는 윈도우 시스템에서도 오픈 소스 버전을 사용할 수 있다. 그러나 일반적인 경우는 아니다.
 
인포월드: 비주얼 스튜디오의 F# 지원을 언급했는데, 비주얼 스튜디오 외에 F# 개발에 사용할 수 있는 다른 도구가 있는가?
 
사임: F# 소프트웨어 재단(F# Software Foundation)은 크로스 플랫폼 IDE인 모노디벨롭(MonoDevelop)을 위한 도구를 제공하며, Emacs용 도구도 제공하고 다른 도구도 많이 보유하고 있다. 통합 수준은 약간 떨어지지만 다른 편집 환경을 위한 도구들도 있다.
 
인포월드: F#에는 지금까지 얼만큼의 개발이 이루어졌는가? F#을 사용한 유명 프로그램이나 웹 사이트가 있는가?
 
사임: 많은 사람들이 F#을 사용한다. 예를 들어 스택오버플로우(StackOverflow)에는 F#에 대한 질문이 4,000건 이상이다. 이러한 수치는 상당히 많은 사람들이 이 언어를 사용하고 있음을 시사한다. 
 
F# 사용 예라면 F#을 구현 언어로 사용한 기계 학습 시스템인 마이크로소프트 광고 플랫폼 시스템이 대표적이다. 빙(Bing) 등에서 가져온 질문에 대한 검색 요청에 어떤 광고로 대응할지를 결정하기 위한 핵심 알고리즘이 사용된다. 이것은 대단히 핵심적인 알고리즘이며, 핵심 알고리즘 코드 또는 이 언어로 작성된 핵심 데이터 분석 코드가 사용되는 F#의 프로그래밍과 매우 유사하다.
 
외부 사례를 보자면, F#의 주요 이점 중 하나는 .Net, C#과 같은 시스템과의 상호 운용성이므로 대규모 시스템에 배포가 가능하다. F#을 더 큰 시스템에 통합할 수 있다. 마이크로소프트 사이트에는 그랜지 인슈어런스(Grange Insurance)에 대한 사례 연구가 올라와 있고, 100명 이상이 F#으로 정량 금융 모델을 작성 중인 유럽의 한 주요 은행과 관련된 사례 연구도 있다.
 
인포월드: F#은 웹 프로그램에도 유용한가?
 
사임: 물론 서버 측 웹 프로그래밍이라면 F#을 사용할 수 있다. 비주얼 F# 도구는 클라이언트 측 웹 프로그래밍에 특별히 적합하다고 할 수는 없지만 다른 기업들이 제공하는 다른 F# 도구들을 사용할 수 있다. 대표적으로 웹샤퍼(WebSharper)라는 도구를 제공하는 인텔리팩토리(IntelliFactory)가 있다
 
인포월드: 마이크로소프트는 F#을 통해 어떻게 수익을 얻는가?
 
사임: 익히 알려진 바와 같이 마이크로소프트가 보유한 플랫폼에는 프로그램 가능성(programmability)에 대한 요구 사항이 있고, 그러한 이유로 마이크로소프트는 언어에 투자한다. F#에 투자한 것은 이를 통해 플랫폼을 향상시킬 수 있기 때문이다. 마이크로소프트는 플랫폼을 통해 수익을 얻는다.
 
인포월드: 그 외에 F#의 향후 계획에 있어 언급하고 싶은 다른 중요한 부분이 있는가?
 
사임: F# 맛보기에 대해 내가 크게 기대하는 부분 중 하나는 단순히 사람들이 F#을 배울 수 있다는 점 외에, 데이터가 언어에 어떻게 통합되는지에 대해 F# 3.0에서 혁신적인 아이디어를 볼 수 있게 된다는 점이다. 요즘 개발자들은 완성도 높은 무언가를 사용하면서 그 아이디어를 통해 프로그래밍에 어떤 차이를 만들어낼 수 있는지 확인하고 싶어한다. 이 아이디어들이 광범위하게 확산될 수 있다.
 
예를 들어 F# 2.0에서 비동기 프로그래밍을 구현했고 그것이 지금은 C# 5.0으로 발전했다. 최신 고효율 함수형 언어의 아이디어들이 프로그래밍 업계로 폭넓게 확산 발전되는 것을 보는 것은 기분 좋은 일이다. 연구원인 나에게는 그것이 큰 성공이기도 하다. editor@idg.co.kr



2013.02.04

빅 데이터 개발자를 위한 MS의 제안 ‘F# 맛보기’

Paul Krill | InfoWorld
F#(“에프 샵”이라고 읽음) 객체 지향 함수형 프로그래밍 언어는 2004년경 마이크로소프트 리서치에서 탄생했다. 마이크로소프트 수석 연구원인 돈 사임이 설계했다. 이 언어가 추구하는 것은 데이터 지향 프로그래밍과 병렬 프로그래밍, 알고리즘 개발이다. 지난 해 대규모의 체계화된 데이터와 API를 지원하는 F# 3.0이 출시됐고 마이크로소프트의 비주얼 스튜디오 2012 IDE에서 비주얼 F# 도구도 함께 업데이트됐다.

최근 마이크로소프트는 F# 사용을 위한 도구와 리소스를 제공하는 F# 맛보기(Try F#) 웹 사이트도 업데이트했다. 인포월드 책임 편집자인 폴 크릴은 얼마 전 돈 사임과 인터뷰를 통해 F#에 대한 마이크로소프트의 생각을 들어봤다.
 
 
인포월드: 개발자가 현재 C#, C++, 비주얼 베이직 또는 다른 프로그래밍 언어로는 할 수 없는 F#만의 기능은 무엇인가?
 
사임: 가장 주된 차이점은 F#은 함수 우선 언어이며 많은 측면에서 데이터 우선 프로그래밍 언어라는 점이다. 언어의 구조는 함수형 프로그래밍 방식으로 데이터 지향적인 문제 해결 및 조작을 실행할 수 있도록 설계됐다. 함수형 프로그래밍의 중요한 면 중 하나는 데이터 구조에 대한 루틴 조작 시 버그 발생률을 낮추는 것이다.
 
인포월드: 함수형 언어란 정확히 무엇인가?
 
사임: 주요 특징 가운데 하나는 데이터가 속칭 불변성(immutable)을 갖는다는 점이다. 예를 들어 데이터의 설계와 같은, 데이터에 대한 설명을 갖고   있다. 사진을 촬영한다고 상상한다면 프로그래밍으로 지금 갖고 있는 것을 변환하여 그 결과로 새로운 사진을 만드는 것이라고 할 수 있다. 예를 들어 인스타그램이나 엑셀도 일종의 함수형 시스템이다. 데이터를 가져다가 이 시스템을 통해 데이터가 어떻게 변경되는지 지정하는 것이다. 함수형 프로그래밍 언어는 범용 프로그래밍을 통해 이 패러다임을 사용하는 언어다.
 
인포월드: F#가 가진 가장 큰 힘은 무엇인가?
 
사임: 분석 소프트웨어 구성 요소를 배포하는 데 걸리는 시간을 줄여준다. 이러한 종류의 프로그래밍은 금융이나 보험 업계에서도 찾을 수 있지만 다양한 과학 분야나 데이터 지향 또는 데이터 집약적 프로그래밍 영역에도 사용된다. 마이크로소프트는 마이크로소프트 플랫폼에서 최상의 함수형 프로그래밍 환경을 구현하기 위해 F#을 선택하고 F#에 기여했다. 마이크로소프트가 F#에 기여한 것은 세 가지다. 하나는 비주얼 스튜디오에 포함된 비주얼 F# 도구다. 마이크로소프트 리서치는 F#에 언어 설계를 기여하며, 이번 주에 출범한 F# 맛보기 사이트도 기여한다.
 
인포월드: 기본적으로 F#은 병렬 프로그래밍인가?
 
사임: 그렇다. F#의 큰 장점 가운데 하나이며 그 근원은 이 함수 무상태형(stateless) 프로그래밍 방식에 있다.
 
인포월드: F#은 오픈 소스와 상용 버전으로 나뉘는가?
 
사임: 맥 또는 리눅스 시스템에서 F#을 사용한다면 보통 오픈 소스 버전의 F#을 사용한다. 윈도우 시스템의 경우 아마 마이크로소프트의 F# 구현과 비주얼 F# 도구를 사용하는 형태가 일반적일 것이다. 내가 알기로는 윈도우 시스템에서도 오픈 소스 버전을 사용할 수 있다. 그러나 일반적인 경우는 아니다.
 
인포월드: 비주얼 스튜디오의 F# 지원을 언급했는데, 비주얼 스튜디오 외에 F# 개발에 사용할 수 있는 다른 도구가 있는가?
 
사임: F# 소프트웨어 재단(F# Software Foundation)은 크로스 플랫폼 IDE인 모노디벨롭(MonoDevelop)을 위한 도구를 제공하며, Emacs용 도구도 제공하고 다른 도구도 많이 보유하고 있다. 통합 수준은 약간 떨어지지만 다른 편집 환경을 위한 도구들도 있다.
 
인포월드: F#에는 지금까지 얼만큼의 개발이 이루어졌는가? F#을 사용한 유명 프로그램이나 웹 사이트가 있는가?
 
사임: 많은 사람들이 F#을 사용한다. 예를 들어 스택오버플로우(StackOverflow)에는 F#에 대한 질문이 4,000건 이상이다. 이러한 수치는 상당히 많은 사람들이 이 언어를 사용하고 있음을 시사한다. 
 
F# 사용 예라면 F#을 구현 언어로 사용한 기계 학습 시스템인 마이크로소프트 광고 플랫폼 시스템이 대표적이다. 빙(Bing) 등에서 가져온 질문에 대한 검색 요청에 어떤 광고로 대응할지를 결정하기 위한 핵심 알고리즘이 사용된다. 이것은 대단히 핵심적인 알고리즘이며, 핵심 알고리즘 코드 또는 이 언어로 작성된 핵심 데이터 분석 코드가 사용되는 F#의 프로그래밍과 매우 유사하다.
 
외부 사례를 보자면, F#의 주요 이점 중 하나는 .Net, C#과 같은 시스템과의 상호 운용성이므로 대규모 시스템에 배포가 가능하다. F#을 더 큰 시스템에 통합할 수 있다. 마이크로소프트 사이트에는 그랜지 인슈어런스(Grange Insurance)에 대한 사례 연구가 올라와 있고, 100명 이상이 F#으로 정량 금융 모델을 작성 중인 유럽의 한 주요 은행과 관련된 사례 연구도 있다.
 
인포월드: F#은 웹 프로그램에도 유용한가?
 
사임: 물론 서버 측 웹 프로그래밍이라면 F#을 사용할 수 있다. 비주얼 F# 도구는 클라이언트 측 웹 프로그래밍에 특별히 적합하다고 할 수는 없지만 다른 기업들이 제공하는 다른 F# 도구들을 사용할 수 있다. 대표적으로 웹샤퍼(WebSharper)라는 도구를 제공하는 인텔리팩토리(IntelliFactory)가 있다
 
인포월드: 마이크로소프트는 F#을 통해 어떻게 수익을 얻는가?
 
사임: 익히 알려진 바와 같이 마이크로소프트가 보유한 플랫폼에는 프로그램 가능성(programmability)에 대한 요구 사항이 있고, 그러한 이유로 마이크로소프트는 언어에 투자한다. F#에 투자한 것은 이를 통해 플랫폼을 향상시킬 수 있기 때문이다. 마이크로소프트는 플랫폼을 통해 수익을 얻는다.
 
인포월드: 그 외에 F#의 향후 계획에 있어 언급하고 싶은 다른 중요한 부분이 있는가?
 
사임: F# 맛보기에 대해 내가 크게 기대하는 부분 중 하나는 단순히 사람들이 F#을 배울 수 있다는 점 외에, 데이터가 언어에 어떻게 통합되는지에 대해 F# 3.0에서 혁신적인 아이디어를 볼 수 있게 된다는 점이다. 요즘 개발자들은 완성도 높은 무언가를 사용하면서 그 아이디어를 통해 프로그래밍에 어떤 차이를 만들어낼 수 있는지 확인하고 싶어한다. 이 아이디어들이 광범위하게 확산될 수 있다.
 
예를 들어 F# 2.0에서 비동기 프로그래밍을 구현했고 그것이 지금은 C# 5.0으로 발전했다. 최신 고효율 함수형 언어의 아이디어들이 프로그래밍 업계로 폭넓게 확산 발전되는 것을 보는 것은 기분 좋은 일이다. 연구원인 나에게는 그것이 큰 성공이기도 하다. editor@idg.co.kr

X