나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 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으로 스펙 문서를 작성한다.

3. 주요 제안 목록

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

3.1. Stage 3

3.2. Stage 2.7

3.3. Stage 2

3.4. Stage 1

4. 기타

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. #