Offcanvas

������������������ ������������������

최신 ‘파이썬’ 작성 팁 4가지

‘파이썬’의 새롭고 강력한 기능을 모두 활용하는 코드를 작성하고 싶은가? 여기 살펴봐야 할 4가지 기능이 있다. 파이썬(Python)은 작년에 30주년을 맞이했다. 하지만 폭발적인 성장을 기록한 지는 몇 년이 채 되지 않았다. 파이썬의 많은 기능은 처음 그대로 유지되고 있지만 해가 거듭될 때마다 그리고 새로운 버전이 나올 때마다 새로운 작업 방식과 이러한 개선사항을 활용하는 새로운 라이브러리가 제공된다.  그래서 파이썬에는 기존 방식과 새로운 방식이 있다. 당연히 가장 최신의 편리한 기능을 사용하여 파이썬으로 작업하는 방법을 배우는 게 좋다. 여기에서는 최신 파이썬을 작성하기 위해 알아야 하는 핵심 개념을 소개한다.    타입 힌팅(Type Hinting) 최근에 도입된 ‘타입 힌팅’ 구문을 사용하면 린터 및 서드파티 코드 품질 도구를 통해 런타임 전에 코드를 분석하고 발생 가능한 오류를 감지할 수 있다. 다른 사람들과 공유할 파이썬 코드를 많이 만들수록 타입 힌트의 이점을 더 많이 누릴 수 있다. 파이썬이 개선될 때마다 더 정교하고 강력한 타입 주석이 제공된다. 단기간에 타입 주석 사용법을 익히는 습관을 들이면 새로운 타입 힌팅 기능이 도입될 때마다 훨씬 더 잘 활용할 수 있을 것이다.  단, 타입 힌트는 ‘필수’가 아니라 ‘선택’이라는 점을 인지해야 한다. 이는 모든 프로젝트에 필요하진 않다. 타입 힌트를 사용하여 대규모 프로젝트를 쉽게 이해할 수 있지만 50줄짜리 간단한 스크립트에서는 얼마든지 생략할 수 있다. 아울러 타입 힌트는 런타임에 적용되지 않지만 ‘파이단틱(Pydantic)’을 사용하여 이를 가능하게 할 수 있다. 패스트API(FastAPI) 등의 널리 사용되는 많은 파이썬 프로젝트는 파이단틱을 광범위하게 사용한다. 파이썬 가상 환경 및 패키지 관리 간단한 프로젝트와 개발 작업에서는 파이썬에 내장된 venv 도구만 사용하여 프로젝트와 요구 사항을 분리할 수 있다. 최근에는 더 많은 옵션이 제공된다. ...

파이썬 프로그래밍 언어 개발 언어 소프트웨어 개발

1일 전

‘파이썬’의 새롭고 강력한 기능을 모두 활용하는 코드를 작성하고 싶은가? 여기 살펴봐야 할 4가지 기능이 있다. 파이썬(Python)은 작년에 30주년을 맞이했다. 하지만 폭발적인 성장을 기록한 지는 몇 년이 채 되지 않았다. 파이썬의 많은 기능은 처음 그대로 유지되고 있지만 해가 거듭될 때마다 그리고 새로운 버전이 나올 때마다 새로운 작업 방식과 이러한 개선사항을 활용하는 새로운 라이브러리가 제공된다.  그래서 파이썬에는 기존 방식과 새로운 방식이 있다. 당연히 가장 최신의 편리한 기능을 사용하여 파이썬으로 작업하는 방법을 배우는 게 좋다. 여기에서는 최신 파이썬을 작성하기 위해 알아야 하는 핵심 개념을 소개한다.    타입 힌팅(Type Hinting) 최근에 도입된 ‘타입 힌팅’ 구문을 사용하면 린터 및 서드파티 코드 품질 도구를 통해 런타임 전에 코드를 분석하고 발생 가능한 오류를 감지할 수 있다. 다른 사람들과 공유할 파이썬 코드를 많이 만들수록 타입 힌트의 이점을 더 많이 누릴 수 있다. 파이썬이 개선될 때마다 더 정교하고 강력한 타입 주석이 제공된다. 단기간에 타입 주석 사용법을 익히는 습관을 들이면 새로운 타입 힌팅 기능이 도입될 때마다 훨씬 더 잘 활용할 수 있을 것이다.  단, 타입 힌트는 ‘필수’가 아니라 ‘선택’이라는 점을 인지해야 한다. 이는 모든 프로젝트에 필요하진 않다. 타입 힌트를 사용하여 대규모 프로젝트를 쉽게 이해할 수 있지만 50줄짜리 간단한 스크립트에서는 얼마든지 생략할 수 있다. 아울러 타입 힌트는 런타임에 적용되지 않지만 ‘파이단틱(Pydantic)’을 사용하여 이를 가능하게 할 수 있다. 패스트API(FastAPI) 등의 널리 사용되는 많은 파이썬 프로젝트는 파이단틱을 광범위하게 사용한다. 파이썬 가상 환경 및 패키지 관리 간단한 프로젝트와 개발 작업에서는 파이썬에 내장된 venv 도구만 사용하여 프로젝트와 요구 사항을 분리할 수 있다. 최근에는 더 많은 옵션이 제공된다. ...

1일 전

러스트 1.58.1 공개··· “취약한 경합 조건 수정”

개발팀에 따르면 공격자는 이 취약점을 통해 권한 있는 프로그램을 속여 액세스하거나, 삭제할 수 없는 파일 및 디렉토리를 제거할 수 있다.    러스트 1.58에 이어 지난 1월 20일 공개된 이 포인트 릴리즈는 std::fs::remove_dir_all 표준 라이브러리 함수의 경합 조건(race condition)을 수정했다. 개발팀은 해당 취약점이 CVE-2022-21658로 지정됐다고 밝히면서 권고사항을 게시했다.  이 보안 문제를 통해 공격자는 권한 있는 프로그램을 속여 액세스하거나, 삭제할 수 없는 파일 및 디렉토리를 제거할 수 있다. 러스트 버전 1.0.0~1.58.0은 이 취약점의 영향을 받는다. 사용자는 툴체인을 업데이트하고, 업데이트된 컴파일러로 프로그램을 빌드하는 게 좋다고 개발팀은 권장했다.  또한 러스트 1.58.1은 러스트 1.58에서 도입된 진단 및 도구의 여러 회귀를 해결한다.  • non_send_fields_in_send_ty 클리피 린트(Clippy lint)는 오탐(false positives)이 너무 많은 것으로 확인돼 ‘nursery’라는 실험적 린트 그룹으로 이동됐다.  • useless_format 클리피 린트가 러스트 1.58에 도입된 형식 문자열에서 캡처된 식별자를 처리하도록 업데이트됐다.  • 표준 입력을 통해 전달될 때 생성된 파일이 형식화되는 것을 방지하는 Rustfmt의 회귀가 수정됐다.  • 경우에 따라 rustc에서 잘못된 오류 메시지가 표시되는 문제가 수정됐다.  ciokr@idg.co.kr

러스트 개발자 프로그래밍 언어 개발 언어 취약점

5일 전

개발팀에 따르면 공격자는 이 취약점을 통해 권한 있는 프로그램을 속여 액세스하거나, 삭제할 수 없는 파일 및 디렉토리를 제거할 수 있다.    러스트 1.58에 이어 지난 1월 20일 공개된 이 포인트 릴리즈는 std::fs::remove_dir_all 표준 라이브러리 함수의 경합 조건(race condition)을 수정했다. 개발팀은 해당 취약점이 CVE-2022-21658로 지정됐다고 밝히면서 권고사항을 게시했다.  이 보안 문제를 통해 공격자는 권한 있는 프로그램을 속여 액세스하거나, 삭제할 수 없는 파일 및 디렉토리를 제거할 수 있다. 러스트 버전 1.0.0~1.58.0은 이 취약점의 영향을 받는다. 사용자는 툴체인을 업데이트하고, 업데이트된 컴파일러로 프로그램을 빌드하는 게 좋다고 개발팀은 권장했다.  또한 러스트 1.58.1은 러스트 1.58에서 도입된 진단 및 도구의 여러 회귀를 해결한다.  • non_send_fields_in_send_ty 클리피 린트(Clippy lint)는 오탐(false positives)이 너무 많은 것으로 확인돼 ‘nursery’라는 실험적 린트 그룹으로 이동됐다.  • useless_format 클리피 린트가 러스트 1.58에 도입된 형식 문자열에서 캡처된 식별자를 처리하도록 업데이트됐다.  • 표준 입력을 통해 전달될 때 생성된 파일이 형식화되는 것을 방지하는 Rustfmt의 회귀가 수정됐다.  • 경우에 따라 rustc에서 잘못된 오류 메시지가 표시되는 문제가 수정됐다.  ciokr@idg.co.kr

5일 전

아이파이썬 8.0 출시··· “코드 포맷팅, 역추적 등 개선”

‘아이파이썬(IPython)’의 버전 8이 출시됐다. 이번 업데이트에서는 코드 포맷팅, 자동 제안, 역추적 기능 등이 개선됐다.     지난 1월 12일(현지 시각) 7.0 릴리즈 이후 3년 만에 ‘아이파이썬 8(IPython 8)’이 공개됐다. 개발팀에 따르면 이번 업데이트의 주요 기능 중 하나는 CLI에서 black으로 자동 재포맷하는 것이다. black이 아이파이썬과 동일한 환경에 설치된 경우 터미널 아이파이썬은 가능하다면 CLI에서 기본적으로 코드를 다시 포맷한다.  또한 버전 8에서는 오류가 발생한 셀 번호를 표시해 오류 역추적 기능의 형식을 적절하게 지정한다. 이전에는 코드 셀에서 발생하는 오류 역추적에 파이썬 AST(Abstract Syntax Tree)를 완료하는 데 사용되는 해시를 표시했었다고 개발팀은 설명했다. 아울러 아이파이썬 8에서는 Ctrl-E, Ctrl-F 또는 오른쪽 화살표를 사용하여 자동 제안을 수락할 수 있다.  이는 fish 및 zsh 셸과 프롬프트-툴킷에서 사용할 수 있다.  아이파이썬 설치 지침은 이곳(IPython.org)에서 확인할 수 있다. 해당 문서에 의하면 이번 릴리즈는 아이파이썬 버전 1.0과 5.0 사이에서 더 이상 사용되지 않는 거의 모든 기능 및 모듈을 제거했다.  한편 아이파이썬의 목표는 대화형 및 탐색적 컴퓨팅을 위한 포괄적인 환경을 제공하는 것이다. 이 파이썬 REPL은 ipykernel을 통해 주피터 커널(Jupyter Kernel)에 전원을 공급하고, 탭 완성, 향상된 역추적, 여러 줄 편집, 순수한 파이썬 스크립트 위에 몇 가지 유용한 기능 등을 제공한다. ciokr@idg.co.kr

파이썬 아이파이썬 개발자 개발 언어 프로그래밍 언어

2022.01.14

‘아이파이썬(IPython)’의 버전 8이 출시됐다. 이번 업데이트에서는 코드 포맷팅, 자동 제안, 역추적 기능 등이 개선됐다.     지난 1월 12일(현지 시각) 7.0 릴리즈 이후 3년 만에 ‘아이파이썬 8(IPython 8)’이 공개됐다. 개발팀에 따르면 이번 업데이트의 주요 기능 중 하나는 CLI에서 black으로 자동 재포맷하는 것이다. black이 아이파이썬과 동일한 환경에 설치된 경우 터미널 아이파이썬은 가능하다면 CLI에서 기본적으로 코드를 다시 포맷한다.  또한 버전 8에서는 오류가 발생한 셀 번호를 표시해 오류 역추적 기능의 형식을 적절하게 지정한다. 이전에는 코드 셀에서 발생하는 오류 역추적에 파이썬 AST(Abstract Syntax Tree)를 완료하는 데 사용되는 해시를 표시했었다고 개발팀은 설명했다. 아울러 아이파이썬 8에서는 Ctrl-E, Ctrl-F 또는 오른쪽 화살표를 사용하여 자동 제안을 수락할 수 있다.  이는 fish 및 zsh 셸과 프롬프트-툴킷에서 사용할 수 있다.  아이파이썬 설치 지침은 이곳(IPython.org)에서 확인할 수 있다. 해당 문서에 의하면 이번 릴리즈는 아이파이썬 버전 1.0과 5.0 사이에서 더 이상 사용되지 않는 거의 모든 기능 및 모듈을 제거했다.  한편 아이파이썬의 목표는 대화형 및 탐색적 컴퓨팅을 위한 포괄적인 환경을 제공하는 것이다. 이 파이썬 REPL은 ipykernel을 통해 주피터 커널(Jupyter Kernel)에 전원을 공급하고, 탭 완성, 향상된 역추적, 여러 줄 편집, 순수한 파이썬 스크립트 위에 몇 가지 유용한 기능 등을 제공한다. ciokr@idg.co.kr

2022.01.14

디노, 자바스크립트 표준 기구 ‘ECMA 인터내셔널’ 합류

디노 컴퍼니(Deno Company)가 자바스크립트 표준 개발을 감독하는 표준 기구에 합류했다. ‘디노(Deno)’는 노드.js(Node.js)의 대안으로 개발된 자바스크립트/타입스크립트 런타임이다.    디노 컴퍼니의 엔지니어 루카 카소나토는 지난 12월 13일 공식 블로그에 (디노 컴퍼니가) ECMA 인터내셔널 회원이라고 밝혔다. 이는 자바스크립트의 기초가 되는 ECMA스크립트(ECMAScript) 표준인 ECMA-262를 감독하는 조직이다. 회사에 따르면 디노 컴퍼니는 TC39 워킹 그룹을 통해 자바스크립트의 다음 버전에서 다른 ECMA 회원 및 더 넓은 JS 커뮤니티와 협력할 계획이다. 디노는 모든 사용자, 특히 서버 측 자바스크립트 사용자를 지원하는 기능 및 언어 개선을 추진할 예정이라고 카소나토는 전했다.  디노에서 작업하고자 하는 기능은 다음과 같다.  • ES 모듈 그래프에서 비-JS 자산 지원 개선 • 명시적 리소스 관리 지원 개선 • 비동기 반복을 위한 광범위한 표준 라이브러리 함수 아울러 (타입스크립트가 디노 에코시스템의 핵심 부분이기 때문에) 타입스크립트와 자바스크립트를 긴밀하게 정렬할 계획이 있다고 회사 측은 덧붙였다. 카소나토는 TC39 워킹 그룹에서 디노의 핵심 대표자가 될 예정이다.  한편 자바스크립트 표준의 최신 버전 ‘ECMA스크립트 2021(ECMAScript 2021)’은 지난 6월 승인됐다. 또한 지난 7월 TC39 워킹 그룹은 개발자가 보안 프로그램을 생성할 수 있도록 지원하기 위해 자바스크립트 보안에 중점을 둔 TC39-TG3 워킹 그룹을 구성했다. ciokr@idg.co.kr  

디노 디노 컴퍼니 자바스크립트 타입스트립트 개발자 개발 언어 프로그래밍 언어 ECMA 인터내셔널

2021.12.15

디노 컴퍼니(Deno Company)가 자바스크립트 표준 개발을 감독하는 표준 기구에 합류했다. ‘디노(Deno)’는 노드.js(Node.js)의 대안으로 개발된 자바스크립트/타입스크립트 런타임이다.    디노 컴퍼니의 엔지니어 루카 카소나토는 지난 12월 13일 공식 블로그에 (디노 컴퍼니가) ECMA 인터내셔널 회원이라고 밝혔다. 이는 자바스크립트의 기초가 되는 ECMA스크립트(ECMAScript) 표준인 ECMA-262를 감독하는 조직이다. 회사에 따르면 디노 컴퍼니는 TC39 워킹 그룹을 통해 자바스크립트의 다음 버전에서 다른 ECMA 회원 및 더 넓은 JS 커뮤니티와 협력할 계획이다. 디노는 모든 사용자, 특히 서버 측 자바스크립트 사용자를 지원하는 기능 및 언어 개선을 추진할 예정이라고 카소나토는 전했다.  디노에서 작업하고자 하는 기능은 다음과 같다.  • ES 모듈 그래프에서 비-JS 자산 지원 개선 • 명시적 리소스 관리 지원 개선 • 비동기 반복을 위한 광범위한 표준 라이브러리 함수 아울러 (타입스크립트가 디노 에코시스템의 핵심 부분이기 때문에) 타입스크립트와 자바스크립트를 긴밀하게 정렬할 계획이 있다고 회사 측은 덧붙였다. 카소나토는 TC39 워킹 그룹에서 디노의 핵심 대표자가 될 예정이다.  한편 자바스크립트 표준의 최신 버전 ‘ECMA스크립트 2021(ECMAScript 2021)’은 지난 6월 승인됐다. 또한 지난 7월 TC39 워킹 그룹은 개발자가 보안 프로그램을 생성할 수 있도록 지원하기 위해 자바스크립트 보안에 중점을 둔 TC39-TG3 워킹 그룹을 구성했다. ciokr@idg.co.kr  

2021.12.15

젯브레인, ‘코틀린 1.6.0’ 출시··· 메모리 관리자 지원

젯브레인에서 만든 JVM, 웹, 모바일 개발용 언어의 최신 업데이트 ‘코틀린 1.6.0’이 공식 출시됐다. 이번 릴리즈에서는 네이티브 개발을 위한 새로운 메모리 관리자가 안정화 버전으로 제공된다.    회사에 따르면 코드를 네이티브 바이너리로 컴파일하는 코틀린/네이티브용 메모리 관리자는 (코틀린에서) 일관된 개발 경험을 제공할 수 있도록 지원한다. 메모리 관리자는 스레드 간의 객체 공유 제한을 해제한다. 또한 누수 없는 동시 프로그래밍 기본 요소를 제공한다. 이는 안전하며, 별도의 관리나 주석이 필요 없다고 젯브레인은 덧붙였다.  지난 11월 16일 공개된 코틀린 1.6.0을 설치하면 새로운 메모리 관리자를 디폴트로 사용할 수 있다. 최신 릴리즈 설치 지침은 공식 블로그에서 확인할 수 있다. 젯브레인 인텔리J 아이디어(JetBrains IntelliJ Idea) 또는 안드로이드 스튜디오 IDE(Android Studio IDE) 사용자는 자동으로 업데이트할 수 있다.  이 밖에 코틀린 1.6.0의 새로운 기능 및 개선사항은 다음과 같다.  • 코틀린/네이티브에서 LLVM 종속성이 개선됐다. LLVM 버전이 11.1.0으로 업데이트됐으며, 종속성 크기 감소 등의 이점을 지원한다.  • 이제 when 문이 완전하지 않으면 봉인된 when 문에서 컴파일러 경고를 생성한다. 코틀린 1.5.30에서 프리뷰로 지원됐던 해당 기능은 (최신 릴리즈에서) 안정화 버전으로 제공된다.  • suspend 함수 유형을 슈퍼 인터페이스로 구현하기 위한 지원이 안정화됐다. 이는 코틀린 코루틴 디자인에서는 누락된 부분 중 하나였다. 아울러 일반 함수 유형에서 일시중단 함수 유형으로의 변환이 안정화됐다. 이제 개발자는 일시중단이 매개변수로 예상되는 일반 함수 유형의 표현식을 전달할 수 있다. 컴파일러는 자동으로 변환을 수행한다. 이 기능은 코틀린에서 일반 함수와 일시중단 함수 간의 불일치를 수정한다.  ...

젯브레인 코틀린 프로그래밍 언어 개발 언어 자바 웹 개발 모바일 개발 소프트웨어 개발

2021.11.22

젯브레인에서 만든 JVM, 웹, 모바일 개발용 언어의 최신 업데이트 ‘코틀린 1.6.0’이 공식 출시됐다. 이번 릴리즈에서는 네이티브 개발을 위한 새로운 메모리 관리자가 안정화 버전으로 제공된다.    회사에 따르면 코드를 네이티브 바이너리로 컴파일하는 코틀린/네이티브용 메모리 관리자는 (코틀린에서) 일관된 개발 경험을 제공할 수 있도록 지원한다. 메모리 관리자는 스레드 간의 객체 공유 제한을 해제한다. 또한 누수 없는 동시 프로그래밍 기본 요소를 제공한다. 이는 안전하며, 별도의 관리나 주석이 필요 없다고 젯브레인은 덧붙였다.  지난 11월 16일 공개된 코틀린 1.6.0을 설치하면 새로운 메모리 관리자를 디폴트로 사용할 수 있다. 최신 릴리즈 설치 지침은 공식 블로그에서 확인할 수 있다. 젯브레인 인텔리J 아이디어(JetBrains IntelliJ Idea) 또는 안드로이드 스튜디오 IDE(Android Studio IDE) 사용자는 자동으로 업데이트할 수 있다.  이 밖에 코틀린 1.6.0의 새로운 기능 및 개선사항은 다음과 같다.  • 코틀린/네이티브에서 LLVM 종속성이 개선됐다. LLVM 버전이 11.1.0으로 업데이트됐으며, 종속성 크기 감소 등의 이점을 지원한다.  • 이제 when 문이 완전하지 않으면 봉인된 when 문에서 컴파일러 경고를 생성한다. 코틀린 1.5.30에서 프리뷰로 지원됐던 해당 기능은 (최신 릴리즈에서) 안정화 버전으로 제공된다.  • suspend 함수 유형을 슈퍼 인터페이스로 구현하기 위한 지원이 안정화됐다. 이는 코틀린 코루틴 디자인에서는 누락된 부분 중 하나였다. 아울러 일반 함수 유형에서 일시중단 함수 유형으로의 변환이 안정화됐다. 이제 개발자는 일시중단이 매개변수로 예상되는 일반 함수 유형의 표현식을 전달할 수 있다. 컴파일러는 자동으로 변환을 수행한다. 이 기능은 코틀린에서 일반 함수와 일시중단 함수 간의 불일치를 수정한다.  ...

2021.11.22

타입스크립트 4.5 정식 출시··· “프로미스 개선 外”

‘타입스크립트(TypeScript)’의 최신 GA 릴리즈에 Promise 재귀를 모델링하기 위한 새로운 Awaited 유틸리티 유형이 도입됐다. 한편 노드.js용 ESCA스크립트 모듈 지원은 다음 버전으로 연기됐다.  자바스크립트에 정적 타입 문법을 적용한 오픈소스 프로그래밍 언어의 최신 릴리즈 ‘타입스크립트 4.5’가 정식 출시됐다.    이번 릴리즈에는 새로운 유틸리티 유형(Awaited)이 추가됐다. async 함수의 await 또는 Promises 객체의 .then() 메소드와 같은 모델링 작업을 지원한다. 하지만 이와 함께 타입스크립트 4.5에서 지원될 예정이었던 노드.js 12의 ECMA스크립트 모듈(ECMAScript Module; ESM)은 다음 버전으로 미뤄졌다.  마이크로소프트에 따르면 타입스크립트와 연동할 수 있는 노드.js는 지난 몇 년 동안 재사용을 위해 자바스크립트 코드를 패키징할 수 있는 ECMA스크립트 모듈을 지원하고자 해왔다. 노드.js가 다른 모듈 시스템(CommonJS)에 구축됐기 때문에 이를 지원하기 어려웠지만 이제 노드.js의 ESM 지원이 노드.js 버전 12 이상에서 대부분 구현됐다고 회사 측은 밝힌 바 있다.  타입스크립트 4.5의 릴리즈 캔디데이트는 지난 11월 2일 공개됐으며, GA 버전은 11월 17일 발표됐다. 누겟(NuGet) 또는 NPM을 통해 설치할 수 있다.    npm install typescript 이 밖에 타입스크립트 4.5의 새로운 기능 및 개선사항은 다음과 같다.  • JSON 파일의 과도한 realpath 호출로 인해 --build 모드에서 성능 회귀가 추가됐다.  • node_modules의 lib 설정을 향상하기 위해 특정 내장 lib을 재정의하는 간편한 방법이 추가됐다. • 속도 향상을 위해 노드.js realpathSync 기능의 시스템 네이티브 구현이 이제 모든...

마이크로소프트 타입스크립트 자바스크립트 프로그래밍 언어 개발 언어

2021.11.19

‘타입스크립트(TypeScript)’의 최신 GA 릴리즈에 Promise 재귀를 모델링하기 위한 새로운 Awaited 유틸리티 유형이 도입됐다. 한편 노드.js용 ESCA스크립트 모듈 지원은 다음 버전으로 연기됐다.  자바스크립트에 정적 타입 문법을 적용한 오픈소스 프로그래밍 언어의 최신 릴리즈 ‘타입스크립트 4.5’가 정식 출시됐다.    이번 릴리즈에는 새로운 유틸리티 유형(Awaited)이 추가됐다. async 함수의 await 또는 Promises 객체의 .then() 메소드와 같은 모델링 작업을 지원한다. 하지만 이와 함께 타입스크립트 4.5에서 지원될 예정이었던 노드.js 12의 ECMA스크립트 모듈(ECMAScript Module; ESM)은 다음 버전으로 미뤄졌다.  마이크로소프트에 따르면 타입스크립트와 연동할 수 있는 노드.js는 지난 몇 년 동안 재사용을 위해 자바스크립트 코드를 패키징할 수 있는 ECMA스크립트 모듈을 지원하고자 해왔다. 노드.js가 다른 모듈 시스템(CommonJS)에 구축됐기 때문에 이를 지원하기 어려웠지만 이제 노드.js의 ESM 지원이 노드.js 버전 12 이상에서 대부분 구현됐다고 회사 측은 밝힌 바 있다.  타입스크립트 4.5의 릴리즈 캔디데이트는 지난 11월 2일 공개됐으며, GA 버전은 11월 17일 발표됐다. 누겟(NuGet) 또는 NPM을 통해 설치할 수 있다.    npm install typescript 이 밖에 타입스크립트 4.5의 새로운 기능 및 개선사항은 다음과 같다.  • JSON 파일의 과도한 realpath 호출로 인해 --build 모드에서 성능 회귀가 추가됐다.  • node_modules의 lib 설정을 향상하기 위해 특정 내장 lib을 재정의하는 간편한 방법이 추가됐다. • 속도 향상을 위해 노드.js realpathSync 기능의 시스템 네이티브 구현이 이제 모든...

2021.11.19

코틀린 최신 로드맵 공개··· “컴파일러 및 모바일 기능 개선”

젯브레인에서 만든 JVM, 자바스크립트, 안드로이드 개발용 프로그래밍 언어 ‘코틀린(Kotlin)’의 최신 로드맵이 공개됐다. 해당 로드맵에 따르면 컴파일러 및 모바일 기능이 개선될 예정이다.  코틀린 1.7.0과 그 이후 버전에 대한 로드맵이 젯브레인 공식 블로그에서 지난 11월 10일(현지 시각) 발표됐다. 현재 사용할 수 있는 최신 버전은 코틀린 1.5.31이다(11월 17일 기준).    젯브레인은 컴파일러와 관련해 ‘K2 컴파일러 프론트엔드’ 작업을 알파 상태로 만드는 데 주력하고 있다고 밝혔다. K2는 코드 분석 그리고 IR(Intermediate Representation)로의 변환을 담당하는 프론트엔드와 함께, 컴파일 속도가 평균 2배 더 빠른 언어 컴파일러라고 코틀린 개발팀은 설명했다.  또한 K2 알파 릴리즈에서는 새로운 플러그인 인프라를 프리뷰로 제공할 계획이다. 아울러 K2 컴파일러로 멀티플랫폼 프로젝트를 구축할 수 있는 비-JVM 백엔드 지원에도 투자하고 있다고 개발팀은 덧붙였다.  이 밖에 최신 로드맵에 업데이트된 내용은 다음과 같다.  • iOS와 안드로이드를 포함한 플랫폼 간 코드 공유 기술 ‘KMM(Kotlin Multiplatform Mobile)’이 2022년 봄에 베타 릴리즈 단계로 진입한다. 해당 버전에서는 코드 강조 표시, 탐색 및 완성, 디버깅, 빌드 도구 안정성 문제가 수정되는 한편 동시성도 개선될 예정이다.  • 새로운 네임스페이스 개념의 프로토타입이 제공될 계획이다. 이를 통해 모든 클래스가 자동으로 소유하는 인스턴스 없이 임시 객체를 제공할 수 있다. 네임스페이스 멤버는 JVM의 정적 멤버로 컴파일된다. 이 계획은 자바(Java) 정적 메소드와의 상호 운용성을 개선하고, 모든 자바 유형에서 확장을 가능하게 하기 위해 고안됐다.  • 코드 커버리지를 측정하는 그래들(Gradle) 플러그인 ‘코버(Kover)’가 도입된다. ...

코틀린 프로그래밍 언어 개발 언어 젯브레인 모바일 개발 소프트웨어 개발 자바 JVM 자바스크립트 안드로이드 iOS 컴파일러

2021.11.17

젯브레인에서 만든 JVM, 자바스크립트, 안드로이드 개발용 프로그래밍 언어 ‘코틀린(Kotlin)’의 최신 로드맵이 공개됐다. 해당 로드맵에 따르면 컴파일러 및 모바일 기능이 개선될 예정이다.  코틀린 1.7.0과 그 이후 버전에 대한 로드맵이 젯브레인 공식 블로그에서 지난 11월 10일(현지 시각) 발표됐다. 현재 사용할 수 있는 최신 버전은 코틀린 1.5.31이다(11월 17일 기준).    젯브레인은 컴파일러와 관련해 ‘K2 컴파일러 프론트엔드’ 작업을 알파 상태로 만드는 데 주력하고 있다고 밝혔다. K2는 코드 분석 그리고 IR(Intermediate Representation)로의 변환을 담당하는 프론트엔드와 함께, 컴파일 속도가 평균 2배 더 빠른 언어 컴파일러라고 코틀린 개발팀은 설명했다.  또한 K2 알파 릴리즈에서는 새로운 플러그인 인프라를 프리뷰로 제공할 계획이다. 아울러 K2 컴파일러로 멀티플랫폼 프로젝트를 구축할 수 있는 비-JVM 백엔드 지원에도 투자하고 있다고 개발팀은 덧붙였다.  이 밖에 최신 로드맵에 업데이트된 내용은 다음과 같다.  • iOS와 안드로이드를 포함한 플랫폼 간 코드 공유 기술 ‘KMM(Kotlin Multiplatform Mobile)’이 2022년 봄에 베타 릴리즈 단계로 진입한다. 해당 버전에서는 코드 강조 표시, 탐색 및 완성, 디버깅, 빌드 도구 안정성 문제가 수정되는 한편 동시성도 개선될 예정이다.  • 새로운 네임스페이스 개념의 프로토타입이 제공될 계획이다. 이를 통해 모든 클래스가 자동으로 소유하는 인스턴스 없이 임시 객체를 제공할 수 있다. 네임스페이스 멤버는 JVM의 정적 멤버로 컴파일된다. 이 계획은 자바(Java) 정적 메소드와의 상호 운용성을 개선하고, 모든 자바 유형에서 확장을 가능하게 하기 위해 고안됐다.  • 코드 커버리지를 측정하는 그래들(Gradle) 플러그인 ‘코버(Kover)’가 도입된다. ...

2021.11.17

파이썬이 마침내 ‘GIL’을 제거할 수 있을까?··· 새 제안 공개 

C파이썬 런타임을 변경해 멀티스레드 성능을 강화하는 새로운 프로젝트가 제안됐다. 파이썬 개발팀도 해당 개념 증명에 관심을 보였다.  파이썬의 고질적인 약점(멀티스레드 환경에서 잘 확장되지 않는다는 것)이 해당 프로그래밍 언어 개발팀의 새로운 목표가 될지도 모른다. 지난 10월 7일(현지 시각) 개발자 샘 그로스가 파이썬의 참조 구현 C파이썬의 핵심 구성요소 ‘GIL(Global Interpreter Lock)’에 관한 변경사항을 제안했다.    만약 파이썬 개발팀에서 그의 제안을 받아들인다면 이는 파이썬이 런타임에서 멀티스레드로부터 객체 액세스를 직렬화하는 방식을 변경하고, 멀티스레드 성능을 크게 향상시킬 것으로 예상된다.  GIL은 오랫동안 C파이썬(그리고 파이썬)에서 더 나은 멀티스레드 성능의 장애물로 간주돼 왔다. 수년 동안 이를 제거하려는 많은 시도가 있었다. 하지만 대다수의 기존 파이썬 애플리케이션을 느리게 만들어 단일 스레드 성능을 저하시키는 문제를 해결할 수 없었다. 스레드 및 멀티프로세싱을 다루는 파이썬의 현 메타포는 높은 병렬처리가 불가능한 건 아니다. 하지만 개발자가 작업을 완료하기 위해서는 다스크(Dask) 등의 서드파티 모듈을 사용해야 했다. 새로운 제안은 파이썬 객체의 참조 카운팅 방식을 변경하여 객체를 소유한 스레드의 참조가 다른 스레드의 참조와 다르게 처리되도록 한다.  그로스에 따르면 단일 스레드 성능 벤치마크에서 GIL를 제거한 새로운 인터프리터는 C파이썬 3.9 인터프리터보다 약 10% 빠른 것으로 나타났다.  또한 일부 벤치마크에서 멀티스레드 성능은 새로운 스레드에 따라 거의 선형적으로 확장됐다. 예를 들면 20개의 스레드를 사용할 때 한 벤치마크에서는 최대 18.1배, 다른 벤치마크에서는 최대 19.8배 빨라졌다고 그는 언급했다. 이어서 이는 파이썬의 내부(예: C파이썬)에서 작동하는 기존 파이썬 라이브러리를 상당 수 다시 작성해야 할 만큼 큰 변경사항이라...

파이썬 프로그래밍 언어 개발 언어 C파이썬 GIL 멀티스레드

2021.10.15

C파이썬 런타임을 변경해 멀티스레드 성능을 강화하는 새로운 프로젝트가 제안됐다. 파이썬 개발팀도 해당 개념 증명에 관심을 보였다.  파이썬의 고질적인 약점(멀티스레드 환경에서 잘 확장되지 않는다는 것)이 해당 프로그래밍 언어 개발팀의 새로운 목표가 될지도 모른다. 지난 10월 7일(현지 시각) 개발자 샘 그로스가 파이썬의 참조 구현 C파이썬의 핵심 구성요소 ‘GIL(Global Interpreter Lock)’에 관한 변경사항을 제안했다.    만약 파이썬 개발팀에서 그의 제안을 받아들인다면 이는 파이썬이 런타임에서 멀티스레드로부터 객체 액세스를 직렬화하는 방식을 변경하고, 멀티스레드 성능을 크게 향상시킬 것으로 예상된다.  GIL은 오랫동안 C파이썬(그리고 파이썬)에서 더 나은 멀티스레드 성능의 장애물로 간주돼 왔다. 수년 동안 이를 제거하려는 많은 시도가 있었다. 하지만 대다수의 기존 파이썬 애플리케이션을 느리게 만들어 단일 스레드 성능을 저하시키는 문제를 해결할 수 없었다. 스레드 및 멀티프로세싱을 다루는 파이썬의 현 메타포는 높은 병렬처리가 불가능한 건 아니다. 하지만 개발자가 작업을 완료하기 위해서는 다스크(Dask) 등의 서드파티 모듈을 사용해야 했다. 새로운 제안은 파이썬 객체의 참조 카운팅 방식을 변경하여 객체를 소유한 스레드의 참조가 다른 스레드의 참조와 다르게 처리되도록 한다.  그로스에 따르면 단일 스레드 성능 벤치마크에서 GIL를 제거한 새로운 인터프리터는 C파이썬 3.9 인터프리터보다 약 10% 빠른 것으로 나타났다.  또한 일부 벤치마크에서 멀티스레드 성능은 새로운 스레드에 따라 거의 선형적으로 확장됐다. 예를 들면 20개의 스레드를 사용할 때 한 벤치마크에서는 최대 18.1배, 다른 벤치마크에서는 최대 19.8배 빨라졌다고 그는 언급했다. 이어서 이는 파이썬의 내부(예: C파이썬)에서 작동하는 기존 파이썬 라이브러리를 상당 수 다시 작성해야 할 만큼 큰 변경사항이라...

2021.10.15

“파이썬, C언어·자바 제치고 1위 등극” 티오베 

파이썬이 2021년 10월 티오베 인덱스에서 C언어와 자바를 제치고 처음으로 선두에 올라섰다.    파이썬이 이번 달 티오베 프로그래밍 언어 인기 지수에서 1위를 차지했다. 지금까지 20년 넘는 기간 동안 ‘C’와 ‘자바’가 선두를 지키고 있던 이 지수에서 1위를 기록한 세 번째 언어가 됐다고 티오베는 밝혔다.  10월 6일(현지 시각) 공개된 인덱스를 통해 파이썬은 지난 2001년 6월 처음 발표된 티오베 인덱스에서 1위를 차지한 언어로 C 그리고 자바와 어깨를 나란히 하게 됐다. 한편 티오베 언어 순위는 구글, 빙, 야후, 위키피디아 등의 검색 엔진에서 검색된 수치를 기반으로 하며, 전 세계에서 해당 언어를 사용하는 소프트웨어 엔지니어, 교육과정, 소프트웨어 개발업체 수도 순위 산정에 반영한다. 파이썬의 순위 상승은 예상치 못한 결과가 아니었다. 최근 몇 년 동안 이 언어가 큰 인기를 얻었기 때문이다. 티오베는 파이썬의 이점으로 우수한 생태계, 사용 편의성, 풍부한 라이브러리, 빠른 편집 실행 주기 등을 꼽았다. 이어서 “C와 자바의 장기 집권은 끝났다”라고 회사 측은 말했다. 이 소프트웨어 품질 서비스 회사는 파이썬이 향후 몇 달 동안 C와 엎치락뒤치락 할 순 있지만 결국에는 1위 자리를 차지할 것으로 예상하고 있다. 구글에서 특정 프로그래밍 언어 튜토리얼이 얼마나 많이 검색됐는지를 기준으로 하는 PYPL(Popularity of Programming Language) 인덱스에서 파이썬은 이미 1위를 차지하고 있다. 2021년 10월 티오베 인덱스 톱 10은 다음과 같다. 1. 파이썬(11.27%) 2. C 언어(11.16%) 3. 자바(10.46%) 4. C++(7.5%) 5. C#(5.26%) 6. 비주얼 베이직(5.24%) 7. 자바스크립트(2.19%) 8. SQL(2.17%) 9. PHP(2.1%) 10. 어셈블리(2.06%) 2021년 10월 PYPL 인덱스 톱 10은 다음과 같다. 1. 파이썬(29.6...

파이썬 C 자바 티오베 프로그래밍 언어 개발 언어

2021.10.13

파이썬이 2021년 10월 티오베 인덱스에서 C언어와 자바를 제치고 처음으로 선두에 올라섰다.    파이썬이 이번 달 티오베 프로그래밍 언어 인기 지수에서 1위를 차지했다. 지금까지 20년 넘는 기간 동안 ‘C’와 ‘자바’가 선두를 지키고 있던 이 지수에서 1위를 기록한 세 번째 언어가 됐다고 티오베는 밝혔다.  10월 6일(현지 시각) 공개된 인덱스를 통해 파이썬은 지난 2001년 6월 처음 발표된 티오베 인덱스에서 1위를 차지한 언어로 C 그리고 자바와 어깨를 나란히 하게 됐다. 한편 티오베 언어 순위는 구글, 빙, 야후, 위키피디아 등의 검색 엔진에서 검색된 수치를 기반으로 하며, 전 세계에서 해당 언어를 사용하는 소프트웨어 엔지니어, 교육과정, 소프트웨어 개발업체 수도 순위 산정에 반영한다. 파이썬의 순위 상승은 예상치 못한 결과가 아니었다. 최근 몇 년 동안 이 언어가 큰 인기를 얻었기 때문이다. 티오베는 파이썬의 이점으로 우수한 생태계, 사용 편의성, 풍부한 라이브러리, 빠른 편집 실행 주기 등을 꼽았다. 이어서 “C와 자바의 장기 집권은 끝났다”라고 회사 측은 말했다. 이 소프트웨어 품질 서비스 회사는 파이썬이 향후 몇 달 동안 C와 엎치락뒤치락 할 순 있지만 결국에는 1위 자리를 차지할 것으로 예상하고 있다. 구글에서 특정 프로그래밍 언어 튜토리얼이 얼마나 많이 검색됐는지를 기준으로 하는 PYPL(Popularity of Programming Language) 인덱스에서 파이썬은 이미 1위를 차지하고 있다. 2021년 10월 티오베 인덱스 톱 10은 다음과 같다. 1. 파이썬(11.27%) 2. C 언어(11.16%) 3. 자바(10.46%) 4. C++(7.5%) 5. C#(5.26%) 6. 비주얼 베이직(5.24%) 7. 자바스크립트(2.19%) 8. SQL(2.17%) 9. PHP(2.1%) 10. 어셈블리(2.06%) 2021년 10월 PYPL 인덱스 톱 10은 다음과 같다. 1. 파이썬(29.6...

2021.10.13

패턴 매칭 지원 外··· '파이썬 3.10', 무엇이 달라졌을까

파이썬의 최신 버전(v3.10)은 강력한 패턴 매칭, 개선된 오류 보고, 래핑된 함수에 관한 스마트한 입력 구문 등을 제공한다.   파이썬 3.10(Python 3.10)이 지난 10월 4일 출시됐다. 용감무쌍한 파이썬 개발자라고 해도 적절한 예방 조치(예: 가상 환경 사용 등)와 함께 코드를 테스트하는 게 좋다.  엄밀히 말해서 파이썬 3.10에는 진정으로 새로운 기능이 많진 않지만 그중 하나인 ‘구조적 패턴 매칭(Structural Pattern Matching)’은 async 이후 언어 구문에 가장 중요한 추가 기능일지도 모른다. 여기에서는 파이썬 3.10의 모든 새로운 기능과 코드를 지원하는 방법을 살펴본다.    구조적 패턴 매칭  구조적 패턴 매칭을 사용하면 가능한 값 세트 중 하나와 변수를 일치시킬 수 있다. 또 값의 패턴(예: 특정 속성이 특정 값으로 설정된 객체)과도 일치시킬 수 있다. 이를 통해 가능성의 범위가 크게 확장되고, 다양한 시나리오를 포함하는 코드를 신속하게 작성할 수 있다. 예는 아래와 같다. 패턴 매칭을 사용하는 방법에 관한 자세한 내용은 이곳에서 확인할 수 있다.    command = input() match command.split():     case ["quit"]:         quit()     case ["load", filename]:         load_from(filename)     case ["save", filename]:         save_to(filename)     case _:         print (f"Command '{command}' ...

파이썬 개발 언어 프로그래밍 언어 패턴 매칭

2021.10.06

파이썬의 최신 버전(v3.10)은 강력한 패턴 매칭, 개선된 오류 보고, 래핑된 함수에 관한 스마트한 입력 구문 등을 제공한다.   파이썬 3.10(Python 3.10)이 지난 10월 4일 출시됐다. 용감무쌍한 파이썬 개발자라고 해도 적절한 예방 조치(예: 가상 환경 사용 등)와 함께 코드를 테스트하는 게 좋다.  엄밀히 말해서 파이썬 3.10에는 진정으로 새로운 기능이 많진 않지만 그중 하나인 ‘구조적 패턴 매칭(Structural Pattern Matching)’은 async 이후 언어 구문에 가장 중요한 추가 기능일지도 모른다. 여기에서는 파이썬 3.10의 모든 새로운 기능과 코드를 지원하는 방법을 살펴본다.    구조적 패턴 매칭  구조적 패턴 매칭을 사용하면 가능한 값 세트 중 하나와 변수를 일치시킬 수 있다. 또 값의 패턴(예: 특정 속성이 특정 값으로 설정된 객체)과도 일치시킬 수 있다. 이를 통해 가능성의 범위가 크게 확장되고, 다양한 시나리오를 포함하는 코드를 신속하게 작성할 수 있다. 예는 아래와 같다. 패턴 매칭을 사용하는 방법에 관한 자세한 내용은 이곳에서 확인할 수 있다.    command = input() match command.split():     case ["quit"]:         quit()     case ["load", filename]:         load_from(filename)     case ["save", filename]:         save_to(filename)     case _:         print (f"Command '{command}' ...

2021.10.06

스위프트 5.5 출시··· “비동기 함수 및 구조적 동시성 제공”

애플에서 C 기반 언어를 대체하기 위해 개발한 프로그래밍 언어 스위프트의 최신 버전이 공개됐다. 이번 업데이트는 동시성과 패키지 컬렉션을 중심으로 한 기능을 지원한다.    지난 9월 20일 ‘대규모 릴리즈(massive release)’라고 기술된 ‘스위프트 5.5(Swift 5.5)’가 출시됐다. 이곳에서 액세스할 수 있다. 해당 릴리즈는 스위프트의 이전 버전인 ‘오브젝티브-C(Objective-C)’와의 동시성 상호운용성을 제공한다.  이는 오브젝티브-C의 비동기 기능에 관한 규칙 기반 표현과 스위프트 동시성 기능을 연결하는 제안이다. 스위프트의 동시성 모델에서 비동기 오브젝티드-C API를 즉시 사용할 수 있도록 하는 게 목표라고 개발팀은 설명했다.  릴리즈 노트에 따르면 최신 스위프트 개발에는 많은 비동기 프로그래밍이 포함되지만 API는 사용하기 어려웠다. 스위프트 5.5의 async/await 기능은 비동기 함수의 의미를 정의한다. 이 제안은 전체 프로세스를 더 자연스럽게 그리고 오류가 덜 발생하도록 하기 위한 것이다. 스위프트 async/await 기능을 통해 시간 경과에 따라 많은 값을 반환하는 함수를 작성하고 사용할 수도 있다. 이 작업은 Async/Await Sequences 제안을 통해 수행됐다.  또 다른 새로운 기능인 구조적 동시성을 사용하면 인간공학적이고 예측 가능하며 효율적인 구현을 허용하는 모델과 비동기 코드를 동시에 실행할 수 있다고 개발팀은 전했다. 이 밖에 스위프트 5.5의 새로운 기능은 다음과 같다.  • ‘스위프트 패키지 관리자(Swift Package Manager; SwiftPM)’에서 패키지 컬렉션(Package Collections) 개념이 패키지 에코시스템에 도입됐다. 컬렉션은 정적 JSON 문서로 작성되며, 패키지 목록과 패키지당 추가 메타데이터를 포함한다. 웹 서버 또는 CDN과 유사한 인프라에 퍼블리싱된다. 또 스위프트PM에는 컬렉션 추가 및 제...

애플 프로그래밍 언어 개발 언어 개발자 스위프트

2021.09.23

애플에서 C 기반 언어를 대체하기 위해 개발한 프로그래밍 언어 스위프트의 최신 버전이 공개됐다. 이번 업데이트는 동시성과 패키지 컬렉션을 중심으로 한 기능을 지원한다.    지난 9월 20일 ‘대규모 릴리즈(massive release)’라고 기술된 ‘스위프트 5.5(Swift 5.5)’가 출시됐다. 이곳에서 액세스할 수 있다. 해당 릴리즈는 스위프트의 이전 버전인 ‘오브젝티브-C(Objective-C)’와의 동시성 상호운용성을 제공한다.  이는 오브젝티브-C의 비동기 기능에 관한 규칙 기반 표현과 스위프트 동시성 기능을 연결하는 제안이다. 스위프트의 동시성 모델에서 비동기 오브젝티드-C API를 즉시 사용할 수 있도록 하는 게 목표라고 개발팀은 설명했다.  릴리즈 노트에 따르면 최신 스위프트 개발에는 많은 비동기 프로그래밍이 포함되지만 API는 사용하기 어려웠다. 스위프트 5.5의 async/await 기능은 비동기 함수의 의미를 정의한다. 이 제안은 전체 프로세스를 더 자연스럽게 그리고 오류가 덜 발생하도록 하기 위한 것이다. 스위프트 async/await 기능을 통해 시간 경과에 따라 많은 값을 반환하는 함수를 작성하고 사용할 수도 있다. 이 작업은 Async/Await Sequences 제안을 통해 수행됐다.  또 다른 새로운 기능인 구조적 동시성을 사용하면 인간공학적이고 예측 가능하며 효율적인 구현을 허용하는 모델과 비동기 코드를 동시에 실행할 수 있다고 개발팀은 전했다. 이 밖에 스위프트 5.5의 새로운 기능은 다음과 같다.  • ‘스위프트 패키지 관리자(Swift Package Manager; SwiftPM)’에서 패키지 컬렉션(Package Collections) 개념이 패키지 에코시스템에 도입됐다. 컬렉션은 정적 JSON 문서로 작성되며, 패키지 목록과 패키지당 추가 메타데이터를 포함한다. 웹 서버 또는 CDN과 유사한 인프라에 퍼블리싱된다. 또 스위프트PM에는 컬렉션 추가 및 제...

2021.09.23

블로그ㅣ‘러스트(Rust)’의 미래

러스타시안 원칙(The Rustacean Principles)은 좋은 아이디어 그 이상이다. 이는 개발자들이 ‘러스트(Rust)’에 계속해서 왕관을 수여하는 이유의 핵심이다.  러스트(사전적 의미: 녹슬다)라는 이름에도 불구하고 이 프로그래밍 언어가 이렇게 빛나고 새로워 보인 적은 없었다. 지난 2016년 스택 오버플로우(Stack Overflow)의 개발자 연례 설문조사에서 러스트는 ‘가장 사랑받는(most loved)’ 언어로 선정됐다. 뒤를 이어 2017년, 2018년, 2019년, 2020년, 2021년에도 ‘가장 사랑받는’ 언어로 뽑혔다. 2022년에도 러스트를 향한 사랑은 계속될 전망이다.    러스트 커뮤니티는 여기에 안주하지 않는다. 러스트 프로그래밍 언어 프로젝트의 공동 리더 니코 마사키스, 러스트 재단의 회장 셰인 밀러, 그리고 러스트 커뮤니티의 핵심 구성원들은 러스트가 몇 년, 더 나아가 수십 년 동안 사랑받을 수 있도록 열심히 일하고 있다. 그리고 이를 실천하는 한 가지 방법이 ‘러스타시안 원칙’이다(편집자 주: 러스타시안은 러스트 사용자를 일컫는 별칭이다).  러스타시안 원칙은 이상과 현실이 부딪힐 때마다 대수롭지 않게 버려지는 모토로 취급될 수 있지만 실제로는 러스트의 장기적인 발전을 위한 강력한 가이드 역할을 한다.  러스트의 원칙적 행동 러스트 커뮤니티는 러스트를 구축 시 때때로 경쟁적인 개발 우선순위 간의 균형을 맞추기 위해 ‘러스타시안 원칙’을 발전시켰다. 이는 다음과 같다.  • 안정성(Reliable): 컴파일하면 작동한다.  • 성능(Performant): 관용적 코드가 효율적으로 실행된다.  • 지원(Supportive): 언어, 도구, 커뮤니티가 도움을 준다.  • 생산성(Productive): 적은 노력으로 많은 일을 한다.  • 투명성(Transparent): 낮은 수준의 세부 사항을 예측하고 제어할 수 있다.&nbs...

러스트 러스타시안 원칙 러스타시안 프로그래밍 언어 개발 언어 소프트웨어 개발

2021.09.14

러스타시안 원칙(The Rustacean Principles)은 좋은 아이디어 그 이상이다. 이는 개발자들이 ‘러스트(Rust)’에 계속해서 왕관을 수여하는 이유의 핵심이다.  러스트(사전적 의미: 녹슬다)라는 이름에도 불구하고 이 프로그래밍 언어가 이렇게 빛나고 새로워 보인 적은 없었다. 지난 2016년 스택 오버플로우(Stack Overflow)의 개발자 연례 설문조사에서 러스트는 ‘가장 사랑받는(most loved)’ 언어로 선정됐다. 뒤를 이어 2017년, 2018년, 2019년, 2020년, 2021년에도 ‘가장 사랑받는’ 언어로 뽑혔다. 2022년에도 러스트를 향한 사랑은 계속될 전망이다.    러스트 커뮤니티는 여기에 안주하지 않는다. 러스트 프로그래밍 언어 프로젝트의 공동 리더 니코 마사키스, 러스트 재단의 회장 셰인 밀러, 그리고 러스트 커뮤니티의 핵심 구성원들은 러스트가 몇 년, 더 나아가 수십 년 동안 사랑받을 수 있도록 열심히 일하고 있다. 그리고 이를 실천하는 한 가지 방법이 ‘러스타시안 원칙’이다(편집자 주: 러스타시안은 러스트 사용자를 일컫는 별칭이다).  러스타시안 원칙은 이상과 현실이 부딪힐 때마다 대수롭지 않게 버려지는 모토로 취급될 수 있지만 실제로는 러스트의 장기적인 발전을 위한 강력한 가이드 역할을 한다.  러스트의 원칙적 행동 러스트 커뮤니티는 러스트를 구축 시 때때로 경쟁적인 개발 우선순위 간의 균형을 맞추기 위해 ‘러스타시안 원칙’을 발전시켰다. 이는 다음과 같다.  • 안정성(Reliable): 컴파일하면 작동한다.  • 성능(Performant): 관용적 코드가 효율적으로 실행된다.  • 지원(Supportive): 언어, 도구, 커뮤니티가 도움을 준다.  • 생산성(Productive): 적은 노력으로 많은 일을 한다.  • 투명성(Transparent): 낮은 수준의 세부 사항을 예측하고 제어할 수 있다.&nbs...

2021.09.14

“파이썬, 선두 탈환에 바짝 다가섰다” 티오베

파이썬이 2021년 9월 티오베 인덱스에서 1위에 바짝 다가섰다. 티오베는 파이썬이 선두 C에 이렇게 근접한 적은 없었다고 밝혔다.  파이썬이 티오베 프로그래밍 언어 인기 지수의 정상을 코앞에 두고 있다. 파이썬은 2021년 9월 인덱스에서 현 랭킹 1위 C 언어(11.83%)에 불과 0.16%P 뒤지며 2위(11.67%)를 차지했다.     티오베는 파이썬이 언제든지 C를 능가할 수 있으며, (파이썬이 1위로 올라가면) 지금까지 20년 넘는 기간 동안 ‘C’와 ‘자바(이번 달에는 3위)’에 의해 주도되고 있었던 이 지수를 이끄는 세 번째 언어가 될 것이라고 말했다.  회사에 따르면 파이썬은 2개월 연속 2위를 차지했다. 지난해 11월 처음으로 2위에 올랐다. 티오베 언어 순위는 구글, 빙, 야후 등의 검색 엔진에서 검색된 수치를 기반으로 하며, 전 세계에서 해당 언어를 사용하는 소프트웨어 엔지니어, 교육과정, 소프트웨어 개발업체 수도 순위 산정에 반영한다. 한편 구글에서 특정 프로그래밍 언어 튜토리얼이 얼마나 많이 검색됐는지를 기준으로 하는 PYPL(Popularity of Programming Language) 인덱스에서 파이썬은 이미 1위를 차지하고 있다. 또 2021년 6월 레드몽크(RedMonk) 언어 순위에서는 자바스크립트에 이어 2위를 기록했다.  이 밖에 다른 언어를 살펴보자면, 2021년 9월 티오베 인덱스에서 구글 고(Go) 언어는 지난달 18위에서 이번 달 14위로 4계단 올라섰다. 어셈블리(Assembly) 언어는 지난달 9위에서 이번 달 8위로, 루비(Ruby)는 15위에서 13위로 상승했다.  2021년 9월 티오베 인덱스 톱 10은 다음과 같다. 1. C 언어(11.83%) 2. 파이썬(11.67%) 3. 자바(11.12%) 4. C++(7.13%) 5. C#(5.78%) 6. 비주얼 베이직(4.62%) 7. 자바스크립트(2.55%) 8. 어셈블리(2.42%) 9. P...

티오베 인덱스 프로그래밍 언어 개발 언어 파이썬 C 자바

2021.09.14

파이썬이 2021년 9월 티오베 인덱스에서 1위에 바짝 다가섰다. 티오베는 파이썬이 선두 C에 이렇게 근접한 적은 없었다고 밝혔다.  파이썬이 티오베 프로그래밍 언어 인기 지수의 정상을 코앞에 두고 있다. 파이썬은 2021년 9월 인덱스에서 현 랭킹 1위 C 언어(11.83%)에 불과 0.16%P 뒤지며 2위(11.67%)를 차지했다.     티오베는 파이썬이 언제든지 C를 능가할 수 있으며, (파이썬이 1위로 올라가면) 지금까지 20년 넘는 기간 동안 ‘C’와 ‘자바(이번 달에는 3위)’에 의해 주도되고 있었던 이 지수를 이끄는 세 번째 언어가 될 것이라고 말했다.  회사에 따르면 파이썬은 2개월 연속 2위를 차지했다. 지난해 11월 처음으로 2위에 올랐다. 티오베 언어 순위는 구글, 빙, 야후 등의 검색 엔진에서 검색된 수치를 기반으로 하며, 전 세계에서 해당 언어를 사용하는 소프트웨어 엔지니어, 교육과정, 소프트웨어 개발업체 수도 순위 산정에 반영한다. 한편 구글에서 특정 프로그래밍 언어 튜토리얼이 얼마나 많이 검색됐는지를 기준으로 하는 PYPL(Popularity of Programming Language) 인덱스에서 파이썬은 이미 1위를 차지하고 있다. 또 2021년 6월 레드몽크(RedMonk) 언어 순위에서는 자바스크립트에 이어 2위를 기록했다.  이 밖에 다른 언어를 살펴보자면, 2021년 9월 티오베 인덱스에서 구글 고(Go) 언어는 지난달 18위에서 이번 달 14위로 4계단 올라섰다. 어셈블리(Assembly) 언어는 지난달 9위에서 이번 달 8위로, 루비(Ruby)는 15위에서 13위로 상승했다.  2021년 9월 티오베 인덱스 톱 10은 다음과 같다. 1. C 언어(11.83%) 2. 파이썬(11.67%) 3. 자바(11.12%) 4. C++(7.13%) 5. C#(5.78%) 6. 비주얼 베이직(4.62%) 7. 자바스크립트(2.55%) 8. 어셈블리(2.42%) 9. P...

2021.09.14

"네이티브에 가까운 성능" 웹어셈블리 활용한 언어 프로젝트 12선

오늘날 웹 애플리케이션은 네이티브 데스크톱 애플리케이션만큼 빠르고 반응적이지 않다. 하지만 그렇게 될 수 있다면 어떨까? 이게 바로 ‘웹어셈블리(WebAssembly)’가 약속하는 바다.  ‘웹어셈블리’는 컴팩트 바이너리 형식의 저수준 어셈블리형 언어다. 웹 브라우저에서 네이티브에 가까운 성능으로 실행된다. 또한 웹어셈블리는 C/C++, C#, 러스트(Rust), 고(Go), 코틀린(Kotlin), 스위프트(Swift) 등의 프로그래밍 언어에 이식 가능한 컴파일 타깃을 제공한다.  웹어셈블리는 웹 애플리케이션 성능을 향상할 뿐만 아니라 브라우저 앱 개발에서 자바스크립트 이외의 언어를 사용할 수 있도록 한다는 점에서 환영받아 왔다. 구글, 모질라, 애플, 마이크로소프트 등 거의 모든 메이저 브라우저 회사가 이 기술을 지원하고 있다.  더 나아가 웹어셈블리는 그 위력을 활용하는 여러 신기술 개발로 이어졌고, 여기에는 완전히 새로운 프로그래밍 언어도 포함된다. 웹어셈블리를 바탕으로 한 12가지 언어 프로젝트를 살펴본다.    1. 바이너리엔(Binaryen)  ‘바이너리엔’은 웹어셈블리용 컴파일러 툴체인 인프라 라이브러리다. C++로 작성된 바이너리엔은 쉽고 효과적이며 빠르게 웹어셈블리로 컴파일할 수 있도록 설계됐다.  이는 단일 헤더에 C API가 있으며, 자바스크립트에서 사용할 수 있다. 입력은 웹어셈블리와 유사한 형식으로 허용되지만 이를 채택한 컴파일러의 경우 일반 제어 그래프도 허용된다.  바이너리엔의 내부 IR은 컴팩트 데이터 구조를 사용하고, 병렬 코드 생성 및 최적화를 위해 모든 CPU 코어를 사용한다. 또한 IR은 본질적으로 웹어셈블리의 하위 집합이기 때문에 웹어셈블리로 쉽게 컴파일된다. 웹어셈블리에 특화된 최적화는 코드 크기와 속도를 모두 향상시켜 바이너리엔을 컴파일러 백엔드로 사용할 수 있도록 지원한다.  바이너리엔은 깃허브에서 다운로드할 수 있다.&nb...

웹 애플리케이션 데스크톱 애플리케이션 웹어셈블리 프로그래밍 언어 개발 언어 바이너리엔 블레이저 웹어셈블리 치어프 치어프제이 엠스트립튼 포레스트 그레인 자바 웹어셈블리 파이오다이드 티브이엠 우노 플랫폼 웹어셈블리 클라우드

2021.08.30

오늘날 웹 애플리케이션은 네이티브 데스크톱 애플리케이션만큼 빠르고 반응적이지 않다. 하지만 그렇게 될 수 있다면 어떨까? 이게 바로 ‘웹어셈블리(WebAssembly)’가 약속하는 바다.  ‘웹어셈블리’는 컴팩트 바이너리 형식의 저수준 어셈블리형 언어다. 웹 브라우저에서 네이티브에 가까운 성능으로 실행된다. 또한 웹어셈블리는 C/C++, C#, 러스트(Rust), 고(Go), 코틀린(Kotlin), 스위프트(Swift) 등의 프로그래밍 언어에 이식 가능한 컴파일 타깃을 제공한다.  웹어셈블리는 웹 애플리케이션 성능을 향상할 뿐만 아니라 브라우저 앱 개발에서 자바스크립트 이외의 언어를 사용할 수 있도록 한다는 점에서 환영받아 왔다. 구글, 모질라, 애플, 마이크로소프트 등 거의 모든 메이저 브라우저 회사가 이 기술을 지원하고 있다.  더 나아가 웹어셈블리는 그 위력을 활용하는 여러 신기술 개발로 이어졌고, 여기에는 완전히 새로운 프로그래밍 언어도 포함된다. 웹어셈블리를 바탕으로 한 12가지 언어 프로젝트를 살펴본다.    1. 바이너리엔(Binaryen)  ‘바이너리엔’은 웹어셈블리용 컴파일러 툴체인 인프라 라이브러리다. C++로 작성된 바이너리엔은 쉽고 효과적이며 빠르게 웹어셈블리로 컴파일할 수 있도록 설계됐다.  이는 단일 헤더에 C API가 있으며, 자바스크립트에서 사용할 수 있다. 입력은 웹어셈블리와 유사한 형식으로 허용되지만 이를 채택한 컴파일러의 경우 일반 제어 그래프도 허용된다.  바이너리엔의 내부 IR은 컴팩트 데이터 구조를 사용하고, 병렬 코드 생성 및 최적화를 위해 모든 CPU 코어를 사용한다. 또한 IR은 본질적으로 웹어셈블리의 하위 집합이기 때문에 웹어셈블리로 쉽게 컴파일된다. 웹어셈블리에 특화된 최적화는 코드 크기와 속도를 모두 향상시켜 바이너리엔을 컴파일러 백엔드로 사용할 수 있도록 지원한다.  바이너리엔은 깃허브에서 다운로드할 수 있다.&nb...

2021.08.30

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

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

Copyright © 2022 International Data Group. All rights reserved.

10.4.0.31