io.js 주간 뉴스 2015년 7월 10일

io.js 1.8, 2.3의 보안 패치와 다가오는 이벤트

io.js 1.8, 2.3 릴리스

이번 주에는 v2.3.4, v1.8.4 릴리스가 있었습니다. 전체 변경사항은 GitHub에서 확인할 수 있습니다. v1.x의 변경사항은 여기서 확인하세요.

주요 변경 사항

1.8.4

유지보수 릴리스

  • openssl: 1.0.2d로 업그레이드 했습니다. CVE-2015-1793를 수정했습니다. (Alternate Chains Certificate Forgery) #2141.

2.3.4

알려진 이슈

현재 알려진 이슈의 전체 목록은 https://github.com/nodejs/io.js/labels/confirmed-bug에서 보실 수 있습니다.

  • beforeExit 중에 참조 해제된 타이머에 대한 문제가 아직 남아 있습니다. #1264
  • REPL에 입력된 서로게이트 페어가 터미널을 얼릴 수 있습니다. #690
  • process.send()가 문서에 쓰인 것처럼 동기적이지 않으며, 이 문제는 1.0.2에서 발생했습니다. #760
  • DNS 질의 진행 중에 호출된 dns.setServers()가 실패한 단언문으로 프로세스를 크래시시킬 수 있습니다. #894
  • url.resolve가 다른 두 호스트 사이를 해석하는 중 URL의 인증 정보 부분을 교환할 수 있습니다. #1435

커뮤니티 업데이트

다가오는 이벤트

  • BrazilJS Conf 입장권을 판매하고 있습니다. 8월 21일과 22일 BarraShoppingSul 쇼핑 센터에서 열립니다.
  • NodeConf EU 입장권을 판매하고 있습니다. 9월 6일부터 9일까지 아일랜드 워터포드에서 열립니다.
  • Node.js Italian Conference 입장권을 판매하고 있습니다. 10월 10일 이탈리아 Brescia의 Desenzano에서 열립니다.
  • JSConf CO가 10월 16일부터 17일까지 Medellin의 Ruta N에서 열립니다.

node.js와 io.js를 위한 중요 보안 업데이트

node.js와 io.js를 위한 치명적인 보안 릴리스

첫번째 분명한 것: 분명한 것은, 이 일의 처리가 이상적이지는 않았고, 우리가 좀 더 전략적으로 시간을 할애했다면 좋았을 것입니다.
지금 미국은 7월 4일(독립기념일) 주말의 저녁입니다.

우리는 강행하기로 했습니다. 왜냐하면 버그와 잠재적 취약점 공격에 대한 세부 사항이 실수로 인해 공개 포럼에 올라갔기 때문입니다. 우리는 이런 공격이 실제로 발생했을 때 모른 척하고 얼버무리고 싶지 않았습니다. 그래서 회사와 사용자에게 그들 스스로를 보호하고 DoS를 경감할 수 있는 도구를 제공하기로 했습니다. 시기가 굉장히 좋지 않습니다. 큰 배포를 다루는 사람에게는 독립기념일 행사와 주말이 겹친 지금이 악몽 같을 것입니다. 특히 주말을 빼앗긴 미국은 더욱 그렇습니다. 그럼에도 불구하고 이 정보를 공표하기로 결정했습니다.

###요약한다면
Kris Reeves와 Trevor Norris는 V8에서 UTF 문자열을 디코드하는 방법의 버그를 정확하게 지적했습니다. 이것은 버퍼를 UTF8 문자열로 변환할 때 Node에 영향을 주고 프로세스의 강제 종료를 유발할 수 있습니다. 보안 상 고려해야 할 것은, 굉장히 많은 데이터가 애플리케이션 외부로부터 이 메커니즘을 통해 Node로 전달된다는 것입니다. 이 말은 사용자가 이 경로를 통해, 잠재적으로 애플리케이션의 크래시를 유발할 수 있는 특별히 만든 입력 데이터를 전달할 수 있다는 뜻입니다. 우리는 버퍼를 UTF8 문자열로 변환하는 사용자가 많기 때문에 대부분의 네트워킹과 파일 시스템 작동이 영향을 받을 것을 알고 있습니다. Node는 HTTP(S) 헤더를 파싱한 후 UTF8로 변환하지 않기 때문에, 이에 대해서는 취약하지 않습니다. 이는 HTTP(S)가 취약점 공격을 받을 방법을 제한하기에 자그마한 위안을 주지만, 확실히 HTTP(S)에는 헤더 파싱 이외에도 많은 영역이 존재합니다. 게다가 우리에겐, 지금 사용되는 다양한 TLS 종결자와 포워드 프록시가 어떻게 이 취약점 공격에 필요한 데이터 형성을 잠재적으로 방해할 수 있을지에 대한 정보도 아직 없습니다.

초기 완료 예정 시각은 태평양 연안시로 정오였습니다. 불행하게도 그 패치는 불완전하고 낮 동안에는 V8, io.js, Node.js를 위한 다양한 검증 과정과 확장된 테스트만이 있었습니다. 빌드는 이런 이유로 시간을 할애했고 그래서 지연되었습니다. Fedor Indutny는 수정본을 만들었고, Ben Noordhuis, Trevor Norris, Julien Gilli, Rod Vagg, Michael Dawson, Jeremiah Senkpiel 모두 성공으로 이끌기 위해 열심히 일했습니다.

io.js 주간 뉴스 2015년 7월 3일

io.js 1.8, 2.3의 중요한 패치와 다가오는 이벤트

io.js 1.8, 2.3 릴리스

이번 주에는 v2.3.2 릴리스와 v1.8.3, v2.3.3에 중요한 보안 패치가 있었습니다. 전체 변경사항은 GitHub에서 확인할 수 있습니다. v1.x의 변경사항은 여기서 확인하세요.

주요 변경 사항

1.8.3

유지보수 릴리스

  • v8: utf8 디코더의 대역 밖에 쓸 수 있는 문제를 수정했습니다. 이는 DoS 공격에 사용될 수 있으므로 중요한 보안 업데이트입니다.
  • openssl: 1.0.2b, 1.0.2c로 업그레이드 했습니다. DHE 중간자 공격 방어(Logjam)를 도입하고 변형된 ECParameter가 무한 루프를 발생시키던 문제를 수정했습니다. (CVE-2015-1788). 더 자세한 내용은 보안 권고를 확인하세요. (Shigeki Ohtsu) #1950 #1958
  • build:
    • Microsoft Visual C++ 2015 컴파일 지원 추가
    • 헤더만 있는 타볼을 바이너리로 빌드, 배포 시작

2.3.2

  • build:
    • Microsoft Visual C++ 2015 컴파일 지원 추가
    • 헤더만 있는 타볼을 바이너리로 빌드, 배포 시작

2.3.3

  • deps: utf8 디코더의 대역 밖에 쓸 수 있는 문제를 수정했습니다. 이는 DoS 공격에 사용될 수 있으므로 중요한 보안 업데이트입니다.

알려진 이슈

현재 알려진 이슈의 전체 목록은 https://github.com/nodejs/io.js/labels/confirmed-bug에서 보실 수 있습니다.

  • beforeExit 중에 참조 해제된 타이머에 대한 문제가 아직 남아 있습니다. #1264
  • REPL에 입력된 서로게이트 페어가 터미널을 얼릴 수 있습니다. #690
  • process.send()가 문서에 쓰인 것처럼 동기적이지 않으며, 이 문제는 1.0.2에서 발생했습니다. #760
  • DNS 질의 진행 중에 호출된 dns.setServers()가 실패한 단언문으로 프로세스를 크래시시킬 수 있습니다. #894
  • url.resolve가 다른 두 호스트 사이를 해석하는 중 URL의 인증 정보 부분을 교환할 수 있습니다. #1435

커뮤니티 업데이트

  • 후루카와 요스케가 YAPC Asia 2015에서 Node.js의 과거, 현재, 미래에 관한 발표를 합니다. YAPC은 일본에서 가장 큰 프로그래밍 커뮤니티입니다. 이는 도쿄에서 8월 20일~22일에 개최되며 후루카와의 발표는 22일에 있습니다. 더 자세한 내용은 여기를 참조하세요.
  • v8에서 Node.js의 0.12버전과 io.js의 모든 버전의 애플리케이션과 서버에 대한 DoS 공격에 사용할 될 수 있는 보안 이슈가 발견되었습니다. 중요 보안 업그레이드(Node.js v0.12.6, io.js 2.3.3, io.js 1.8.3)가 릴리스되었습니다. 이 문제에 관한 자세한 내용은 이 글에서 보실 수 있습니다. v1.8.2, v2.3.2 이전 버전을 사용하신다면 io.js 버전을 1.8.3, 2.3.3으로 업데이트해 주세요.

다가오는 이벤트

  • CascadiaJS 입장권을 판매하고 있습니다. 7월 8일부터 10일까지 워싱턴 주에서 열립니다.
  • BrazilJS Conf 입장권을 판매하고 있습니다. 8월 21일과 22일 BarraShoppingSul 쇼핑 센터에서 열립니다.
  • NodeConf EU 입장권을 판매하고 있습니다. 9월 6일부터 9일까지 아일랜드 워터포드에서 열립니다.
  • Node.js Italian Conference 입장권을 판매하고 있습니다. 10월 10일 이탈리아 Brescia의 Desenzano에서 열립니다.
  • JSConf CO가 10월 16일부터 17일까지 Medellin의 Ruta N에서 열립니다.

io.js 주간 뉴스 2015년 6월 26일

io.js와 Node.js 소식

이번 주에는 io.js v2.3.1 배포가 있고, 전체 변경사항은 GitHub에서 확인할 수 있습니다.

주요 변경 사항

  • module: require() 수행 중 시스템 콜의 횟수가 다시 급격하게 감소하게 되었고(v2.2.0부터 적용된 작업은 #1801을 참조하세요), 이로 인해 성능 향상이 있을 것입니다. (Pierre Inglebert) #1920.
  • npm:
    • v2.11.2로 업그레이드했습니다. (Rebecca Turner) #1956.
    • v2.11.3로 업그레이드했습니다. (Forrest L Norvell) #2018.
  • zlib: 버퍼 안에서 zlib의 압축 해제 결과의 마지막 부분이 최대 길이인 0x3fffffff바이트(~1기가)를 초과할 때 프로세스가 종료되던 버그가 발견되었습니다. 이 버그는 버퍼를 이용한(스트리밍을 이용하는 것보다는) 압축 해제에서만 나타나는 것 같습니다. 이 버그는 이제 해결되었고 앞으로는 RangeError가 발생할 것입니다. (Michaël Zasso) #1811.

알려진 이슈

현재 알려진 이슈의 전체 목록은 https://github.com/nodejs/io.js/labels/confirmed-bug에서 보실 수 있습니다.

  • beforeExit 중에 참조 해제된 타이머에 대한 문제가 아직 남아 있습니다. #1264
  • REPL에 입력된 서로게이트 페어가 터미널을 얼릴 수 있습니다. #690
  • process.send()가 문서에 쓰인 것처럼 동기적이지 않으며, 이 문제는 1.0.2에서 발생했습니다. #760#774에서 해결했습니다.
  • DNS 질의 진행 중에 호출된 dns.setServers()가 실패한 단언문으로 프로세스를 크래시시킬 수 있습니다. #894
  • url.resolve가 다른 두 호스트 사이를 해석하는 중 URL의 인증 정보 부분을 교환할 수 있습니다. #1435

커뮤니티 업데이트

다가오는 이벤트

  • CascadiaJS 입장권을 판매하고 있습니다. 7월 8일부터 10일까지 워싱턴 주에서 열립니다.
  • BrazilJS Conf 입장권을 판매하고 있습니다. 8월 21일과 22일 BarraShoppingSul 쇼핑 센터에서 열립니다.
  • NodeConf EU 입장권을 판매하고 있습니다. 9월 6일부터 9일까지 아일랜드 워터포드에서 열립니다.
  • Node.js Italian Conference 입장권을 판매하고 있습니다. 10월 10일 이탈리아 Brescia의 Desenzano에서 열립니다.
  • JSConf CO가 10월 16일부터 17일까지 Medellin의 Ruta N에서 열립니다.

io.js 주간 뉴스 2015년 6월 19일

io.js와 Node.js 소식

이번 주에는 io.js 릴리스가 없었습니다. 전체 변경사항은 GitHub에서 확인할 수 있습니다.

커뮤니티 업데이트

다가오는 이벤트

  • Nodeday 입장권은 무료입니다. 6월 26일 런던의 DigitasLBi에서 열립니다.
  • CascadiaJS 입장권을 판매하고 있습니다. 7월 8일부터 10일까지 워싱턴 주에서 열립니다.
  • BrazilJS Conf 입장권을 판매하고 있습니다. 8월 21일과 22일 BarraShoppingSul 쇼핑 센터에서 열립니다.
  • NodeConf EU 입장권을 판매하고 있습니다. 9월 6일부터 9일까지 아일랜드 워터포드에서 열립니다.
  • JSConf CO가 10월 16일부터 17일까지 Medellin의 Ruta N에서 열립니다.

npm is Massive

npm이 현재까지 가장 큰 패키지 생태계라는 것을 알고 있는가? JavaScript와 Node.js 세상에서 npm은 강력하다. npm은 너무 강력하고 훌륭해서 투자하려고 고생할 필요도 없다. npm은 그 규모에서나 Node 커뮤니티 내의 중요성에서나 강력하다.

npm은 Node.js의 패키지 관리자고 개발자들이 JavaScript 애플리케이션에서 파일이나 메타데이터, 의존성을 쉽게 관리하도록 만들어졌다. 2009년 오픈 소스 프로젝트로 시작된 npm은 개발자들이 인터넷을 통한 서비스로 오픈 소스 코드를 관리할 수 있도록 패키지 저장소 기능을 제공한다.

질문. npm은 무엇처럼 보이는가?

현재 npm, Inc에서 npm 프로젝트와 저장소를 무료로 서비스하고 관리하고 있다.

답변. NodeSource 디자인 팀은 npm을 위처럼 만들었다. npm의 N|Signt의 시각화를 확인해 봐라(Hugh Kennedy가 만든 인터랙티브 디자인이다).

npm이 만들어진 후 그 역할은 프론트엔드 웹 애플리케이션, 모바일 애플리케이션, 그 외 JavaScript 개발 도구나 프레임워크의 관리를 포함해서 JavaScript와 Node.js 개발자 커뮤니티의 더 넓어진 요구사항을 만족하도록 확장되었다.

저장소: 매시브

이 글을 쓰는 시점에 공개 npm 저장소에는 155,000개가 넘는 패키지가 존재한다. 5천 개 이상의 패키지가 지난주에 추가되었고 지난달에는 15억 번의 다운로드가 발생했다. 무덤덤한 사람들도 npm의 규모에는 어느 정도 큰 인상을 받을 것이다.

하지만 이 규모는 저장소가 잘 동작하게 하는데 도전이 되기도 해서 아주 유용한 몇 가지 파싱 트릭이 좀 필요했다.

  • readme 파일을 지원하지 않는 패키지는 제외한다. 이는 핵심 요소이다.
  • package.json 파일에 license 필드가 없는 패키지는 제외한다. 라이센스가 없는 패키지는 허가 없이 상업적으로 이용할 수 없다.
  • 원본 소스를 가진 GitHub 저장소가 연결되어 있지 않은 패키지는 제외한다. 저장소가 없으면 리뷰하거나 개선점을 제안하기가 어렵다.
  • 테스트 스크립트가 포함되어 있는지 검사한다. 모든 패키지가 테스트 스크립트를 가진 것은 아니지만, 테스트 스크립트가 있다면 커뮤니티가 잘 관리하고 있다는 좋은 표시이다.

기업용 Node 회사가 공개 npm 저장소 외에 이점을 취할 방법이 몇 가지 있다. npm, Inc.는 패키지를 올린 사람이나 올린 사람이 공유한 다른 유료 사용자만 볼 수 있는 비공개 npm 모듈을 등록할 수 있는 서비스를 제공한다. npm Enterprise는 프라이버시, 스토리지 같은 요구사항이나, 배포 가능한 번들을 만족하도록 방화벽 내에서 동작한다.

의존성

저장소의 순수한 크기를 넘어서 npm의 중요한 역할 중 하나는 Node.js 모듈의 의존성을 관리하는 것이다. 모듈화가 Node 개발의 핵심 설계 원칙 중 하나이므로 Node 모듈이 확장 모듈로 (거대하게) 늘어나는 경향을 보았다.(그래서 모듈 간에 의존성을 가진다.) 이로써 패키지의 사용성이 증가하고 더 작게 모듈화된 컴포넌트를 작성하는 경향이 커지게 된다.

npm은 Node 패키지의 수가 증가하는 조직을 npm의 scoped 패키지 기능으로 잘 지원할 수 있다. 이 기능으로 발행하고 사용하고 배포하는 코드와 의존성에 대한 이해를 제공한다.

NodeSource와 npm

NodeSource는 npm을 Node 개발과 빠른 프로젝트의 진화, Node 형식의 코드 모듈화를 위한 필수 도구로 본다. npm은 개발자에게 최소한의 부담을 주면서 코드를 쉽게 공유할 수 있게 하고 내/외부 Node 패키지에 쉽게 접근할 수 있게 한다. npm은 공개 저장소와 분리해서 Node 프로젝트를 안전하고 안정적으로 배포할 수 있게 하는 좋은 선택이다.

NodeSource는 Node 기초에 대한 소개 과정에서 npm을 가르치고 중급 과정에서는 npm의 구체적인 내용에 집중하고 며칠 동안 진행되는 DevOps 과정에서는 npm의 고급 개념을 가르친다.

npm은 성공적인 Node.js 조직이나 프로젝트에 고루 퍼져있다. npm은 Node/JavaScript 커뮤니티, Node.js에 관련된 일반적인 오픈 소스 유산, 특징과 공통된 목표를 가진다. 그것은 npm을 세계 수준인 Node 전략의 핵심 부분으로 만드는 것이다.

정말 강력하다.

N|Sight 소개

NodeSource에서는 문제를 시각화할 수 있는지가 문제를 해결하는 핵심이라고 생각한다. 당신의 팀이 지리적으로 얼마나 분산되어 있는지를 얘기할 수도 있고 보여줄 수도 있다. 이것이 NodeSource N|Sight를 만든 이유이고, 이는 Node의 강력함과 아름다움을 보여주는 일련의 시각화다. N|Sight로 종종 시각화를 만들어서 공유할 예정이다. 주제에 대해서 많은 말을 하는 것보다 더 명확하고 기억에 남는 이야기를 할 수 있다.

"Understanding npm"은 N|Sight 시각화의 첫 번째 작품이다. 우리가 만든 것을 즐겁게 보기를 바라고 원하는 시각화가 있다면 #visualizethis 해시태그를 달아서 트위터(@nodesource)에 알려주기 바란다.

"npm"과 "npm 저장소"는 npm, Inc의 소유이고 모든 권리는 npm, Inc.에 있다.

io.js 주간 뉴스 2015년 6월 12일

io.js 2.3 릴리스

이번 주에는 io.js v2.3.0 릴리스가 있었습니다. 전체 변경사항은 GitHub에서 확인할 수 있습니다.

주요 변경 사항

  • libuv: 1.6.0, 1.6.1로 업그레이드 했습니다. 자세한 내용은 전체 변경사항을 확인하세요. (Saúl Ibarra Corretgé) #1905 #1889. 주요 변경:
    • OS X에서 TTY가 멈추는 문제를 수정했습니다.
    • UDP가 보내는 콜백이 동기가 되지 않도록 수정했습니다.
    • uv_os_homedir()를 추가했습니다. (os.homedir()로 사용할 수 있습니다. 아래를 참조하세요.)
  • npm: 자세한 내용은 전체 릴리스 노트를 확인하세요. (Kat Marchán) #1899. 주요 변경:
    • GIT_SSH_COMMAND 사용 (Git 2.3에서 사용가능)
  • openssl:
    • 1.0.2b, 1.0.2c로 업그레이드 했습니다. DHE 중간자 공격 방어(Logjam)를 도입하고 변형된 ECParameter가 무한 루프를 발생시키던 문제를 수정했습니다. (CVE-2015-1788). 더 자세한 내용은 보안 권고를 확인하세요. (Shigeki Ohtsu) #1950 #1958
    • OpenSSL의 FIPS 모드를 지원합니다. 소개 글은 README를 확인하세요. (Fedor Indutny) #1890
  • os: os.homedir() 메서드가 추가되었습니다. (Colin Ihrig) #1791
  • smalloc: 전체 모듈을 폐기할 예정입니다. (Vladimir Kurchatkin) #1822
  • 새로운 협력자가 추가되었습니다.

알려진 이슈

현재 알려진 이슈의 전체 목록은 https://github.com/nodejs/io.js/labels/confirmed-bug에서 보실 수 있습니다.

  • beforeExit 중에 참조 해제된 타이머에 대한 문제가 아직 남아 있습니다. #1264
  • REPL에 입력된 서로게이트 페어가 터미널을 얼릴 수 있습니다. #690
  • process.send()가 문서에 쓰여진 것처럼 동기적이지 않으며, 이 문제는 1.0.2에서 발생했습니다. #760#774에서 해결했습니다.
  • DNS 질의 진행 중에 호출된 dns.setServers()가 실패한 단언문으로 프로세스를 크래시시킬 수 있습니다. #894
  • url.resolve가 다른 두 호스트 사이를 해석하는 중 URL의 인증 정보 부분을 교환할 수 있습니다. #1435

커뮤니티 업데이트

다가오는 이벤트

  • CascadiaJS 입장권을 판매하고 있습니다. 7월 8일부터 10일까지 워싱턴 주에서 열립니다.
  • BrazilJS Conf 입장권을 판매하고 있습니다. 8월 21일과 22일 BarraShoppingSul 쇼핑 센터에서 열립니다.
  • NodeConf EU 입장권을 판매하고 있습니다. 9월 6일부터 9일까지 아일랜드 워터포드에서 열립니다.
  • JSConf CO가 10월 16일부터 17일까지 Medellin의 Ruta N에서 열립니다.

io.js 주간 뉴스 2015년 6월 5일

io.js 뉴스

이번 주에는 io.js의 릴리스는 없습니다. 전체 변경사항은 GitHub에서 확인할 수 있습니다.

커뮤니티 업데이트

다가오는 이벤트

  • NodeConf Adventure 입장권을 판매하고 있습니다. 6월 11일부터 14일까지 캘리포니아 Walker Creek Ranch에서 열립니다.
  • CascadiaJS 입장권을 판매하고 있습니다. 7월 8일부터 10일까지 워싱턴 주에서 열립니다.
  • BrazilJS Conf 입장권을 판매하고 있습니다. 8월 21일과 22일 BarraShoppingSul 쇼핑 센터에서 열립니다.
  • NodeConf EU 입장권을 판매하고 있습니다. 9월 6일부터 9일까지 아일랜드 워터포드에서 열립니다.

io.js 주간 뉴스 2015년 5월 29일

io.js 2.2 릴리스

이번 주에는 io.js의 v2.2.0, v2.2.1 버전을 릴리스했습니다. 전체 변경사항은 GitHub에서 확인할 수 있습니다.

주요 변경 사항

v2.2.0

  • node: 가비지 컬렉션으로 정리될 객체를 많이 만들지 않도록 fs.statSync()fs.readFileSync()의 내부 구현을 최적화해, require()의 속도를 향상시켰습니다. 가장 주요한 이점은 애플리케이션 기동 속도를 향상시킨 것과, 수천 가지 예외 이벤트 중 대부분을 제거해 디버거의 기동 속도를 향상시킨 것입니다. (Ben Noordhuis) #1801.
  • node: 프리 로드 모듈을 처리할 때(-r, --require) 단순히 경로를 처리(resolving paths)하는 대신 표준 require() 규칙을 따릅니다. 그래서 이제 node_modules 안의 모듈을 프리 로드할 수 있습니다. (Ali Ijaz Sheikh) #1812.
  • npm: npm을 v2.11.0으로 업그레이드 했습니다. preversion, version, postversion 생명주기 이벤트를 위한 새로운 훅, 몇 가지 SPDX에 관한 라이센스 변경과 라이센스 파일이 추가되었습니다. 더 자세한 내용은 릴리스 노트를 보세요.

v2.2.1

  • http: 문서화하지 않은 client 프로퍼티의 제거를 되돌렸습니다. 이 프로퍼티는 널리 사용되며 특히 npm의 request에서 사용되고 있습니다. (Michaël Zasso) #1852.

알려진 이슈

현재 알려진 이슈의 전체 목록은 https://github.com/nodejs/io.js/labels/confirmed-bug에서 보실 수 있습니다.

  • beforeExit 중에 참조 해제된 타이머에 대한 문제가 아직 남아 있습니다. #1264
  • REPL에 입력된 서로게이트 페어가 터미널을 얼릴 수 있습니다. #690
  • process.send()가 문서에 쓰여진 것처럼 동기적이지 않으며, 이 문제는 1.0.2에서 발생했습니다. #760 그리고 #774에서 해결했습니다.
  • DNS 질의 진행 중에 호출된 dns.setServers()가 실패한 단언문으로 프로세스를 크래시시킬 수 있습니다. #894
  • url.resolve가 다른 두 호스트 사이를 해석하는 중 URL의 인증 정보 부분을 교환할 수 있습니다. #1435

커뮤니티 업데이트

  • Rod Vagg가 쓴 노드 커뮤니티의 분열과 화해에 관한 글입니다.
  • SoundCloud에서 첫 Node 기술 결정 위원회(TSC) 미팅을 들으실 수 있습니다.
  • io.js에 새로운 벤치마킹 워킹 그룹 nodejs/benchmarking#1이 생겼습니다.
  • nodejs.com에 노드 재단 하의 iojs + node.js에 관한 블로그 글이 올라왔습니다.
  • io.js의 새 기여자를 위해 새로이 good first contribution 태그를 구현했습니다.
  • TheNewStack에 iojs와 node.js의 새로운 관계에 관한 블로그 글이 올라왔습니다.
  • Oliver Zeigermann이 ES6과 iojs 구현에 관한 저장소를 만들었습니다.

다가오는 이벤트

  • NodeConf Adventure 입장권을 판매하고 있습니다. 6월 11일부터 14일까지 캘리포니아 Walker Creek Ranch에서 열립니다.
  • CascadiaJS 입장권을 판매하고 있습니다. 7월 8일부터 10일까지 워싱턴 주에서 열립니다.
  • BrazilJS Conf 입장권을 판매하고 있습니다. 8월 21일과 22일 BarraShoppingSul 쇼핑 센터에서 열립니다.
  • NodeConf EU 입장권을 판매하고 있습니다. 9월 6일부터 9일까지 아일랜드 워터포드에서 열립니다.

io.js 주간 뉴스 2015년 5월 22일

io.js 1.8, 2.0, 2.1 릴리스

io.js 1.8, 2.0, 2.1 릴리스, 커뮤니티 업데이트와 이벤트

io.js 1.8, 2.0 그리고 2.1 릴리스

이번 주 v1.8.2, v2.0.2, v2.1.0 3개의 io.js를 릴리스했습니다. 전체 변경사항은 GitHub에서 확인할 수 있습니다.

1.8.2

유지 릴리스

  • 암호화: TLS의 메모리 사용을 상당히 줄임 (Fedor Indutny & Сковорода Никита Андреевич) #1529

  • npm: 2.9.0으로 업데이트. 자세한 사항은 v2.8.4v2.9.0 릴리스 노트를 확인하세요.

2.0.2

  • win,node-gyp: 기본값으로 윈도우 애드온의 딜레이-로드 훅이 이제 제대로 활성화 됩니다. 2.0.0에서는 실수로 비활성화되었습니다. (Bert Belder)#1433
  • os: 임시 디렉터리가 '/'에 있을 때의 이슈를 고치려고 tmpdir()의 마지막 슬래시(/) 제거를 개선했습니다. 또한 어떤 슬래시가 운영체제에서 사용되는지 고려합니다. (cjihrig) #1673
  • tls: gcm과 aes128을 사용하려고 기본 암호화를 업데이트 했습니다. (Mike MacCana) #1660
  • build: 이전의 보안 이슈를 해결한 이후 v8 팀이 제안한 대로 v8 스냅샷을 기본적으로 다시 사용할 수 있게 했습니다. 이로써 구동과 vm 컨텍스트 생성 모두에 성능 향상이 약간 있을 것입니다. (Trevor Norris) #1663
  • src: --require옵션을 사용하기 전에 다른 플래그를 사용하면 프리로드 옵션이 동작하지 않던 문제를 수정했습니다. (Yosuke Furukawa) #1694
  • dgram: send()콜백이 비동기로 동작하지 않던 문제를 수정했습니다. (Yosuke Furukawa) #1313
  • readline: emitKey는 버퍼링 데이터를 충분히 파싱할 때까지 버퍼링 데이터를 가지고 있습니다. 이 수정으로 파싱 스플릿 이스케이프에 관한 문제도 해결됩니다. (Alex Kocharin) #1601
  • cluster: cluster.worker에게 '디스커넥트’를 올바르게 보냅니다. (Oleg Elifantiev) #1386
  • events: 잡히지 않은 에러(uncaught errors)도 이제 약간의 컨텍스트를 제공합니다. (Evan Lucas) #1654

2.1.0

  • crypto: 디피-헬만 키 교환(DHE) 매개변수(‘dhparams’)는 1024비트 이거나 그 이상이어야 합니다. 그 외에는 에러를 던지게 됩니다. 2048비트 이하로 사용할 경우 경고 메시지를 콘솔에 출력하게 됩니다. 이 보안 문제에 대해서는 https://weakdh.org/에서 자세히 보실 수 있습니다. (Shigeki Ohtsu) #1739
  • node: 새로운 --trace-sync-io 커맨드 라인 플래그는 경고를 출력하고 동기 API가 사용될 때 스택을 추적합니다. 애플리케이션을 느리게 만드는 동기 호출을 추적할 때 사용할 수 있습니다. (Trevor Norris) #1707
  • node: 메서드 체이닝을 위해 ‘net’, ‘dgram’, ‘http’, ‘https’, ‘tls’에서 사용한 setTimeout(), setKeepAlive(), setNoDelay(), ref(), unref() 메서드는 undefined 대신 현재의 인스턴스를 반환합니다. (Roman Reiss & Evan Lucas) #1699 #1768 #1779
  • npm: v2.10.1로 업그레이드 한 릴리스 노트를 https://github.com/npm/npm/releases/tag/v2.10.1https://github.com/npm/npm/releases/tag/v2.10.0에서 볼 수 있습니다
  • util: console.log()에서 사용되는 util.format()에 한 개의 문자열 인자를 넘기는 일반적인 경우를 위한 속도 향상(35% 정도)이 있었습니다. (Сковорода Никита Андреевич) #1749

알려진 이슈

현재 알려진 이슈의 전체 목록은 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

커뮤니티 업데이트

다가오는 이벤트

  • NodeConf Adventure 입장권을 판매하고 있습니다. 6월 11일부터 14일까지 캘리포니아 Walker Creek Ranch에서 열립니다.
  • CascadiaJS 입장권을 판매하고 있습니다. 7월 8일부터 10일까지 워싱턴 주에서 열립니다.
  • BrazilJS Conf 입장권을 판매하고 있습니다. 8월 21일과 22일 BarraShoppingSul 쇼핑 센터에서 열립니다.
  • NodeConf EU 입장권을 판매하고 있습니다. 9월 6일부터 9일까지 아일랜드 워터포드에서 열립니다.