Offcanvas
Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc.
Offcanvas
1111Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc.

자바스크립트

아퀘로 라이브러리로 자바스크립트 객체 필터링하기

자바스크립트를 사용한 코딩에는 많은 이점이 있지만 데이터 랭글링은 아마 그 이점에 포함되지 않을 것이다. 그러나 자바스크립트 데이터 랭글링에 어려움을 느끼는 사람들을 위한 좋은 소식도 있다. 높은 인기를 누리는 dplyr R 패키지의 기반인 '데이터 문법' 개념을 아퀘로(Arquero) 라이브러리를 활용해 자바스크립트에서도 쓸 수 있다는 것이다.   워싱턴 대학 인터랙티브 데이터 연구소에서 만들어진 아퀘로는 옵저버블(Observable) 자바스크립트 사용자들 사이에서 가장 유명하지만 다른 방법으로도 사용할 수 있ek. 그 중 하나가 Node.js다.   이 기사에서는 아퀘로를 사용해 자바스크립트 객체를 필터링하는 방법을 알아본다. 마지막 부분에 몇 가지 팁도 소개한다.     1단계. 아퀘로 로드 아퀘로는 옵저버블 자바스크립트와 콰르토(Quarto)에서 표준 라이브러리고 필자도 이 방법으로 아퀘로를 사용한다. 설치는 불필요하다. 노드에서 아퀘로를 사용한다면 npm install arquero --save로 설치해야 한다. 브라우저에서는 <script src="https://cdn.jsdelivr.net/npm/arquero@latest"></script>를 사용한다. 옵저버블의 경우 import {aq, op} from "@uwdata/arquero"로 아퀘로를 로드할 수 있다. 브라우저에서는 aq로 로드되고, 노드에서는 const aq = require('arquero')로 로드할 수 있다.   옵저버블과 콰르토의 나머지 코드는 소개한 그대로 실행해야 한다. 노드와 같은 비동기 환경에서 사용 중이라면 데이터 로드와 처리를 위해 필요한 부분을 조정해야 한다.   2단계. 데이터를 아퀘로 테이블로 변환 aq.from(my_object)를 사용해서 기존 “정규” 자바스크립트 객체를 아퀘로 테이블로 전환할 수 있다.   다른 방법은 아퀘로의 load 함수군을 사...

아퀘로 아퀘로테이블 옵저버블자바스크립트 2022.11.18

“창의적 코드를 부른다” 최고의 자바스크립트 에디터 10선 - Tech Review

자바스크립트 프로그래머를 위한 툴은 다재다능한 통합개발환경(IDE)부터 간단한 텍스트 에디터까지 매우 다양하다. 얼핏 보면 IDE가 정답 같지만, 항상 그런 것은 아니다. 속도 때문이다. 텍스트 에디터는 부가 기능을 최소화해 속도의 장점을 취한다. 최근에는 한 가지 이상의 버전 제어 시스템을 지원해, IDE와의 격차를 좁히고 있다. 여기서는 자바스크립트, HTMLS, CSS를 사용한 개발과 마크다운 문서 작업에 알맞은 텍스트 에디터 최신 버전 10가지를 비교한다. 모든 상황에 적합한 만능 툴은 없지만, 이 중에서 나만의 최고 텍스트 에디터를 충분히 고를 수 있을 것이다. 주요 내용 - 자바스크립트가 처음 배우는 개발 언어로 알맞은 이유 - 코드 리뷰ᆞ편집용 최강 에디터, 서브라임 텍스트 - 비주얼 스튜디오 코드, 강력한 플러그인 생태계가 강점 - 온전히 코드와 디자인에 집중하기, 브라켓 - 깃허브 저장소 탐색 작업에 안성맞춤, 아톰 - 미니멀리즘 에디터 대표주자, 노트패드++ - BB에디트, 맥 사용자를 위한 필수 무료 에디터 - 유용한 번들과 함께 부활했다, 텍스트메이트 - 무궁무진한 활용 가능성, 이맥스 - 확실한 마니아층, 빔과 그 변형 - 나에게 꼭 맞는 자바스크립트 에디터를 선택하는 방법  

자바스크립트 텍스트 에디터 서브라임 텍스트 2022.11.16

웹어셈블리(Wasm)가 클라우드 컴퓨팅의 미래인 이유

서버에서든 엣지에서든 ‘웹어셈블리(WebAssembly; Wasm)’를 사용하면 이전보다 데이터에 훨씬 더 가깝게 실행되는 사용자 정의 로직을 생성할 수 있다. 아울러 더욱 더 유연하고 안전하며 효율적으로 수행할 수도 있다.  웹어셈블리(WebAssembly)의 줄임말인 Wasm은 웹용으로 개발됐다. 하지만 Wasm 기술은 웹 브라우저를 넘어 확장됐다. 이제 기업은 서버 쪽에서 Wasm을 실행하기 시작했다. 예를 들면 싱글스토어(SingleStore)는 자사 데이터베이스에서  Wasm을 사용하고 있다.   일각에서는 Wasm이 컨테이너 기술과 유비쿼터스 자바스크립트를 대체할 것이라고 생각한다. 믿든 믿지 않든 Wasm은 분명히 클라우드 컴퓨팅에 영향을 미치고 있다. 왜 그리고 어떻게?      Wasm은 크로스 플랫폼이다 : 클라우드 구성요소를 안전하고 간단하게 결합한다 소프트웨어 작성에는 수많은 종류의 언어가 사용된다. 그 많은 언어의 상호작용을 보장하는 것은 어렵다. Wasm은 사용자가 원하는 어떤 언어로든 작성할 수 있는 프레임워크를 제공한다. 그 다음 공통으로 시뮬레이션된 기계어 형식을 생성한다.  이 형식을 사용하면 러스트, C/C++, 고랭 등 다양한 언어로 작성된 구성요소가 서로 통신할 수 있다. 또 Wasm은 서버 측 시스템(예 : 데이터베이스 등)이 해당 모듈을 어떻게 생성했는지 확인하거나 신경 쓰지 않고도 다른 언어의 구성요소를 내장한다.  Wasm을 범용 플러그인 형식이라고, 서드파티에서 개발한 구성요소로 시스템의 기능을 강화하고 싶다고 가정해보자. Wasm을 활용하면 일반적으로 추가 기능을 통합할 때 수반되는 위험 없이 시스템에 새 구성요소를 가져올 수 있다. 예를 들어 외부 구성요소가 시스템을 충돌시킬 수도, 예기치 않은 방식으로 움직일 수도 있다. Wasm은 서로 다른 시스템과 구성요소가 상호 작용하는 매우 안전한 프레임워크를 만들어 이러한 문제를 완화한...

웹어셈블리 Wasm 클라우드 2022.11.04

타입스트립트 4.9 버전, 타입 오류 자동으로 수정하는 기능 추가

마이크로소프트가 타입스크립트 4.9 버전에 ‘새티스파이(satisfies)’ 연산자를 새로 지원하고 코딩 에러를 잡아주는 기능을 추가했다고 밝혔다.    새티스파이스 연산자는 표현식에 따로 영향을 주지 않은 상태에서, 타입이 알맞게 쓰였는지 검수한다. 향후 잠재적으로 발생할 수 있는 에러를 감지하며, 각 객체가 모든 키를 제대로 가지고 있는지 확인해준다. 다만 이번 기능은 최종 버전에 들어가는 것은 아니고, 최종 버전 배포 전 출시되는 RC(Release Candidate) 버전에 포함됐다. 타입스크립트 4.9 RC 버전은 누겟이나 NPM을 통해 다운로드 받을 수 있다.  공식 버전에서는 사소한 버그 수정 외에 눈에 띌 만한 기능 추가는 없을 것으로 예상된다. 공식 버전(Stable Release)은 몇 주 안에 공개된다. 4.9 버전에서 추가되는 핵심 기능은 다음과 같다.    파일 감시는 기본적으로 파일 시스템 이벤트에 의해 작동되며, 개발자가 이벤트 기반 감시자를 설정하지 못한 경우에만 폴링으로 변경된다. 이 과정에서 –watch 모드를 실행하거나 또는 비주얼 스튜디오 코드 및 비주얼 스튜디오 같은 타입스크립트 기반 편집기를 이용할 때 리소스 집약적인 상황을 피할 수 있다.  Promise.resolve는 이제 Awaited 타입을 사용하여 전달된 프로미스(Promise)와 유사한 타입을 감싼다. 올바른 프로미스 타입을 반환하는 경우가 더 많지만, 개선된 타입으로 프로미스 대신 any나 unknown 타입이 나올 경우 기존 코드를 중단할 수 있다.  타입스크립트는 NaN 값이 맞는지 직접 확인하며 Number.isNAN 형태를 쓰기를 제안한다.  타입스크립트는 마이크로소프트가 만든 자바스크립트 기반 언어이며, 최근 그 인기가 높아지고 있다. 올해 초 데브옵스 플랫폼 업체 서클CI가 펴낸 '소프트웨어 배포 현황 2022' 보고서에 따르면, 타입스크립트는 ...

오픈소스 타입스크립트 자바스크립트 2022.11.04

초고속 자바스크립트 프레임워크 '퀵'의 이해

퀵(Qwik)은 리액티브 UI에 대한 과감한 발상의 전환이다. 핵심 전제는 HTML과 함께 최소한의 자바스크립트, 즉 필요에 따라 상호작용성을 구현하는 데 충분한 만큼의 자바스크립트를 제공하도록 프레임워크가 처음부터 새로 구축된다는 점이다. 퀵은 수화(hydrated)되는 앱의 각 부분을 격리하기 위한 세분화된 모델을 사용한다. 기본부터 새로 개발해 다른 방식으로는 불가능한 성능을 실현하고 프론트엔드 자바스크립트를 위한 새로운 발전 방향을 제시한다.      퀵의 현재 상태  퀵은 아직 초기 단계지만 출범 당시와 비교하면 상당히 발전했다. 지금은 스택블리츠(StackBlitz)에 모든 기능이 포함된 예제가 있고 REPL 플레이그라운드와 명령줄 툴을 지원한다. 또한 더 개발자 친화적인 리액트(React)와 비슷한 구문도 지원한다. 내부에는 상태, 템플릿 및 리스너에 따라 리액티브 경계를 정의하는 독자적인 리액티브 엔진이 있다.    재개 가능성 퀵은 서버 측 렌더링과 클라이언트 측 렌더링의 조합을 사용해 현대 프레임워크에서 발생하는 이중 부담, 즉 서버와 클라이언트에서 한 번씩, 총 두 번 하이드레이션 작업을 수행하는 데 따르는 부담을 방지한다. 퀵을 만든 미스코 헤브리는 다음과 같이 설명했다.   "퀵의 기본 개념은 재개가 가능하다는 것(resumable)이다. 서버에서 작업을 멈춘 부분부터 이어서 할 수 있다. 클라이언트에서 실행되는 매우 작은 양의 코드밖에 없다. 다르게 표현해 보자. 최대한 온전히 기능하는 HTML 페이지를 설정하는 일은 서버에 맡기고, 사용자를 위한 프로세스를 이어서, 즉 재개하기 위한 가능한 가장 작은 양의 작업을 수행하는 일은 클라이언트에 맡긴다.  SSR(서버 측 렌더링)을 사용하는 리액티브 프레임워크의 일반적인 흐름은 먼저 서버에 앱 버전을 생성한 후 이를 클라이언트로 보내면 클라이언트에서 이 골격이 갖춰진 앱을 렌더링하는 것이다. 이 시점에서 클라이...

자바스크립트 Qwik 2022.10.26

“제 2의 노드JS 노린다” 오픈소스 런타임 환경 ‘번’이란?

노드JS(node.js)와 데노(Deno)의 새로운 경쟁자가 등장했다. 자바스크립트 및 타입스크립트의 런타임 기술인 ‘번(Bun)’이 그 주인공이다.    베타 버전으로 공개된 번은 노드JS나 데노와 유사한 역할을 하며, 번들러, 트랜스파일러, 패키지 매니저 같은 자바스크립트 코드를 위한 종합 기술을 제공한다. 특히 성능을 높이고, 빠르게 시작할 수 있게 만든 것이 특징이다. 번의 공식 홈페이지에 따르면 “번은 전 세계 자바스크립트를 브라우저 밖에서 실행하고, 미래 인프라에서 활용할 수 있도록 성능을 높이고 복잡성을 줄인 기술”이라고 소개됐다. 번 개발진은 이런 구조 덕에 개발자가 보다 간편하게 생산성을 높일 수 있을 것이라 기대하고 있다. 또한 궁극적으로 로컬 컴퓨터, 서버, 엣지 등에서 실행되는 자바스크립트 및 타입스크립트 기반 앱과 스크립트를 대체할 수 있다고 설명했다.  번은 노드 API 기능의 90%를 지원하고 있으며, 자체 내장된 API로 fetch, WebSocket, ReadableStream 등을 제공한다. 지그(Zig)라는 로우레벨 언어로 작성된 번은 웹킷 프로젝트의 자바스크립트 코어 엔진을 사용한다. 또한 NPM, SQLite, HTTP, 웹소켓(WebSocket)용 클라이언트와 JSX/타입스크립트의 트랜스파일러를 지원한다.  번 개발진은 “번은 지그 언어를 사용해 메모리나 제어 흐름을 관리하고 있기 때문에, 개발자는 소프트웨어를 더욱 빠르게 개발할 수 있을 것”이라며 “노드JS나 데노가 사용하는 V8 기반 기술보다 번의 속도가 더 빠를 것”라고 밝혔다.  editor@itworld.co.kr

노드JS 자바스크립트 런타임 2022.10.04

"검색 결과에 지뢰 숨겨두는" SEO 포이즈닝 공격 경보 발령

업무와 관련된 특정 용어를 검색하는 업계 및 정부 기관 소속 사용자를 가리지 않고 무차별적으로 겨냥하는 검색 엔진 최적화(SEO) 포이즈닝 공격이 발견됐다. 조작을 통해 검색 결과 상위에 배치된 악성 검색 결과를 클릭하면 자바스크립트 맬웨어 다운로더로 연결된다.   보안 업체 딥워치(Deepwatch) 연구팀은 최신 보고서에서 “블로그 게시물 제목을 분석하는 해외 정보 기관이 SEO 포이즈닝 공격의 대상”이라면서 “공격자는 해외 정보 기관이 주목할, 그리고 기관 내 사용자가 검색할 가능성이 있는, 예를 들어 ‘통역사 기밀 유지 계약’ 등의 블로그 게시물 제목을 사용했다. 위협 인텔리전스팀은 위협 행위자가 한 사이트에 192개의 블로그 게시물을 생성한 것으로 파악했다”라고 전했다.     SEO 포이즈닝의 작동 방식 딥워치는 한 고객사에서 발생한 사고를 조사하던 중 SEO 포이즈닝 공격을 발견했다. 직원 한 명이 구글에서 “전환 서비스 협의서”를 검색한 후 그 결과로 나타난 웹사이트를 방문했다. 웹사이트의 포럼 쓰레드에는 한 사용자가 공유한 zip 파일 링크가 있었고 zip 압축 파일에는 “전환 서비스 협의서에 대한 설명”이라는 파일이 .js(자바스크립트) 확장자로 포함돼 있었다. 이 파일은 과거 굿킷(Gootkit) 원격 액세스 트로이 목마를 퍼뜨리는 맬웨어로 알려진 굿로더(Gootloader)의 변형이었다.   전환 서비스 협의서(TSA)는 인수합병에서 기업 일부를 원활하게 전환하려는 목적으로 흔히 사용된다. 자주 사용되는 만큼 관련 자원도 많다. 사용자가 이 링크를 보고 클릭했다는 사실은 문제의 링크가 검색 순위에서 상위에 표시되었음을 시사한다. 연구진이 살펴본 결과 맬웨어 배포 페이지가 호스팅된 사이트는 합법적인 콘텐츠를 운영하는 것으로 보이는 스포츠 스트리밍 배포 사이트였다. 그러나 사이트의 구석 구석에는 전문가가 관심을 가질 만한 다양한 주제에 관한 190개 이상의 블로그 게시물이 숨겨져 있었고 이 블로그 게시...

SEO 포이즈닝 자바스크립트 2022.09.27

‘자바스크립트의 아버지’ 브렌던 아이크가 전하는 코딩·웹3·암호화폐의 미래 

브렌던 아이크는 자바스크립트 프로그래밍 언어를 처음 창시한 사람으로 유명하다. 지금 브레이브 소프트웨어(Brave Software)의 창업자이자 CEO로 활동하면서, 브레이브 브라우저와 베이직 어텐션 토큰(Basic Attention Token)의 기술을 개발하고 있다. 한때는 모질라 CTO로 일하며 모질라 웹 브라우저를 암흑기에서 건져내는 데 일조하기도 했다. 인포월드는 최근 아이크를 만나 대형 IT 기업의 죄악과 웹 광고 모델의 실패, 브레이브와 베이직 어텐션 토큰의 정책에 대해 대화를 나눴다. 또한 암호화폐 거품, 웹3의 혼란, 블록체인의 비전, 그리고 기업 CEO가 코딩하지 않는 이유에 대해서도 이야기를 나눴다.   매튜 타이슨 : 일단 자바스크립트를 만들어줘서 고맙다는 말부터 해야겠다. 자바스크립트는 웹의 토대 역할을 했고 많은 이들을 프로그래밍 세계로 이끌었다. 그와 별개로 비효율성과 개인정보 보호 실패로 점철된 웹 광고 세계를 개선하기 위해 브레이브 브라우저와 베이직 어텐션 토큰을 만든 것으로 알고 있다. 브레이브는 베이직 어텐션 토큰을 통해 광고 수익을 양도한다고 하는데, 무슨 말인지 자세히 설명을 부탁한다. 브렌던 아이크 : 온라인 광고는 감시 시스템으로 전락했다. 이 감시 시스템은 사용자의 관심으로부터 가치를 훔치고 높은 수수료와 불투명함 시스템을 통해 퍼블리셔를 약탈하고 나아가 광고 사기를 적극적으로 조장한다. 거기다 광고를 교환하는 과정에서 맬웨어를 퍼뜨리기도 한다. 나와 내 동료가 90년대 넷스케이프(Netscape)에서 쿠키와 자바스크립트를 개발할 때만 해도 이런 결과를 의도하지 않았다. 브레이브는 이런 문제를 없애기 위해 사용자를 우선시하고 크롬에서 가장 명확히 볼 수 있는, 에이전트와 주 이해관계의 충돌을 없애려고 한다. 기본적으로 크롬은 사용자가 한 탭에서 구글 계정에 로그인하면 모든 탭과 창에 걸쳐 사용자를 추적한다. 또한 크롬은 기본적으로 추적을 차단하지 않는다. 구글의 비즈니스 모델을 감안하면 당...

자바스크립트 브렌던아이크 코딩 2022.09.26

타입스크립트 4.8 공식 출시…교차 및 유니온 타입 개선

마이크로소프트가 타입스크립트(TypeScript) 4.8의 공식 버전을 출시했다. 새 버전은 리눅스와 맥OS 내 파일 감시 관련 오류를 수정하고, 타입 개선으로 정확성과 일관성 높였다.    새로운 타입스크립트는 strictNullChecks를 통해 교차 타입 및 유니온 타입 기능에 변화를 주고, 타입 범위를 줄여 코드의 정확도와 일관성을 높였다. 특히 언노운(unknown) 타입은 유니온 타입에서 {} | null | undefined 처럼 쓸 수 있다. 마이크로소프트는 “타입스크립트 4.8 버전은 실용적인 변화를 제공하기 위해 제어 흐름을 분석하고 타입 범위를 줄이는 기능을 지원한다. 제네릭 값 범위도 이제 줄일 수 있다”라고 설명했다.  또한 파일 감시 기능의 경우, 그동안 와치(Watch) 모드를 실행하거나 에디터 안에서 파일을 수정하려 하면, 여러 오류가 발생했다. 특히 유닉스 시스템에서 오류가 많이 생겼고, 보통 노드JS 가 파일 시스템 전반에 걸쳐 이름 변경 이벤트를 처리하는 과정에서 문제가 있었다. 리눅스와 맥OS 안의 파일시스템은 inodes를 사용하는데, 노드JS는 파일 경로를 이용하는 대신 inodes에 파일 감시 기능을 연결한다. 이때 타입스크립트는 디스크의 경로를 감지하면 동일한 워처 개체를 사용한다. 결과적으로 원래 위치에 새 워처를 설치하는 대신, 기존 워처 개체를 재사용하고 관련 없는 파일의 변경 사항을 감시한다. 타입스크립트 4.8 버전은 inodes 시스템에서 이러한 사례들을 적절하게 처리하고 새로운 워치를 설치한다. 그 외 타입스크립트 4.8 버전에 추가된 사항은 다음과 같다. 빌드를 사용해 watch 및 incremental를 사용하는 속도를 높여 최적화 지원 바인딩 패턴으로부터의 추론 기능 향상 편집기에서 참조찾기(Find-all-references)를 실행할 때, 참조 내용 확인 기능 개선. 널리 사용되는 식별자를 검색하는 데 필요한 시간을 약 20% 단축. 브레이킹 체인지에서 ...

타입스크립트 자바스크립트 마이크로소프트 2022.08.30

"노드js의 안전한 대안" 디노 런타임 프로젝트 9선

노드.js 자바스크립트 런타임의 안전한 대안으로 ‘디노(Deno)’가 각광받고 있다. V8 자바스크립트 엔진과 러스트를 기반으로 구축된 디노 런타임의 버전 1.0은 지난 2020년 5월 출시됐다. 현재 깃허브에서 8만 3,000개 이상의 별(편집자 주: 깃허브의 북마크 기능이자 그 수로 인기를 가늠할 수 있는 척도)을 받은 디노는 노드.js를 만든 라이언 달이 개발했다.   당연한 수순이지만 출시 이후 개발자들이 코딩, 서버리스 엣지 호스팅, 웹 개발 등의 작업을 할 수 있도록 런타임을 보완하는 도구와 서비스가 등장하면서 디노를 중심으로 한 생태계가 싹트고 있다.    알레프.js(Aleph.js) 디노에서 ‘알레프.js’는 웹 애플리케이션 구축용 풀스택 프레임워크로 포지셔닝돼 있다. 현재 베타 상태여서 많은 기능이 변경될 수 있다. 데모는 디노 디플로이 서비스에서 액세스할 수 있다.  디노 디플로이(Deno Deploy) 디노 개발팀이 만든 ‘디노 디플로이’는 자바스크립트, 타입스크립트, 웹어셈블리용 서버리스 엣지 호스팅 서비스다. V8 런타임과 통합된 디노 디플로이 서버는 대기 시간을 최소화하고, 불필요한 추상화를 제거하도록 설계됐다. 디노 CLI와 동일한 시스템에 구축되며, 애플리케이션은 이 URL에서 배포된다. 디노 디플로이 서비스는 전 세계 33개 지역에서 사용할 수 있다.  비주얼 스튜디오 코드용 디노(Deno for Visual Studio Code) 비주얼 스튜디오 마켓플레이스에서 액세스할 수 있는 이 확장은 디노 언어 서버를 기반으로 마이크로소프트의 비주얼 스튜디오 코드 편집기에 디노 지원을 추가한다. 빠른 수정 및 지능형 코드 완성, 자바스크립트 및 타입스크립트 유형 검사 등의 기능을 제공한다. 아울러 해당 확장을 사용하면 디노의 CLI 모듈 전략에 따라 CLI 캐시에 원격 모듈을 캐시할 수 있다. VS 코드 확장에는 디노 CLI 버전 1.13.0 이상이 필요하다.  디노.랜드/...

노드.js 디노 자바스크립트 2022.07.04

‘ECMA스크립트 2022’ 공식 승인⋯“새 클래스 요소, 최상위 await 지원”

자바스크립트의 뒤를 잇는 공식 표준의 다음 업데이트인 ‘ECMA스크립트 2022(ECMAScript 2022)’가 공식 승인됐다. 이번 릴리즈는 클래스 요소, 최상위 await 등의 새로운 기능을 제공한다.    지난 6월 22일 ECMA 인터내셔널(ECMA International)이 ECMA스크립트 2022 사양을 승인했다. 앞서 지난 3월 TC39 위원회(TC39 committee)의 공동의장 로버트 팔머는 “대부분의 브라우저에서 이미 이 기능들을 사용할 수 있다. 자바스크립트 엔진의 기능 가용성은 실제 사양보다 개발자와 더 관련 있다”라고 말했다. ECMA스크립트 2022의 새로운 기능은 다음과 같다.    최상위 await(Top-level await): 모듈의 최상단에서 await를 사용할 수 있다.  새로운 클래스 요소: 퍼블릭 및 프라이빗 인스턴스 필드, 퍼블릭 및 프라이빗 정적 필드, 프라이빗 인스턴스 메소드 및 접근자를 포함한다.  클래스 내 정적 블록: 클래스별 평가 초기화를 수행할 수 있다.  #x in obj#x in obj 구문: 객체에 프라이빗 필드가 있는지 테스트할 수 있다.  /d/d 플래그를 통한 정규식 일치 인덱스 : 일치하는 하위 문자열에 시작 및 종료 인덱스를 제공한다.  Error 객체의 cause 속성: 오류의 인과관계를 기록하는 데 사용된다.  Strings, Arrays, TypedArrays의 at 메소드: 상대 인덱싱을 허용하고, Object.prototype.hasOwnProperty의 대안인 Object.hasOwn를 사용할 수 있다.  한편 지난 6월 ‘ECMA스크립트 2021’은 하위 문자열의 인스턴스를 교체하기 위한 String.prototype.ReplaceAll 및 AggregateError 오류 유형 등의 기능을 표준화한 바 있다. ciokr@idg.co.kr

ECMA스크립트 자바스크립트 개발자 2022.06.29

“개발자 85%는 원격근무 중”

스택 오버플로우(Stack Overflow)의 ‘2022 개발자 설문조사(2022 Developer Survey)’ 결과에 따르면 대부분의 개발자가 원격에서 작업하고 있으며, 좋아하는 기술을 쓸 수 있는 유연한 환경을 선호하는 것으로 나타났다.  대부분의 소프트웨어 개발자는 현재 적어도 일정 시간 원격근무를 하고 있으며, 작업 환경의 유연성이 그 어느 때보다 중요하게 여겨지고 있다. 한편 2022년 5월 스택 오버플로우 개발자 설문조사에는 전 세계 180개국 총 7만 3,268명이 참여했다.    개발자 채용 및 유지의 새로운 법칙 지난 2020년, 완전히 원격근무로 전환해야 했던 개발자 팀이 많았다. 이번 보고서에 의하면 약 85%의 개발자는 소속 조직이 완전(42.98%) 또는 최소한 부분적으로(42.44%) 원격근무를 하고 있다고 답했다. 대기업일수록 완전 원격근무보다는 하이브리드 근무를 하는 경향이 컸다. 스택 오버플로우의 CEO 프라샨트 찬드라세카는 인포월드와의 인터뷰에서 “전 세계가 하이브리드 및 원격근무로 가고 있다. 이번 데이터는 기차는 이미 떠났다는 사실을 보여준다. 작업 환경의 유연성 그리고 개발자가 쓰게 될 기술 스택은 직장 만족도에 가장 큰 영향을 미치는 요소인 것으로 조사됐다. 많은 개발자가 작업하게 될 기술 스택 때문에 채용 과정에서 중도 하차한다”라고 말했다. 한편 프리랜서 또는 개인 비즈니스를 하는 개발자가 작년보다 5%P 증가한 17%를 기록했다. 이 밖에 조직 문화도 변화하고 있으며, 클라우드 네이티브 기술이 인기를 끌었다. 대부분의 개발자의 현재 CI/CD(69.79%)를, 데브옵스 기능(59.35%), 자동화된 테스트(58.09%)를 사용하고 있다고 밝혔다. 하지만 필요한 도구 및 서비스를 쉽게 찾을 수 있는 내부 개발자 포털을 가지고 있다고 말한 개발자는 전체 응답자의 38%에 그쳤다. 아울러 내부 리소스 기술을 사용하여 코드와 지식을 공유한다고 답한 개발자도 16%에 불과했다. &nbs...

소프트웨어 개발자 스택 오버플로우 개발자 설문조사 2022.06.24

프론트엔드 아키텍처의 진화, 리액티브 자바스크립트

현재 소프트웨어 개발에서 가장 역동적인 분야는 프론트 엔드 아키텍처다. 동적인 사용자 인터페이스를 구축하기 위한 더욱 강력한 방법을 고안하고자 여러 혁신가들이 첨단 기술을 발전시키고 있다. 이들 작업은 대부분 맹렬한 속도로, 공개적으로 진행되고 있다.   스벨트킷(SvelteKit), 솔리드(Solid), 리액트(React), 퀵(Qwik), 아스트로(Astro) 같은 여러 오픈소스 자바스크립트 프로젝트 덕분에 우리는 미래를 향한 웹의 진화를 눈앞에서 지켜볼 수 있다. 이 글은 최근 오픈소스 자바스크립트 프로젝트의 움직임 이해를 위한 가이드다.     하이드레이션이란? 현대의 프론트 엔드 아키텍처를 개선하기 위한 활동의 대부분은 이른바 하이드레이션(hydration)에 초점을 둔다. 하이드레이션이 무엇이며 왜 현대 프론트 엔드 아키텍처의 중심인지 이해하기 위해 일단 전체적인 개념을 파악해야 한다. 반응성(reactivity)을 구현하려면 모든 프레임워크는 다음 다이어그램에 기술된 세 가지 측면을 처리해야 한다.    이 다이어그램의 기본적인 메시지는 뷰의 프레임을 설정하고 상태를 저장하고 이 둘 간의 상호작용을 관리하는 작업을 프레임워크가 담당한다는 것이다(MVC 패턴을 잘 아는 사람에게는 친숙한 개념).   이 3가지 조각이 확보되면 준비가 된 것이다. 사용자는 페이지를 보고 페이지와 상호작용할 수 있다.   네이티브, 또는 기본적인 접근 방법은 단순히 클라이언트에서 필요한 모든 것(프레임, 리액티브 코드, 상태)을 가져와 보내는 방법이다. 그러면 클라이언트(브라우저)가 프레임을 표시하고(UI 페인팅) 자바스크립트를 해석하고 상태를 연결하는 작업을 한다.   이 접근 방법의 장점은 코드가 단순하며 따라서 코드를 이해하기도 쉽다는 것이다. 그러나 큰 단점도 있다. 첫 페이지 렌더에서 모든 요소를 기다려야 하고 사용자는 모든 네트워크 및 브라우저 작업이 완료되기까지의 과정을 거쳐야 한...

자바스크립트 프론트엔드아키텍처 프론트엔드 2022.06.02

타입스크립트 4.7 출시…“노드.js 16용 ESM 지원”

‘타입스크립트 4.7(TypeScript 4.7)’이 프로덕션 릴리즈로 출시됐다. 마이크로소프트가 자바스크립트에 정적 타입 문법을 추가해 만든 이 오픈소스 프로그래밍 언어의 최신 버전은 노드.js 16(Node.js 16)에 ECMA스크립트(ESM) 모듈을 지원하고, 다양한 코딩 기능을 개선했다.    ‘노드.js용 ESM 지원’은 타입스크립트 릴리즈에 뒤늦게 추가됐다. 작년 말 타입스크립트 4.5에서 계획돼 있었으나 이번 릴리즈로 연기돼, 지난 4월 8일 공개된 타입스크립트 4.7 베타에서 노드.js 12용 ESM 지원이 포함됐다. 하지만 노드.js 12가 더 이상 지원되지 않아 타입스크립트 개발팀은 노드.js 16에서 스테이블 버전을 시작했다. 이는 패턴 트레일러 등의 ECMA스크립트 모듈 기능을 제공할 뿐만 아니라 타입스크립트를 최상위 await를 지원하는 상위 타깃으로 기본 설정한다.  노드.js용 ECMA스크립트 모듈 지원 기능의 나이틀리 버전은 타입스크립트 4.5 릴리즈 기간 동안 재출시됐다. 이 모듈을 사용하면 패키징을 통해 코드를 재사용할 수 있다. 개발팀에 따르면 노드.js가 다른 모듈 시스템인 커먼JS(CommonJS)에 구축된 탓에 이를 지원하기가 어려웠다. 타입스크립트 4.7은 노드16(node16)과 노드넥스트(nodenext)라는 2가지 모듈 설정으로 이 기능을 추가한다. 타입스크립트 4.7은 누겟(NuGet) 또는 NPM(npm install -D typescript)을 통해 다운로드할 수 있다. 이 밖에 타입스크립트 4.7의 다른 기능은 아래와 같다.    인덱싱된 키가 리터럴 유형 및 고유 기호일 때, 괄호로 묶인 요소 액세스의 제어 흐름 분석은 이제 요소 액세스 유형을 좁힌다.  타입스크립트 4.7에는 모듈 탐지를 제어하기 위한 moduleDetection 옵션이 적용됐다.  모듈 지정자의 룩업을 사용자 정의하는 moduleSuffixes 옵션이...

마이크로소프트 타입스크립트 자바스크립트 2022.05.31

"개발 언어 지배자는 여전히 자바스크립트와 파이썬"

개발자의 언어 선호도에서 자바스크립트와 파이썬의 강세가 계속되고 있다. 러스트의 상승세도 만만치 않은 것으로 나타났다. 이는 지난 4일 공개된 '개발자 현황 22번째 에디션(State of the Developer Nation, 22nd Edition)'의 주요 내용이다. 이 보고서는 시장조사업체 슬래시데이터(SlashData)가 2021년 12월부터 올해 2월까지 전 세계 166개국 2만 명 이상의 개발자를 설문한 결과다.   보고서를 보면, 자바스크립트는 가장 선호하는 언어로 선정됐다. 슬래시데이터는 이 조사를 1년에 2~3번 정도 진행하는데, 자바스크립트는 최근 12번의 조사에서 연속으로 1위를 차지했다. 전 세계적으로 약 1,750만 명이 사용하고 있고, 자바스크립트 커뮤니티 역시 수년간 지속해서 성장하고 있다. 2위는 파이썬이었다. 2년 전 자바를 앞지른 이후 선두권을 계속 유지하고 있다. 전 세계 사용자 수는 1,570만 명으로, 불과 6개월 사이에 330만 명이나 늘어났다.   상승세를 보면 러스트가 눈에 띈다. 지난 2년 사이 사용자 수가 거의 4배 늘었다. 2020년 1분기 60만 명이었는데, 2022년 1분기에는 220만 명이 됐다. 러스트 파운데이션의 상임이사 레베카 럼블은 "보안과 메모리 안전성 등의 장점 때문에 러스트 사용자가 크게 늘었다. 메인터이너와 컨트리뷰터 커뮤니티가 포괄적이고 협력적인 것도 장점이다. 또한 러스트 개발자에 대한 수요가 계속해서 늘고 있으므로 직업적 전망에서도 좋은 언어다"라고 말했다. 보고서는 러스트가 주로 IoT 프로젝트는 물론 증강, 가상현실 개발에서도 널리 사용되고 있다고 분석했다.   이밖에 보고서의 주요 내용은 다음과 같다.   자바는 강력하고 안정적으로 성장하고 있다. 2021년 이후 거의 500만 명의 개발자가 자바 커뮤니티에 합류했다. PHP는 지난 6개월간 꾸준히 성장해 2021년 3분기에서 2022년 1분기 사이에 60만 명이 증가했다. PHP는 웹 ...

자바스크립트 파이썬 러스트 2022.05.20

자바스크립트 컨테이너, 리눅스 컨테이너의 대안 될까

디노 자바스크립트 및 타입스크립트 런타임을 개발한 라이언 달이 리눅스 컨테이너의 대안으로 ‘자바스크립트 컨테이너’와 ‘자바스크립트 샌드박스’의 가능성을 연구하고 있다고 밝혔다.    지난 5월 4일(현지 시각) 블로그에서 그는 자바스크립트를 “범용 스크립팅 언어(The Universal Scripting Language)”라고 언급했다. 달은 “자바스크립트의 보편성은 새로운 독립형 서버 컨테이너 등의 추상화를 촉발하고 있다. 자바스크립트 컨테이너는 많은 웹 서비스를 간소화할 수 있다”라고 말했다.   이어 “도커는 서버 소프트웨어 배포용 운영체제 수준 가상화를 통해 리눅스 컨테이너 사용을 대중화했다. 각 컨테이너 이미지는 종속성이 없고 즉시 실행할 수 있는 소프트웨어 패키지다. 하지만 브라우저 자바스크립트는 더 높은 수준의 추상화에서 유사한 밀폐 환경을 제공한다. 디노, 특히 ‘디노 디플로이(Deno Deploy)’에서 자바스크립트 컨테이너 기술을 검토하고 있으며, 현재 이를 추진할 엔지니어를 채용 중이다"라고 덧붙였다.  달에 따르면 스크립팅 언어는 많은 서버 문제를 해결하고, 비즈니스 로직을 더 저렴하고 빠르게 작성하는 데 도움을 줄 수 있다. 자바스크립트는 가장 미래 지향적인 스크립팅 언어이며, 아울러 자바스크립트 샌드박스는 서버 소프트웨어의 상위 수준 컨테이너로 부상하고 있다. 리눅스 컨테이너와 달리 자바스크립트 샌드박스는 웹어셈블리 바이너리 명령어 형식을 호출할 수 있다. ciokr@idg.co.kr  

자바스크립트 컨테이너 리눅스 컨테이너 컨테이너 2022.05.09

“파이썬과 HTML의 결합” 아나콘다 ‘파이스크립트’ 공개

과학 계산용 파이썬 배포판을 개발하는 아나콘다(Anaconda)가 파이콘 US 2022(PyCon US 2022)에서 ‘파이스크립트(PyScript)’ 프로젝트를 발표했다. 업체에 따르면 파이스크립트는 사용자가 파이썬과 표준 HTML을 결합하여 브라우저에서 풍부한 파이썬 애플리케이션을 만들 수 있도록 지원하는 프레임워크다. 브라우저 내 단일-포함(single-include) 방식으로 HTML 페이지에서 자바스크립트만큼 쉽게 파이썬 스크립트를 실행할 수 있도록 한다.    기존에 파이썬은 HTML 및 자바스크립트를 반환하는 애플리케이션 서버로 실행해야만 자바스크립트 또는 웹 페이지와 상호작용할 수 있었다. 하지만 파이스크립트에는 서버 구성요소가 없다. 모든 것이 브라우저에서 직접 실행된다는 게 아나콘다 측 설명이다. 파이스크립트를 사용하면 파이썬 및 자바스크립트의 유용한 구성요소를 나란히 배포할 수 있다. 일례로 NYC 택시 데이터 데모인 파이스크립트는 판다스(Pandas)를 활용하여 데이터를 분석한 다음, 자바스크립트의 웹GL(WebGL)을 통해 데이터의 인터랙티브 3D 뷰를 생성한다.    파이스크립트는 인라인 파이썬 코드를 실행하기 위해 웹어셈블리에 C파이썬 런타임의 전체 포트를 사용한다. 파이썬 코드를 <py-script> 태그 안에 넣고, 해당 출력을 선택한 <div>에 배치할 수 있다. <py-repl> 태그는 코드를 입력하고 실행할 수 있는 REPL 블록을 삽입하며, <py-env> 태그는 필요한 패키지를 나열하기 위해 저장소의 requirements.txt 파일과 같은 기능을 한다.   또 파이스크립트 런타임은 아나콘다와 함께 번들로 제공되는 과학 계산용 라이브러리(예: 넘파이(NumPy), 판다스(Pandas), 사이킷런(Scikit-learn)) 등의 일반적인 파이썬 패키지를 활성화한다. 파이스크립트 저장소 데모는 이를 수행하는 다양한 방법을 제공한...

파이썬 파이스크립트 아나콘다 2022.05.04

IDG 설문조사

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2022 International Data Group. All rights reserved.