처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.04.07 23

Elm의 장점을 Go 위에 얹다 — 새 언어 Sky를 살펴봤어요

Hacker News 원문 보기
Elm의 장점을 Go 위에 얹다 — 새 언어 Sky를 살펴봤어요

함수형 프로그래밍, 좋은 건 알겠는데 실무에서 쓰기엔…

함수형 프로그래밍 언어를 한번쯤 들어보셨을 거예요. Haskell, Elm, OCaml 같은 이름들이요. 이런 언어들은 코드의 안정성이 정말 뛰어나거든요. 특히 Elm은 프론트엔드 개발에서 "런타임 에러가 사실상 없다"는 걸로 유명한 언어인데요, 컴파일러가 워낙 꼼꼼하게 검사해줘서 한번 컴파일되면 거의 에러 없이 돌아가요.

그런데 현실적인 문제가 있어요. Elm은 브라우저에서만 돌아가고, Haskell은 러닝커브가 높고, 이런 함수형 언어들을 서버 사이드에서 프로덕션으로 쓰기엔 생태계나 성능 면에서 고민이 되는 부분이 있죠. 반면 Go는 서버 개발에서 이미 검증된 언어잖아요. 간단한 문법, 빠른 컴파일, 뛰어난 동시성 처리까지. 그래서 누군가 이런 생각을 한 거예요. "Elm처럼 안전하게 코드를 짜되, 결과물은 Go로 컴파일되면 어떨까?"

바로 그 아이디어에서 탄생한 게 Sky라는 언어예요.

Sky가 뭔지 좀 더 자세히 볼게요

Sky는 Elm에서 영감을 받은 프로그래밍 언어인데요, 최종적으로 Go 코드로 변환(트랜스파일)되는 구조예요. 트랜스파일이 뭐냐면, TypeScript가 JavaScript로 변환되는 것처럼, Sky로 작성한 코드가 Go 소스코드로 바뀌는 거예요. 그래서 Go의 모든 생태계와 성능을 그대로 활용할 수 있어요.

Sky의 핵심 특징을 하나씩 살펴보면요:

첫 번째는 강력한 타입 시스템이에요. Elm처럼 타입 추론이 되면서도, 패턴 매칭(값의 형태에 따라 분기하는 문법)을 지원해요. 이게 뭐가 좋으냐면, 예를 들어 API 응답이 성공일 때와 실패일 때를 처리하는 코드를 작성할 때 "혹시 빠뜨린 케이스 없나?"를 컴파일러가 대신 확인해줘요. Go에서는 if err != nil을 직접 다 챙겨야 하는데, Sky에서는 컴파일러가 놓친 부분을 잡아주는 거죠.

두 번째는 불변성(immutability)을 기본으로 해요. 불변성이란 한번 만든 데이터를 바꿀 수 없게 하는 거예요. "그러면 불편하지 않나?"라고 생각할 수 있는데, 오히려 버그가 크게 줄어들어요. 여러 곳에서 같은 데이터를 동시에 수정하다가 생기는 버그 — 멀티스레드 환경에서 특히 골치 아픈 그 문제가 원천적으로 차단되거든요. Go의 고루틴(goroutine)과 함께 쓸 때 동시성 버그를 많이 줄일 수 있어요.

세 번째는 부수 효과(side effect) 관리예요. 부수 효과란 함수가 결과값을 돌려주는 것 외에 다른 일을 하는 걸 말해요. 파일을 쓰거나, 네트워크 요청을 보내거나, 데이터베이스를 수정하는 게 다 부수 효과인데요, Elm의 아키텍처처럼 이런 부수 효과를 명시적으로 분리해서 관리해요. 덕분에 코드의 어느 부분이 순수한 로직이고, 어느 부분이 외부와 소통하는 건지 한눈에 파악이 되죠.

Go 생태계 위에서 동작한다는 게 왜 중요할까요

새 언어가 나올 때 가장 큰 허들 중 하나가 생태계예요. 라이브러리가 없으면 결국 다 직접 만들어야 하니까요. Sky는 이 문제를 아주 영리하게 피해갔어요. Go 코드로 컴파일되니까, Go의 방대한 패키지 생태계를 그대로 쓸 수 있거든요. 웹 프레임워크, 데이터베이스 드라이버, 클라우드 SDK 같은 것들을 새로 만들 필요가 없는 거예요.

이건 Kotlin이 JVM 위에서 Java 라이브러리를 다 쓸 수 있었던 것과 비슷한 전략이에요. Kotlin이 "더 나은 Java"를 표방하면서도 기존 Java 생태계를 포기하지 않아서 빠르게 퍼졌잖아요. Sky도 "더 안전한 Go"를 지향하면서 Go 생태계를 그대로 활용하겠다는 접근이에요.

비슷한 시도들과 비교해보면

사실 기존 언어 위에 함수형 레이어를 얹으려는 시도가 Sky만 있는 건 아니에요. Gleam이라는 언어는 Erlang VM(BEAM) 위에서 돌아가는 함수형 언어인데, Elixir/Erlang 생태계를 활용하면서 더 강한 타입 시스템을 제공하죠. PureScript는 Haskell 스타일 문법으로 JavaScript를 생성하고요.

Sky가 이들과 차별화되는 지점은 타깃이 Go라는 점이에요. Go는 클라우드 네이티브, 마이크로서비스, DevOps 도구 쪽에서 사실상 표준 언어 중 하나잖아요. Kubernetes, Docker, Terraform 같은 핵심 인프라 도구가 전부 Go로 만들어져 있으니까요. 이 영역에 함수형 프로그래밍의 안전성을 도입한다는 건 꽤 의미 있는 조합이에요.

다만 아직 초기 단계 프로젝트라는 점은 감안해야 해요. 프로덕션에 바로 도입하기보다는, 함수형 프로그래밍의 개념을 Go 환경에서 실험해보는 용도로 접근하는 게 맞아요.

한국 개발자에게 어떤 의미가 있을까요

국내에서도 Go를 쓰는 팀이 꽤 늘었어요. 특히 카카오, 라인, 당근 같은 회사에서 마이크로서비스 구축에 Go를 활발히 쓰고 있죠. 이런 환경에서 "Go의 에러 처리가 좀 더 우아했으면", "타입 시스템이 좀 더 표현력이 있었으면" 하는 아쉬움을 느끼신 분들이라면 Sky의 접근 방식이 흥미로울 거예요.

당장 프로덕션에 쓰기는 이르지만, Sky의 코드를 읽어보면서 "Elm 스타일 아키텍처가 서버 사이드에 적용되면 어떤 모습일까"를 체감해보는 것 자체가 좋은 학습이 될 수 있어요. 함수형 프로그래밍 패러다임에 관심은 있지만 Haskell은 너무 멀게 느껴졌던 분들에게, Go라는 익숙한 기반 위의 함수형 언어는 좋은 진입점이 될 수 있거든요.

한 줄 정리

Sky는 Elm의 안전한 함수형 패러다임을 Go 생태계 위에 얹겠다는 흥미로운 실험이에요.

여러분은 Go에서 가장 아쉬운 점이 뭔가요? 그리고 그걸 새 언어가 해결해줄 수 있다고 생각하시나요, 아니면 Go 자체가 발전하는 게 낫다고 보시나요?


🔗 출처: Hacker News

이 뉴스가 유용했나요?

이 기술을 직접 배워보세요

AI 도구, 직접 활용해보세요

AI 시대, 코딩으로 수익을 만드는 방법을 배울 수 있습니다.

AI 활용 강의 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.