최근 수정 시각 : 2025-10-18 00:47:56

TC39


[[JavaScript|
파일:JavaScript 로고.svg
JavaScript
관련 문서
]]
{{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px)"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px"
<colbgcolor=#f7df1e,#f7df1e><colcolor=#000,#000> 관련 문서 표준(TC39 · 브라우저 전쟁) · Vanilla JS · AJAX · JSFuck · 상태관리 라이브러리 · JSON
문법 표준 내장 객체, this · undefined
구현체 <bgcolor=#f7df1e,#f7df1e> 엔진 V8 · SpiderMonkey · JavaScriptCore · 헤르메스 · Boa
<bgcolor=#f7df1e,#f7df1e> 런타임 Node.js · Deno · Bun · workerd
패키지 관리자 npm · Bun
파생 언어 TypeScript · CoffeeScript · ActionScript · AssemblyScript · elm · ReasonML · ReScript
관련 인물 브랜든 아이크
기타 JavaScript npm 마비 사태 }}}}}}}}}
<colcolor=#000,#000><bgcolor=#fc7c00,#fc7c00> TC39
Technical Committee 39
파일:TC39.svg
<colbgcolor=#fc7c00,#fc7c00> 종류 ECMA-262 기술 표준 위원회
소속 ECMA International
설립 1996년
링크 파일:홈페이지 아이콘.svg 파일:GitHub 아이콘.svg파일:GitHub 아이콘 화이트.svg 파일:LinkedIn 아이콘.svg
1. 개요2. 제안 단계3. 주요 제안 목록
3.1. Stage 33.2. Stage 2.73.3. Stage 23.4. Stage 1
4. 기타5. 외부 링크6. 관련 문서

1. 개요

파일:2018 TC39.webp
2018년 5월 22일부터 24일까지 뉴욕블룸버그 LP 본사에서 열린 64회차 TC39 정기회의 모습##

ECMA-262 표준, 즉 JavaScript의 언어 명세를 결정하는 ECMA 산하의 기술 위원회.

WHATWG과 비슷하게 브라우저 벤더들 및 웹 기술에 투자하는 IT 기업들과 주요 오픈 소스 단체들(TypeScript, OpenJS Foundation 등)로 구성되어 있으며, 현재 최신 JavaScript 표준에 포함될 변경사항과 신규 기능들을 제안(propose)하고 표준화하는 과정을 담당한다.

2. 제안 단계

각각의 표준 변경사항은 제안(proposal)이라는 단위로 구성되며, ECMAScript 표준 버전이 올라갈 때마다 충분히 논의가 완료된 여러 제안들을 한번에 포함시켜 발표하게 된다.

RFCW3C 등 비상업 표준 기관이 흔히 그렇듯 구현될 표준 제안들을 각 단계(stage)별로 나누어 추적하며, 많은 과정에서 TC39 위원회 소속이 아닌 일반 개발자의 의견들도 받는다. 단, TC39 소속이 아닌 상태로 회의에 참석하거나 기여를 하려면 TC39 ECMAScript RFTG 서명이 필요하다.

각 제안마다 TC39 위원회 멤버 중 스펙 문서를 작성하고 단계 진행을 주도하는 챔피언(champion)이라는 역할이 할당된다.[1][2] 이후 할당된 제안이 각 단계를 올라갈 때마다 TC39 위원회의 검토 및 승인이 요구된다.

GitHub 수준에서는 각 제안별로 tc39 조직 하위에 proposal-로 시작하는 저장소를 만들어 진행사항을 추적한다. 제안이 외부에서 만들어진 경우, Stage 1으로 올라가는 단계에서 먼저 저장소 소유권을 tc39-transfer로 옮긴 다음 검토를 거쳐 tc39으로 옮겨진다.[3] 대부분의 경우 저장소에는 코드 대신 제안 문서 관련된 이슈나 수정 등등이 이루어지고, Stage 2 이후부터는 ecmarkup으로 스펙 문서를 작성한다.
  • Stage 0: TC39 외부에서 진행할 수 있는 처음이자 유일한 단계로, TC39에서 공식적으로 확인한 상태가 아니다.[4]
  • Stage 1: TC39 위원회 내부에서 고려 중인 단계. 이 시점부터 제안의 주체가 TC39으로 넘어가며, 챔피언이 할당된다.
  • Stage 2: 표준 반영이 동의된 상태로, 이 단계에서 스펙 문서 초안을 작성하기 시작한다.[5] PoC 수준의 구현체나 polyfill을 구현하기도 한다. TC39 위원회에서 지정한 인원의 리뷰를 거치고 나면 Stage 2.7로 넘어갈 수 있다.[6]
  • Stage 2.7: 스펙 문서가 완성되고 승인은 되었지만 실제 구현이나 테스트가 부족한 단계로, Test262가 충분히 쌓이면 Stage 3로 넘어가게 된다.[7] 이 시점부터는 중요한 경우를 제외하면 수정 제안을 받지 않는다.
  • Stage 3: 높은 수준의 성숙도(maturity)를 갖춘 단계로, 이들은 '가까운 미래에 구현될 가능성'이 가장 높은 제안들이라고 볼 수 있다. 이 단계부터 벤더 측 구현이 적극적으로 권장되며, 최소 2개 이상의 구현이 Test262를 통과할 때 Stage 4로 넘어갈 수 있다.
  • Stage 4: 완성되어 목적을 다한 상태의 제안. 이 단계에 도달하면 ECMA-262 스펙 저장소로 PR이 올라가게 된다. 최신 ECMAScript 표준은 1년 주기로 갱신되기 때문에 작업은 다 끝났으나 실제 표준 문서에는 반영 대기중인 상태일 때가 있으나, 실질적으로는 이때부터 대부분의 브라우저나 환경에서 멀쩡히 지원되고 있는 경우가 많다.

3. 주요 제안 목록

현재 표준화가 진행 중인 모든 제안(proposal) 목록은 tc39/proposals 또는 공식 홈페이지에서 볼 수 있다.

3.1. Stage 3

3.2. Stage 2.7

3.3. Stage 2

3.4. Stage 1

4. 기타

  • 매 2달마다 정기 회의가 열린다. 회의 일정은 agendas에, 속기된 회의 기록(meeting note)은 매 회의가 종료된 후 2주에서 4주 후에 정식 공개되며, tc39/notes에서 볼 수 있다.[8]

5. 외부 링크

6. 관련 문서


[1] If you have a new proposal you want to get into the language, you first need a TC39 "champion": a member of the committee who will make the case for the proposal at in-person TC39 meetings and help it move through the process. #[2] Champions (or, frequently "champion groups" of several members) are authors and editors of proposals. The champion is responsible for the evolution of the proposal from Stage 0 through Stage 4, at which point maintenance is transferred to the editor group. #[3] Proposals that are Stage 1 and above must be transferred to the TC39 GitHub organization for discoverability and archival purposes. To onboard a proposal: 1. Transfer your repository to the @tc39-transfer organization. 2. The Github Administrator, or one of the chairs, will transfer your repository to the TC39 organization the next chance they get. #[4] None. New proposals are assigned this stage by their authors outside of the usual advancement process. #[5] At Stage 2 and later, the semantics, API, and syntax of an addition must be described as edits to the latest published ECMAScript standard, using the same language and conventions. #[6] The committee should identify designated reviewers for acceptance during Stage 2. These reviewers must give their sign-off before a proposal enters Stage 2.7.[7] During Stage 2.7, Test262 tests should be authored and submitted via pull request. Once it has been appropriately reviewed, it should be merged to aid implementors in providing the feedback expected during this stage. #[8] TC39 meets six times a year, mostly in the United States, to discuss proposals. It is possible for members to join meetings remotely. At meetings, we discuss ways to resolve issues and feature requests. We spend most of the time considering proposals and advancing them through the stage process. Meetings follow an agenda which is developed in the agendas GitHub repository. After the meeting, notes are published in the notes GitHub repository. #