메뉴
HN
Hacker News 23일 전

클로저스크립트, async/await 문법 공식 지원

IMP
7/10
핵심 요약

자바스크립트로 컴파일되는 함수형 언어인 ClojureScript가 1.12.145 버전을 발표하며 드디어 async/await 문법을 기본 지원합니다. 개발자는 함수에 ^:async 힌트만 추가하면 자바스크립트의 비동기 함수를 깔끔하게 생성할 수 있어, 최신 브라우저 API나 인기 라이브러리 연동 시 불필요했던 외부 의존성을 제거할 수 있게 되었습니다.

번역된 본문

ClojureScript clojurescript.org ask.clojure.org

1.12.145 릴리스 1.12.145 릴리스 2026년 5월 7일 ClojureScript 팀

새로운 ClojureScript 버전을 발표하게 되어 기쁩니다. 기존 ClojureScript 사용자라면 다음 릴리스 노트를 주의 깊게 읽어주시기 바랍니다.

비동기 함수 (Async Functions) ClojureScript가 ECMAScript 2016을 타겟으로 함에 따라, 우리는 상호 운용성(interop)을 강화할 수 있는 새로운 영역을 신중하게 선택할 수 있게 되었습니다. 이번 릴리스부터 함수에 ^:async 힌트를 추가하면 ClojureScript 컴파일러가 JavaScript 비동기 함수(async function)를 생성하도록 만들 수 있습니다:

(refer-global :only '[Promise]) (defn ^:async foo [n] (let [x (await (Promise/resolve 10)) y (let [y (await (Promise/resolve 20))] (inc y)) ;; 비동기 아님 f (fn [] 20)] (+ n x y (f))))

이 기능은 테스트에도 적용됩니다:

(deftest ^:async defn-test (try (let [v (await (foo 10))] (is (= 61 v))) (let [v (await (apply foo [10]))] (is (= 61 v))) (catch :default _ (is false))))

지난 Clojure 설문 조사에서 async 함수 지원은 JavaScript 연동을 위한 ClojureScript 개선 사항 목록에서 압도적인 1위를 차지했습니다. 이번 개선을 통해 개발자들은 최신 브라우저 API 및 인기 있는 라이브러리와 상호작용하는 일반적인 경우에 추가적인 의존성(dependency)을 도입할 필요가 없어졌습니다.

ClojureScript의 수정, 변경 및 개선 사항에 대한 전체 목록은 이곳을 참조하십시오.

기여자 ClojureScript 1.12.145에 기여한 모든 커뮤니티 멤버들에게 감사드립니다: Michiel Borkent

문서 개요 (Overview) | 레퍼런스 (Reference) | 도구 (Tools) | 가이드 (Guides) | 커뮤니티 (Community) | 리소스 (Resources) | 기여하기 (Contributing)

기업 | 이벤트 | 코드 | API | 치트시트 (Cheatsheet) | 소스코드 (Source) | 변경 로그 (Changelog) | 기타

ClojureTV | 법적 고지 (Legal) | 라이선스 (License) | 개인정보 처리방침 (Privacy Policy) | 저작권 Rich Hickey | 개인정보 처리방침 게시일: 2026-05-07 웹사이트 디자인: Tom Hickey

원문 보기
원문 보기 (영어)
ClojureScript clojurescript.org ask.clojure.org 1.12.145 Release   1.12.145 Release 07 May 2026 ClojureScript Team We're happy to announce a new release of ClojureScript. If you're an existing user of ClojureScript please read over the following release notes carefully. Async Functions Now that ClojureScript targets ECMAScript 2016 we can carefully choose new areas of enhanced interop. Starting with this release, hinting a function as ^:async will make the ClojureScript compiler emit an JavaScript async function : (refer-global :only '[Promise]) (defn ^:async foo [n] (let [x (await (Promise/resolve 10)) y (let [y (await (Promise/resolve 20))] (inc y)) ;; not async f (fn [] 20)] (+ n x y (f)))) This also works for tests: (deftest ^:async defn-test (try (let [v (await (foo 10))] (is (= 61 v))) (let [v (await (apply foo [10]))] (is (= 61 v))) (catch :default _ (is false)))) In the last Clojure survey support for async functions dominated the list of desired ClojureScript enhancements for JavaScript interop. This enhancement eliminates the need to take on additional dependencies for the common cases of interacting with modern Browser APIs and popular libraries. For a complete list of fixes, changes, and enhancements to ClojureScript see here Contributors Thanks to all of the community members who contributed to ClojureScript 1.12.145 Michiel Borkent Documentation Overview Reference Tools Guides Community Resources Contributing Companies Events Code API Cheatsheet Source Changelog ETC ClojureTV Legal License Privacy Policy Copyright Rich Hickey | Privacy Policy Published 2026-05-07 Site design by Tom Hickey