F# for JavaScript

F# for JavaScript

F# 코드를 JavaScript로 실행하는 방법을 정리한 안내 페이지예요. 공식 문서 기준으로 두 가지 커뮤니티 제공 오픈 소스 도구 체인을 통해 가능하고, 덕분에 F#을 클라이언트(브라우저) 쪽과 풀스택 웹 개발 양쪽에서 쓸 수 있어요.

출처: F# for JavaScript - Microsoft Learn (원문: F# docs, 2021-11-05 갱신)

본문

F#은 두 가지 커뮤니티 제공 오픈 소스 도구 체인을 통해 JavaScript 코드로 실행될 수 있어요. 이 말은 곧 F# 코드를 클라이언트(브라우저) 쪽 개발은 물론 풀스택 웹 개발에도 그대로 사용할 수 있다는 뜻이에요. 지금은 공식적으로 다음 두 가지 길이 대표적이에요.

Fable

Fable 는 F#을 JavaScript 생태계로 데려오는 컴파일러예요. 현대적인 JavaScript 출력을 만들어 내고, JavaScript 패키지와 상호 운용(interop)이 되며, React를 포함한 여러 개발 모델을 지원해요. 즉 F#으로 작성한 로직을 그대로 브라우저나 Node.js에서 돌아가는 JavaScript로 바꿔 준다고 보면 돼요.

WebSharper

WebSharper 는 .NET용 풀스택·함수형 반응형 웹 프로그래밍을 제공해요. C#이나 F# 어느 쪽으로든 마이크로서비스, 클라이언트-서버 웹 애플리케이션, 반응형 SPA 등을 개발할 수 있는 프레임워크예요.

두 도구 모두 '커뮤니티 제공'이라는 점은 기억해 두면 좋아요. 공식 마이크로소프트 제품이 아니라 F# 커뮤니티가 만들고 유지하는 프로젝트라는 뜻이죠. 대신 이 둘이 어떻게 다른지는 목적에 따라 나뉘어요. Fable은 "F# 로직을 JavaScript로 컴파일해 생태계에 합류한다"는 접근이라면, WebSharper는 ".NET 계열 언어로 서버부터 클라이언트까지 한번에 개발한다"는 풀스택 접근이라고 보면 이해가 쉬워요.

더 알아보기