io.js 2.0 릴리스
이번 주에 io.js v2.0.0과 v2.0.1을 릴리스했습니다. 전체 변경사항은 GitHub에서 확인할 수 있습니다.
주요 변경 사항
2.0.1
- async_wrap: (Trevor Norris) #1614
- 이제 프로바이더로 필터를 적용할 수 있습니다.
- bit 플래그가 제거되고 바인딩 객체에서 메서드 콜로 대체되었습니다.
- 이 API는 불안정하기 때문에 기능 추가와 비호환 변경으로 io.js의 유의적 버전을 변경하지는 않습니다.
- libuv: 많은 io.js 문제를 해결했습니다.
- addons: 오래된 컴파일러로 애드온을 컴파일할 때
NODE_DEPRECATED
매크로가 문제될 수 있었습니다. 이 문제는 이제 해결되었습니다.(Ben Noordhuis) #1626 - V8: V8을 4.2.77.18에서 4.2.77.20으로 업그레이드했습니다. FreeBSD에서 빌드를 할 수 없는 버그를 포함한 자잘한 수정이 포함됩니다.
2.0.0
- crypto: TLS의 메모리 사용량이 현저히 감소했습니다.(Fedor Indutny & Сковорода Никита Андреевич) #1529
- net:
socket.connect()
은 이제 사용자 정의 DNS 해결 메커니즘을 위한'lookup'
옵션을 받을 수 있습니다. 기본값은dns.lookup()
입니다.(Evan Lucas) #1505 - npm: npm을 2.9.0으로 업그레이드 했습니다. 더 자세한 내용은 릴리스 노트 v2.8.4과 v2.9.0을 참조하세요. 주목할 만한 것들은 다음과 같습니다.
npm init -y
를 사용자 입력 없이 할 수 있도록 기본 저자 필드에 대한 지원을 추가했습니다.(@othiym23) npm/npm/d8eee6cf9dnpm outdated
와npm update
에 지역 모듈이 추가되었습니다.(@ArnaudRinquin) npm/npm#7426npm version
의 버전 번호 앞에 붙는 접두사는 이제tag-version-prefix
로 설정할 수 있습니다.(@kkragenbrink) npm/npm#8014
- os:
os.tmpdir()
은 이제 크로스 플랫폼에서 일관되게 동작하고 더 이상 어떤 플랫폼에서도 경로 뒤에 슬래시를 붙여 반환하지 않습니다.(Christian Tellnes) #747 - process:
- repl:
NODE_REPL_HISTORY_FILE
환경 변수에 사용자가 접근할 수 있는 파일로 설정하면 REPL 이력을 세션 간에 유지하게 할 수 있습니다.NODE_REPL_HISTORY_SIZE
로 최대 이력 크기를 결정할 수 있으며, 기본값은1000
입니다.(Chris Dickinson) #1513NODE_REPL_MODE
환경 변수를 사용해 REPL을sloppy
,strict
,magic
(기본값) 3가지 모드 중 하나로 할 수 있습니다. 새magic
모드는 스트릭트 모드에서는 자동으로 “strict mode only” 구문을 실행합니다.(Chris Dickinson) #1513
- smalloc: ‘smalloc’ 모듈은 V8 4.4에서 사용할 수 없게 되므로 폐기될 예정입니다.
- util: Promise, Map, Set 검사를 지원합니다.(Christopher Monsanto) #1471
- V8: 4.2.77.18로 업그레이드했습니다. 자세한 내용은 변경 로그를 참조하세요. 주목할 만한 것들은 다음과 같습니다.
- 클래스가 스테이징 단계를 벗어났습니다. 이제
class
키워드는 스트릭트 모드에서 플래그 없이 사용할 수 있습니다. - 객체 리터럴 개선이 스테이징 단계를 벗어났습니다. 이제 단축 메서드와 프로퍼티 문법을 사용할 수 있습니다. (
{ method() { }, property }
) - Rest 매개변수(
function(...args) {}
)가 스테이징에서 구현되었고--harmony-rest-parameters
플래그로 사용할 수 있습니다. - 연산을 사용한 프로퍼티 이름(
{['foo'+'bar']:'bam'}
)이 스테이징에서 구현되었고--harmony-computed-property-names
플래그로 사용할 수 있습니다. - 유니코드 이스케이프(
'\u{xxxx}'
)가 스테이징에서 구현되었고--harmony_unicode
플래그로 사용할 수 있습니다.--harmony_unicode_regexps
플래그를 사용하면 정규표현식에서도 사용할 수 있습니다.
- 클래스가 스테이징 단계를 벗어났습니다. 이제
- Windows:
- Governance:
- Rod Vagg (@rvagg)가 Technical Committee(TC)에 추가되었습니다.
- Jeremiah Senkpiel (@Fishrock123)이 Technical Committee(TC)에 추가되었습니다.
비호환 변경
자세한 내용은 https://github.com/nodejs/node/wiki/Breaking-Changes#200-from-1x 에 있습니다.
- V8이 4.2로 업그레이드되었습니다. C++ API의 사소한 변경이 있었습니다.
os.tmpdir()
은 이제 크로스 플랫폼에서 일관되게 동작하고 어떤 플랫폼에서도 경로 뒤에 슬래시가 붙여 반환하지 않습니다.- 비호환 변경은 아니지만, V8 4.4으로 업그레이드하면 지원되지 않는 ‘smalloc’ 모듈이 폐기될 예정입니다. 자세한 정보는 #1451를 확인하세요.
주의: ‘url’ 모듈의 새 버전은 릴리스 이전 버전으로 돌렸습니다. 이 결정은 npm 생태에서 비호환이 발생할 가능성이 너무 컸고, 릴리스 호환성 작업이 더 이루어져야 한다는 판단에서 했습니다. 자세한 정보는 #1602를 확인하세요.
알려진 이슈
현재 알려진 이슈의 전체 목록은 https://github.com/nodejs/node/labels/confirmed-bug 에서 보실 수 있습니다.
beforeExit
중에 참조 해제된 타이머에 대한 문제가 아직 남아 있습니다. #1264- REPL에 입력된 서로게이트 페어가 터미널을 얼릴 수 있습니다. #690
process.send()
가 문서에 쓰여진 것처럼 동기적이지 않으며, 이 문제는 1.0.2에서 발생했습니다. #760 그리고 #774에서 해결했습니다.- DNS 질의 진행 중에 호출된
dns.setServers()
가 실패한 단언문으로 프로세스를 크래시시킬 수 있습니다. #894 url.resolve
가 다른 두 호스트 사이를 해석하는 중 URL의 인증 정보 부분을 교환할 수 있습니다. #1435- readline: 분리된 이스케이프가 제대로 처리되지 않습니다. #1403
커뮤니티 업데이트
- Michael Dawson이 Node 재단에 WG proposal을 만들었습니다.
- Mikeal Rogers가 미디엄에 io.js의 발전에 관한 글을 적었습니다.
- CodeSchool이 io.js 2.0의 새로운 기능에 관한 블로그 글을 적었습니다.
- Node Lead TJ Fontaine이 리더에서 물러났습니다.
다가오는 이벤트
- NodeConf Adventure 입장권을 판매하고 있습니다. 6월 11일부터 14일까지 캘리포니아 Walker Creek Ranch에서 열립니다.
- CascadiaJS 입장권을 판매하고 있습니다. 7월 8일부터 10일까지 워싱턴 주에서 열립니다.
- BrazilJS Conf 입장권을 판매하고 있습니다. 8월 21일과 22일 BarraShoppingSul 쇼핑 센터에서 열립니다.
- NodeConf EU 입장권을 판매하고 있습니다. 9월 6일부터 9일까지 아일랜드 워터포드에서 열립니다.