Offcanvas

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

고(Go) 1.17 출시··· “언어 및 컴파일러 개선”

구글에서 개발한 오픈소스 프로그래밍 언어 ‘고(GO)’의 최신 버전이 8월 16일(현지 시각) 프로덕션 릴리즈로 출시됐다.    ‘고 1.17(Go 1.17)’ 릴리즈 노트에 따르면 unsafe.Pointer 안전 규칙을 준수하는 코드 작성 간소화를 포함해 언어와 관련한 3가지 작은 개선사항이 있다. 다음과 같다.  • 슬라이스에서 배열 포인터로의 변환: s 유형의 표현식 []T는 이제 배열 포인터 유형 *[N]T로 변환될 수 있다. 만약 이러한 변환의 결과가 a라면 범위에 있는 해당 인덱스는 동일한 기본 요소를 참조한다(&a[i] == &s[i] for 0 <= i < N). 단 if len(s)이 N보다 작으면 변환 오류가 발생한다.  • unsafe.Add: unsafe.Add(ptr, len)는 ptr에 len을 추가하고, 업데이트된 포인터 unsafe.Pointer(uintptr(ptr) + uintptr(len))를 반환한다.  • unsafe.Slice: ptr 유형의 표현식 *T에서 unsafe.Slice(ptr, len)는 기본 배열이 ptr에서 시작하고, 길이와 용량이 len인 유형 []T의 슬라이스를 반환한다.  고 1.17에서 컴파일러는 스택 대신 레지스터를 사용하여 함수 인수와 결과를 패싱하는 새로운 방법을 구축했다. 이 기능은 64-비트 x86 아키텍처의 리눅스, 맥OS, 윈도우에서 사용할 수 있다. 개발팀에 의하면 벤치마크 결과 약 5%의 성능 향상과 2%가량의 바이너리 크기 감소가 나타났다. 이 변경사항은 안전한 고(GO) 코드의 기능에는 영향을 미치지 않는다.  또한 컴파일러를 사용하면 클로저를 포함하는 함수를 인라인할 수 있다. 이를 통해 클로저를 포함하는 함수가 (함수를 인라인한 각 위치에서) 별개의 클로저 코드 포인터 함수를 생성할 수 있다고 개발팀은 설명했다.  이번 릴리즈에는 정리된 모듈 그래프도 도입됐다. g...

구글 오픈소스 프로그래밍 언어 개발 언어 고랭 고 언어

2021.08.19

구글에서 개발한 오픈소스 프로그래밍 언어 ‘고(GO)’의 최신 버전이 8월 16일(현지 시각) 프로덕션 릴리즈로 출시됐다.    ‘고 1.17(Go 1.17)’ 릴리즈 노트에 따르면 unsafe.Pointer 안전 규칙을 준수하는 코드 작성 간소화를 포함해 언어와 관련한 3가지 작은 개선사항이 있다. 다음과 같다.  • 슬라이스에서 배열 포인터로의 변환: s 유형의 표현식 []T는 이제 배열 포인터 유형 *[N]T로 변환될 수 있다. 만약 이러한 변환의 결과가 a라면 범위에 있는 해당 인덱스는 동일한 기본 요소를 참조한다(&a[i] == &s[i] for 0 <= i < N). 단 if len(s)이 N보다 작으면 변환 오류가 발생한다.  • unsafe.Add: unsafe.Add(ptr, len)는 ptr에 len을 추가하고, 업데이트된 포인터 unsafe.Pointer(uintptr(ptr) + uintptr(len))를 반환한다.  • unsafe.Slice: ptr 유형의 표현식 *T에서 unsafe.Slice(ptr, len)는 기본 배열이 ptr에서 시작하고, 길이와 용량이 len인 유형 []T의 슬라이스를 반환한다.  고 1.17에서 컴파일러는 스택 대신 레지스터를 사용하여 함수 인수와 결과를 패싱하는 새로운 방법을 구축했다. 이 기능은 64-비트 x86 아키텍처의 리눅스, 맥OS, 윈도우에서 사용할 수 있다. 개발팀에 의하면 벤치마크 결과 약 5%의 성능 향상과 2%가량의 바이너리 크기 감소가 나타났다. 이 변경사항은 안전한 고(GO) 코드의 기능에는 영향을 미치지 않는다.  또한 컴파일러를 사용하면 클로저를 포함하는 함수를 인라인할 수 있다. 이를 통해 클로저를 포함하는 함수가 (함수를 인라인한 각 위치에서) 별개의 클로저 코드 포인터 함수를 생성할 수 있다고 개발팀은 설명했다.  이번 릴리즈에는 정리된 모듈 그래프도 도입됐다. g...

2021.08.19

“개발자들, 러스트·스벨트 선호하지만 앵귤러JS는 그닥” 스택 오버플로우

지난 8월 2일 발표된 ‘2021 스택 오버플로우 개발자 설문조사(Stack Overflow 2021 Developer Survey)’에 따르면 개발자의 학습 방식에서 큰 변화가 있었다. 보고서는 18세 미만 코더의 경우 (책과 학교를 합친 것보다) 동영상 및 블로그 등의 온라인 리소스가 기술을 배우는 데 더 중요한 것으로 나타났다고 밝혔다.    전체 응답자의 약 60%는 온라인 리소스를 통해 코딩을 배웠다고 말했다. 온라인 학습이 1위를 차지했지만 학교도 여전히 중요했다. 약 54%는 학교에서 코딩을 배웠다고 답했다.  또한 보고서는 소프트웨어 개발자의 수가 비약적으로 증가하고 있다고 전했다. 전체 응답자의 50%는 프로그래밍 경력이 10년 이하라고 말했으며, 절반 이상(53.6%)은 11세에서 17세 사이에 첫 코드 라인을 작성했다고 답했다. 대다수는(전체 응답자의 91%, 전문 개발자의 92%) 남성인 것으로 조사됐다.  한편 2021 스택 오버플로우 설문조사는 5월 말부터 6월 중순까지 진행됐으며, 총 8만 3,439명의 개발자가 참여했다. 이 밖에 살펴볼 만한 내용은 다음과 같다.  • ‘자바스크립트(JavaScript)’가 9년 연속 가장 일반적으로 사용되는 프로그래밍 언어(64.96%)로 꼽혔다. 러스트(Rust)도 6년 연속 가장 사랑받는 언어 1위를 차지했다.  • ‘리액트(React)’는 2021년 가장 일반적으로 사용되는 웹 프레임워크(40.14%)로 선정됐다. 제이쿼리(jQuery)가 그 뒤를 이었다. 가장 사랑받는 웹 프레임워크는 ‘스벨트(Svelte)’였다. ‘앵귤러JS(AngularJS)’는 현재 사용 중이지만 더 사용하고 싶지 않은 언어로 꼽혔다.  • 가장 많은 급여를 받는 언어는 클로저(Clojure), F#, 엘릭서(Elixir), 얼랭(Erlang), 펄(Perl)인 것으로 나타났다.  • 전문 개발자의 81%가 정규직이며, 이는...

스택 오버플로우 개발자 프로그래머 프로그래밍 언어 개발 언어 러스트 스벨트 앵귤러JS 자바스클비트 리액트 제이쿼리 클로저 엘릭서 얼랭 구글 클라우드 마이크로소프트 애저 AWS

2021.08.06

지난 8월 2일 발표된 ‘2021 스택 오버플로우 개발자 설문조사(Stack Overflow 2021 Developer Survey)’에 따르면 개발자의 학습 방식에서 큰 변화가 있었다. 보고서는 18세 미만 코더의 경우 (책과 학교를 합친 것보다) 동영상 및 블로그 등의 온라인 리소스가 기술을 배우는 데 더 중요한 것으로 나타났다고 밝혔다.    전체 응답자의 약 60%는 온라인 리소스를 통해 코딩을 배웠다고 말했다. 온라인 학습이 1위를 차지했지만 학교도 여전히 중요했다. 약 54%는 학교에서 코딩을 배웠다고 답했다.  또한 보고서는 소프트웨어 개발자의 수가 비약적으로 증가하고 있다고 전했다. 전체 응답자의 50%는 프로그래밍 경력이 10년 이하라고 말했으며, 절반 이상(53.6%)은 11세에서 17세 사이에 첫 코드 라인을 작성했다고 답했다. 대다수는(전체 응답자의 91%, 전문 개발자의 92%) 남성인 것으로 조사됐다.  한편 2021 스택 오버플로우 설문조사는 5월 말부터 6월 중순까지 진행됐으며, 총 8만 3,439명의 개발자가 참여했다. 이 밖에 살펴볼 만한 내용은 다음과 같다.  • ‘자바스크립트(JavaScript)’가 9년 연속 가장 일반적으로 사용되는 프로그래밍 언어(64.96%)로 꼽혔다. 러스트(Rust)도 6년 연속 가장 사랑받는 언어 1위를 차지했다.  • ‘리액트(React)’는 2021년 가장 일반적으로 사용되는 웹 프레임워크(40.14%)로 선정됐다. 제이쿼리(jQuery)가 그 뒤를 이었다. 가장 사랑받는 웹 프레임워크는 ‘스벨트(Svelte)’였다. ‘앵귤러JS(AngularJS)’는 현재 사용 중이지만 더 사용하고 싶지 않은 언어로 꼽혔다.  • 가장 많은 급여를 받는 언어는 클로저(Clojure), F#, 엘릭서(Elixir), 얼랭(Erlang), 펄(Perl)인 것으로 나타났다.  • 전문 개발자의 81%가 정규직이며, 이는...

2021.08.06

오픈AI, 파이썬 기반 언어 ‘트리톤’ 출시··· “GPU 프로그래밍 지원”

오픈AI(OpenAI)가 7월 28일 머신러닝용 GPU 프로그래밍의 복잡성 없이 GPU 기반 딥러닝 프로젝트를 직접 작성할 수 있는 오픈소스 프로그래밍 언어 ‘트리톤(Triton)’의 첫 번째 버전을 출시했다.    ‘트리톤 1.0’은 파이썬(버전 3.6 이상)을 기반으로 한다. 오픈AI에 따르면 개발자는 트리톤의 라이브러리를 사용해 파이썬으로 코드를 작성한 다음 GPU에서 실행되도록 JIT 컴파일할 수 있다. 또 새로운 도메인 특정 언어를 개발하느라 시간 낭비할 필요 없이 파이썬 언어 자체를 활용할 수 있다.  트리톤의 라이브러리는 넘파이(NumPy)를 연상시키는 일련의 기본 요소를 제공한다. 이를테면 다양한 행렬 연산이나 특정 기준에 따라 배열을 축소하는 함수 등이다. 사용자는 이러한 기본 요소를 코드에 결합해 GPU에서 실행되도록 컴파일된 @triton.jit 데코레이터를 추가할 수 있다. 이러한 점에서 트리톤은 넘바(Numba)와 유사하다고 개발팀은 전했다. 넘바는 속도를 위해 숫자 집약적인 파이썬 코드를 머신-네이티브 어셈블리로 JIT 컴파일할 수 있는 프로젝트다.  트리톤의 간단한 예로는 벡터 추가 커널과 융합된 소프트맥스 연산 등을 들 수 있다. 개발팀은 후자의 경우 전적으로 GPU 메모리에서 수행할 수 있는 작업을 네이티브 파이토치와 융합된 소프트맥스보다 몇 배 더 빠르게 실행할 수 있다고 밝혔다.  트리톤은 현재 리눅스에서만 사용할 수 있다. 이제 막 출시된 프로젝트이기 때문에 문서화가 아직 완료되지 않았다. 이를 초기에 채택하는 개발자는 소스와 예제를 자세히 검토해야 할 수 있다. 예를 들면 함수의 JIT 컴파일을 최적화하기 위한 매개변수를 정의하는 데 사용할 수 있는 triton.autotune 함수는 라이브러리의 파이썬 API 섹션에 아직 문서화돼 있지 않다. 하지만 triton.autotune 은 트리톤의 행렬 곱셈 예제에서 사용되고 있다. ciokr@idg.co.kr ...

머신러닝 GPU GPU 프로그래밍 오픈AI 인공지능 프로그래밍 언어 개발 언어 파이썬 트리톤

2021.07.30

오픈AI(OpenAI)가 7월 28일 머신러닝용 GPU 프로그래밍의 복잡성 없이 GPU 기반 딥러닝 프로젝트를 직접 작성할 수 있는 오픈소스 프로그래밍 언어 ‘트리톤(Triton)’의 첫 번째 버전을 출시했다.    ‘트리톤 1.0’은 파이썬(버전 3.6 이상)을 기반으로 한다. 오픈AI에 따르면 개발자는 트리톤의 라이브러리를 사용해 파이썬으로 코드를 작성한 다음 GPU에서 실행되도록 JIT 컴파일할 수 있다. 또 새로운 도메인 특정 언어를 개발하느라 시간 낭비할 필요 없이 파이썬 언어 자체를 활용할 수 있다.  트리톤의 라이브러리는 넘파이(NumPy)를 연상시키는 일련의 기본 요소를 제공한다. 이를테면 다양한 행렬 연산이나 특정 기준에 따라 배열을 축소하는 함수 등이다. 사용자는 이러한 기본 요소를 코드에 결합해 GPU에서 실행되도록 컴파일된 @triton.jit 데코레이터를 추가할 수 있다. 이러한 점에서 트리톤은 넘바(Numba)와 유사하다고 개발팀은 전했다. 넘바는 속도를 위해 숫자 집약적인 파이썬 코드를 머신-네이티브 어셈블리로 JIT 컴파일할 수 있는 프로젝트다.  트리톤의 간단한 예로는 벡터 추가 커널과 융합된 소프트맥스 연산 등을 들 수 있다. 개발팀은 후자의 경우 전적으로 GPU 메모리에서 수행할 수 있는 작업을 네이티브 파이토치와 융합된 소프트맥스보다 몇 배 더 빠르게 실행할 수 있다고 밝혔다.  트리톤은 현재 리눅스에서만 사용할 수 있다. 이제 막 출시된 프로젝트이기 때문에 문서화가 아직 완료되지 않았다. 이를 초기에 채택하는 개발자는 소스와 예제를 자세히 검토해야 할 수 있다. 예를 들면 함수의 JIT 컴파일을 최적화하기 위한 매개변수를 정의하는 데 사용할 수 있는 triton.autotune 함수는 라이브러리의 파이썬 API 섹션에 아직 문서화돼 있지 않다. 하지만 triton.autotune 은 트리톤의 행렬 곱셈 예제에서 사용되고 있다. ciokr@idg.co.kr ...

2021.07.30

MS, 타입스크립트 4.4 베타 출시··· “성능 개선 및 제어 흐름 분석 지원”

마이크로소프트가 ‘타입스크립트 4.4’의 베타 버전을 출시했다. 성능 향상 및 제어 흐름 분석 지원 등을 비롯한 여러 개선사항이 포함됐다. 타입스크립트(TypeScript)는 자바스크립트(JavaScript)에 타입을 추가하는 오픈소스 프로그래밍 언어다.   회사에 따르면 더 빠른 선언을 위해 타입스크립트는 이제 다양한 컨텍스트에서 내부 기호에 액세스할 수 있는지 그리고 특정 타입이 프린트되어야 하는 방법을 캐시한다.  이렇게 하면 상당히 복잡한 타입의 코드에서 타입스크립트의 일반적인 성능을 향상시킬 수 있다고 회사 측은 설명했다. 또한 성능 개선을 위해 더 빠른 증분 빌드와 함께 더 빠른 경로 정규화 및 경로 매핑을 지원한다고 덧붙였다. 큰 출력 파일의 소스 맵 생성을 위한 최적화도 추가됐다.  타입스크립트 4.4 베타는 누겟(NuGet)에서 다운로드받거나 또는 NPM을 통해 아래의 명령을 사용하여 설치할 수 있다.   npm install typescript@beta 타입스크립트 4.4의 GA 버전은 8월 말 공개될 예정이다. 이 밖에 타입스크립트 4.4의 새로운 기능은 다음과 같다.  • 별칭 조건의 제어 흐름 분석을 위해 타입스크립트는 상수 값이 테스트되고 있는 것으로 확인되면 타입 가드가 있는지 확인하기 위해 추가 작업을 수행한다. 타입 가드가 상수(const), 읽기 전용(readonly) 속성 또는 수정되지 않은 매개변수에서 작동하는 경우 타입스크립트는 해당 값 속성의 범위를 좁힐 수 있다. typeof 검사뿐만 아니라 다른 타입 가드 조건도 유지된다.  • 이제 맞춤법 제안(Spelling suggestions)이 일반 자바스크립트 파일로 발행된다. 이러한 맞춤법 제안은 코드가 잘못됐다는 것을 알려줄 수 있다고 회사 측은 전했다.  • 타입스크립트 4.4는 매개변수 이름과 같은 정보를 코드에서 인라인으로 표시할 수 있는 인레이 텍스트에 관한 편...

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

2021.07.27

마이크로소프트가 ‘타입스크립트 4.4’의 베타 버전을 출시했다. 성능 향상 및 제어 흐름 분석 지원 등을 비롯한 여러 개선사항이 포함됐다. 타입스크립트(TypeScript)는 자바스크립트(JavaScript)에 타입을 추가하는 오픈소스 프로그래밍 언어다.   회사에 따르면 더 빠른 선언을 위해 타입스크립트는 이제 다양한 컨텍스트에서 내부 기호에 액세스할 수 있는지 그리고 특정 타입이 프린트되어야 하는 방법을 캐시한다.  이렇게 하면 상당히 복잡한 타입의 코드에서 타입스크립트의 일반적인 성능을 향상시킬 수 있다고 회사 측은 설명했다. 또한 성능 개선을 위해 더 빠른 증분 빌드와 함께 더 빠른 경로 정규화 및 경로 매핑을 지원한다고 덧붙였다. 큰 출력 파일의 소스 맵 생성을 위한 최적화도 추가됐다.  타입스크립트 4.4 베타는 누겟(NuGet)에서 다운로드받거나 또는 NPM을 통해 아래의 명령을 사용하여 설치할 수 있다.   npm install typescript@beta 타입스크립트 4.4의 GA 버전은 8월 말 공개될 예정이다. 이 밖에 타입스크립트 4.4의 새로운 기능은 다음과 같다.  • 별칭 조건의 제어 흐름 분석을 위해 타입스크립트는 상수 값이 테스트되고 있는 것으로 확인되면 타입 가드가 있는지 확인하기 위해 추가 작업을 수행한다. 타입 가드가 상수(const), 읽기 전용(readonly) 속성 또는 수정되지 않은 매개변수에서 작동하는 경우 타입스크립트는 해당 값 속성의 범위를 좁힐 수 있다. typeof 검사뿐만 아니라 다른 타입 가드 조건도 유지된다.  • 이제 맞춤법 제안(Spelling suggestions)이 일반 자바스크립트 파일로 발행된다. 이러한 맞춤법 제안은 코드가 잘못됐다는 것을 알려줄 수 있다고 회사 측은 전했다.  • 타입스크립트 4.4는 매개변수 이름과 같은 정보를 코드에서 인라인으로 표시할 수 있는 인레이 텍스트에 관한 편...

2021.07.27

코틀린 버전 1.5.20 출시··· “자바 코딩 기능 개선”

젯브레인(JetBrains)에서 개발한 프로그래밍 언어 ‘코틀린(Kotlin)’의 버전 1.5.20이 출시됐다. 코틀린 1.5.20은 ‘JSpecify 자바 널니스(JSpecify Java nullness)’ 기능과 함께 더 쉽게 코딩할 수 있도록 지원하는 '롬복 자바 라이브러리(Lombok Jave library)'를 실험적으로 지원한다.    개발팀에 따르면 지난 6월 23일 릴리즈된 코틀린 1.5.20은 동일한 모듈에서 롬복으로 생성한 메소드 호출을 실험적으로 지원한다. 즉 롬복 컴파일러 플러그인을 추가하면 혼합 자바/코틀린 모듈에서 코틀린 코드로 롬복 선언을 사용할 수 있다. 롬복 라이브러리는 편집기와 빌드 도구에 연결되며, 로깅 변수 자동화와 같은 기능을 사용해 보일러플레이트 코드를 작성해야 하는 필요성을 줄여준다.  또 이번 릴리즈는 정적 분석을 위한 표준 자바 주석을 제공하는 JSpecify를 실험적으로 지원한다.자바 널니스 주석(Java nullness annotations)의 표준 통합 세트를 포함하는 JSpecify는 코틀린이 자바와 상호 운용할 때 널 안정성을 유지할 수 있도록 더 자세한 널 허용 여부 정보를 제공한다.  코틀린 1.5.20 설치 가이드는 이곳(blog.jetbrains.com)에서 확인할 수 있다. 이번 버전의 다른 기능은 아래와 같다.  • 그래들(Gradle)의 경우 코틀린 작업의 병렬 실행은 이제 그래들 병렬 실행 메커니즘에 의해 완전히 제어된다. kotlin.parallel.tasks.in.project 속성은 더 이상 사용되지 않는다. 또한 kapt에서 주석 프로세서의 클래스로더를 실험적으로 캐싱하여 경우에 따라 연속적인 그래들 실행에 대한 kapt 속도를 높였다.  • 코틀린/네이티브 컴파일러는 코틀린 코드의 문서 코멘트(KDoC)를 오브젝티브-C(Objective-C) 프레임워크로 내보낼 수 있다. 이 실험적 기능은 스위프트 언어(Swift)에서도...

젯브레인 코틀린 프로그래밍 언어 개발 언어 롬복 자바 자바스크립트 그래들

2021.06.30

젯브레인(JetBrains)에서 개발한 프로그래밍 언어 ‘코틀린(Kotlin)’의 버전 1.5.20이 출시됐다. 코틀린 1.5.20은 ‘JSpecify 자바 널니스(JSpecify Java nullness)’ 기능과 함께 더 쉽게 코딩할 수 있도록 지원하는 '롬복 자바 라이브러리(Lombok Jave library)'를 실험적으로 지원한다.    개발팀에 따르면 지난 6월 23일 릴리즈된 코틀린 1.5.20은 동일한 모듈에서 롬복으로 생성한 메소드 호출을 실험적으로 지원한다. 즉 롬복 컴파일러 플러그인을 추가하면 혼합 자바/코틀린 모듈에서 코틀린 코드로 롬복 선언을 사용할 수 있다. 롬복 라이브러리는 편집기와 빌드 도구에 연결되며, 로깅 변수 자동화와 같은 기능을 사용해 보일러플레이트 코드를 작성해야 하는 필요성을 줄여준다.  또 이번 릴리즈는 정적 분석을 위한 표준 자바 주석을 제공하는 JSpecify를 실험적으로 지원한다.자바 널니스 주석(Java nullness annotations)의 표준 통합 세트를 포함하는 JSpecify는 코틀린이 자바와 상호 운용할 때 널 안정성을 유지할 수 있도록 더 자세한 널 허용 여부 정보를 제공한다.  코틀린 1.5.20 설치 가이드는 이곳(blog.jetbrains.com)에서 확인할 수 있다. 이번 버전의 다른 기능은 아래와 같다.  • 그래들(Gradle)의 경우 코틀린 작업의 병렬 실행은 이제 그래들 병렬 실행 메커니즘에 의해 완전히 제어된다. kotlin.parallel.tasks.in.project 속성은 더 이상 사용되지 않는다. 또한 kapt에서 주석 프로세서의 클래스로더를 실험적으로 캐싱하여 경우에 따라 연속적인 그래들 실행에 대한 kapt 속도를 높였다.  • 코틀린/네이티브 컴파일러는 코틀린 코드의 문서 코멘트(KDoC)를 오브젝티브-C(Objective-C) 프레임워크로 내보낼 수 있다. 이 실험적 기능은 스위프트 언어(Swift)에서도...

2021.06.30

고랭에서 찾기 힘든 버그 잡는다… ‘고 퍼즈’ 베타 테스트 공개

고(Go) 언어의 네이티브 퍼징이 베타 테스트 단계로 공개됐다. 이 새로운 자동 테스트 기능의 목표는 고 언어 개발자가 코드 품질을 개선하는 동시에 고랭으로 구축된 시스템을 안전하고 탄력적으로 유지할 수 있도록 지원하는 것이다.    지난 6월 3일 공식 블로그에서 고 언어 개발팀은 ‘퍼징(Fuzzing)’에 관해 프로그램 입력을 지속적으로 조작해 발견되지 않을 수 있는 문제나 버그를 찾는 자동화된 테스트 유형이라고 설명했다. 개발팀에 따르면 이러한 반 무작위 데이터 변형은 단위 테스트가 놓칠 수 있는 새로운 코드 커버리지를 발견하고, 그렇지 않으면 눈에 띄지 않는 엣지 케이스 버그를 잡아낼 수 있다. 특히 퍼징은 기존 테스트보다 더 많은 코드 커버리지를 제공하기 때문에 취약점을 찾는 데 있어 중요하다.  퍼즈를 사용하려면 다음을 실행하면 된다.    $ go get golang.org/dl/gotip $ gotip download dev.fuzz 퍼징 기능은 오는 8월 출시될 고 언어 1.17 릴리즈에선 사용할 수 없다. 그다음 버전에 포함될 계획이다. 이 프로토타입으로 개발자들이 퍼즈 타깃을 작성하고 피드백을 제공해주길 바란다고 고 언어 개발팀은 밝혔다. 개발자들은 깃허브를 통해 문제를 제출하거나 이곳(Gophers Slack)에서 피드백을 전달할 수 있다.  한편 퍼징이 많은 메모리를 소비할 수 있으며 이를 실행하는 동안 시스템 성능에 영향을 미칠 수 있다고 고 언어 개발팀은 언급했다. go test -fuzz는 기본적으로 SGOMAXPROCS 프로세스에서 퍼징을 병렬로 실행한다. go test와 함께 -parallel 플래그를 설정하면 퍼징 중에 사용되는 프로세스를 낮출 수 있다.  이어서 고 언어 개발팀은 퍼징 엔진이 이를 실행하는 동안 $GOCACHE/fuzz 내의 퍼즈 캐시 디렉토리에 테스트 범위를 확장하는 값을 작성한다고 전했다. 현재 퍼즈...

구글 고 언어 고랭 프로그래밍 언어 개발 언어 개발자 퍼징 퍼즈

2021.06.08

고(Go) 언어의 네이티브 퍼징이 베타 테스트 단계로 공개됐다. 이 새로운 자동 테스트 기능의 목표는 고 언어 개발자가 코드 품질을 개선하는 동시에 고랭으로 구축된 시스템을 안전하고 탄력적으로 유지할 수 있도록 지원하는 것이다.    지난 6월 3일 공식 블로그에서 고 언어 개발팀은 ‘퍼징(Fuzzing)’에 관해 프로그램 입력을 지속적으로 조작해 발견되지 않을 수 있는 문제나 버그를 찾는 자동화된 테스트 유형이라고 설명했다. 개발팀에 따르면 이러한 반 무작위 데이터 변형은 단위 테스트가 놓칠 수 있는 새로운 코드 커버리지를 발견하고, 그렇지 않으면 눈에 띄지 않는 엣지 케이스 버그를 잡아낼 수 있다. 특히 퍼징은 기존 테스트보다 더 많은 코드 커버리지를 제공하기 때문에 취약점을 찾는 데 있어 중요하다.  퍼즈를 사용하려면 다음을 실행하면 된다.    $ go get golang.org/dl/gotip $ gotip download dev.fuzz 퍼징 기능은 오는 8월 출시될 고 언어 1.17 릴리즈에선 사용할 수 없다. 그다음 버전에 포함될 계획이다. 이 프로토타입으로 개발자들이 퍼즈 타깃을 작성하고 피드백을 제공해주길 바란다고 고 언어 개발팀은 밝혔다. 개발자들은 깃허브를 통해 문제를 제출하거나 이곳(Gophers Slack)에서 피드백을 전달할 수 있다.  한편 퍼징이 많은 메모리를 소비할 수 있으며 이를 실행하는 동안 시스템 성능에 영향을 미칠 수 있다고 고 언어 개발팀은 언급했다. go test -fuzz는 기본적으로 SGOMAXPROCS 프로세스에서 퍼징을 병렬로 실행한다. go test와 함께 -parallel 플래그를 설정하면 퍼징 중에 사용되는 프로세스를 낮출 수 있다.  이어서 고 언어 개발팀은 퍼징 엔진이 이를 실행하는 동안 $GOCACHE/fuzz 내의 퍼즈 캐시 디렉토리에 테스트 범위를 확장하는 값을 작성한다고 전했다. 현재 퍼즈...

2021.06.08

“개발자 경험 대폭 개선”··· 러스트 2021 출시 계획 발표

오는 10월 출시될 러스트 프로그래밍 언어의 세 번째 버전 ‘러스트 2021(Rust 2021)’은 몇 가지 변경사항을 통해 실질적인 러스트 사용 경험을 크게 향상시킬 전망이다.    5월 11일(현지 시각) 러스트 2021 에디션 워킹그룹(Rust 2021 Edition Working Group)이 이번 릴리즈에서 계획된 변경사항을 공개했다. 여기에는 표준 라이브러리의 표준 모듈(Prelude)이 포함된다. 이는 모든 모듈에서 자동으로 임포트되는 모든 것을 포함하는 모듈이다.  새로운 표준 모듈(Prelude)은 표준 모듈에 트레이드를 추가했을 때 기존 코드가 미묘하게 깨지는 문제를 해결하고자 한다. 이를 위해 러스트 2021에 추가될 새로운 표준 모듈(Prelude) 3가지는 다음과 같다.  • std::convert::TryInto • std::convert::TryFrom • std::iter::FromIterator 또 러스트 1.51에서 옵트-인으로 지원됐던 피처 리졸버(feature resolver)가 러스트 2021부터 기본값으로 제공된다. 이 밖에 러스트 2021의 변경사항은 아래와 같다.  • 본문 내에서 참조된 모든 것을 자동 캡처할 수 있는 익명 함수 ‘클로저(Closures)’가 러스트 2021부터 사용하는 필드만 캡처한다. 이는 구조체의 가용성과 관련된 프로그래밍 문제를 해결한다.  • panic! () 매크로가 더 이상 임의의 표현식을 유일한 인수로 받아들이지 않고 일관성을 유지한다.   • 새 구문을 위한 공간을 확보하고자 prefix#identifier, prefix”string”, prefix’c’, prefix#123을 포함한 접두사가 붙은 식별자와 리터럴에 구문이 예약된다. 여기서 prefix는 모든 식별자가 될 수 있다. 향후 접두사는 형식 문자열의 약어로 f””를 포함한다. 또 null로 끝나는 C 문자열의 경우 c”” 또는 z””를 포함할 수 ...

러스트 프로그래밍 언어 개발 언어 소프트웨어 개발

2021.05.18

오는 10월 출시될 러스트 프로그래밍 언어의 세 번째 버전 ‘러스트 2021(Rust 2021)’은 몇 가지 변경사항을 통해 실질적인 러스트 사용 경험을 크게 향상시킬 전망이다.    5월 11일(현지 시각) 러스트 2021 에디션 워킹그룹(Rust 2021 Edition Working Group)이 이번 릴리즈에서 계획된 변경사항을 공개했다. 여기에는 표준 라이브러리의 표준 모듈(Prelude)이 포함된다. 이는 모든 모듈에서 자동으로 임포트되는 모든 것을 포함하는 모듈이다.  새로운 표준 모듈(Prelude)은 표준 모듈에 트레이드를 추가했을 때 기존 코드가 미묘하게 깨지는 문제를 해결하고자 한다. 이를 위해 러스트 2021에 추가될 새로운 표준 모듈(Prelude) 3가지는 다음과 같다.  • std::convert::TryInto • std::convert::TryFrom • std::iter::FromIterator 또 러스트 1.51에서 옵트-인으로 지원됐던 피처 리졸버(feature resolver)가 러스트 2021부터 기본값으로 제공된다. 이 밖에 러스트 2021의 변경사항은 아래와 같다.  • 본문 내에서 참조된 모든 것을 자동 캡처할 수 있는 익명 함수 ‘클로저(Closures)’가 러스트 2021부터 사용하는 필드만 캡처한다. 이는 구조체의 가용성과 관련된 프로그래밍 문제를 해결한다.  • panic! () 매크로가 더 이상 임의의 표현식을 유일한 인수로 받아들이지 않고 일관성을 유지한다.   • 새 구문을 위한 공간을 확보하고자 prefix#identifier, prefix”string”, prefix’c’, prefix#123을 포함한 접두사가 붙은 식별자와 리터럴에 구문이 예약된다. 여기서 prefix는 모든 식별자가 될 수 있다. 향후 접두사는 형식 문자열의 약어로 f””를 포함한다. 또 null로 끝나는 C 문자열의 경우 c”” 또는 z””를 포함할 수 ...

2021.05.18

“전면 개편” 스칼라 3 출시··· 유형 시스템 및 구문 개선

JVM과 자바스크립트 런타임에서 실행할 수 있는 객체 지향 및 함수형 언어의 최신 버전 ‘스칼라 3(Scala 3)’가 프로덕션 릴리즈로 출시됐다. 개발팀에서 ‘전면 개편(complete overhaul)’이라고 설명하는 이번 업그레이드는 새로운 유형 시스템과 구문 개선을 특징으로 한다.    스칼라 3는 지난 2월 17일 릴리즈 캔디데이트(RC) 버전을 선보인 데 이어 5월 14일 프로덕션 릴리즈를 공개했다. 개발팀은 스칼라 3에서 ‘if’, ‘while’, ‘for’과 같은 제어 구조를 위한 ‘quite’ 구문이 새롭게 추가됐다고 전했다. 이 밖에 스칼라 3의 구문 개선 사항은 다음과 같다.  • 들여쓰기에 민감한 프로그래밍 스타일을 지원하는 선택적 중괄호 • 선택사항으로 제공하는 new 키워드 • _에서 ?으로 변경된 유형-레벨 와일드카드 • 대폭 수정된 암시(Implicits)와 해당 구문  스칼라 3의 새로운 언어 기능은 아래와 같다.  • using 절을 유형별로 지정할 수 있기 때문에 명시적으로 참조되지 않은 용어 변수 이름에서 함수 서명을 해제할 수 있다.  • 주어진 인스턴스로 특정 유형의 표준값을 정의할 수 있다. 구현 세부 사항을 유출하지 않고 유형 클래스를 사용하는 프로그래밍을 더욱더 쉽게 수행할 수 있다. • 이제 확장 메소드가 언어에 직접 내장돼 향상된 오류 메시지와 유형 추론을 지원한다.  • 암시적 변환이 유형 클래스 Conversion의 인스턴스로 재설계됐다.  • 컨텍스트 함수의 새로운 기능은 컨텍스트 추상화를 1급 객체로 만든다. 이는 라이브러리 저자가 간결한 도메인별 언어를 표현할 수 있는 도구 역할을 한다.  • 컴파일러가 암시적 매개변수를 확인할 수 없다면 이 문제를 해결할 수 있는 가져오기 제안이 제공된다.  스칼라 3의 유형 시스템 개선 사항은 다음과 같다.  • 열거형(Enums or enumerations...

스칼라 JVM 자바스크립트 런타임 객체 지향 함수형 언어 프로그래밍 언어 개발 언어 자바 소프트웨어 개발

2021.05.17

JVM과 자바스크립트 런타임에서 실행할 수 있는 객체 지향 및 함수형 언어의 최신 버전 ‘스칼라 3(Scala 3)’가 프로덕션 릴리즈로 출시됐다. 개발팀에서 ‘전면 개편(complete overhaul)’이라고 설명하는 이번 업그레이드는 새로운 유형 시스템과 구문 개선을 특징으로 한다.    스칼라 3는 지난 2월 17일 릴리즈 캔디데이트(RC) 버전을 선보인 데 이어 5월 14일 프로덕션 릴리즈를 공개했다. 개발팀은 스칼라 3에서 ‘if’, ‘while’, ‘for’과 같은 제어 구조를 위한 ‘quite’ 구문이 새롭게 추가됐다고 전했다. 이 밖에 스칼라 3의 구문 개선 사항은 다음과 같다.  • 들여쓰기에 민감한 프로그래밍 스타일을 지원하는 선택적 중괄호 • 선택사항으로 제공하는 new 키워드 • _에서 ?으로 변경된 유형-레벨 와일드카드 • 대폭 수정된 암시(Implicits)와 해당 구문  스칼라 3의 새로운 언어 기능은 아래와 같다.  • using 절을 유형별로 지정할 수 있기 때문에 명시적으로 참조되지 않은 용어 변수 이름에서 함수 서명을 해제할 수 있다.  • 주어진 인스턴스로 특정 유형의 표준값을 정의할 수 있다. 구현 세부 사항을 유출하지 않고 유형 클래스를 사용하는 프로그래밍을 더욱더 쉽게 수행할 수 있다. • 이제 확장 메소드가 언어에 직접 내장돼 향상된 오류 메시지와 유형 추론을 지원한다.  • 암시적 변환이 유형 클래스 Conversion의 인스턴스로 재설계됐다.  • 컨텍스트 함수의 새로운 기능은 컨텍스트 추상화를 1급 객체로 만든다. 이는 라이브러리 저자가 간결한 도메인별 언어를 표현할 수 있는 도구 역할을 한다.  • 컴파일러가 암시적 매개변수를 확인할 수 없다면 이 문제를 해결할 수 있는 가져오기 제안이 제공된다.  스칼라 3의 유형 시스템 개선 사항은 다음과 같다.  • 열거형(Enums or enumerations...

2021.05.17

디노 1.10 출시··· “테스트 러너 개선 및 웹 스토리지 API 추가”

노드.js(Node.js) 대체재로 개발된 자바스크립트/타입스크립트 런타임의 최신 버전이 출시됐다. 이번 릴리즈에서는 테스트 모듈을 격리해 실행할 수 있는 기능을 비롯해 여러 테스트 관련 개선사항이 도입됐다.    디노(Deno) 버전 1.10이 지난 5월 11일(현지 시각) 공개됐다. 기본 테스트 러너가 대대적으로 개편됐으며 이 밖에 웹 스토리지 API 추가, 원격 가져오기 맵 지원 등을 제공한다고 개발팀은 밝혔다.  개발팀에 따르면 이제 deno test 테스트 러너는 검색된 테스트 모듈을 각 모듈의 새로운 런타임 인스턴스를 사용해 격리된 상태로 실행할 수 있다. 이전에는 단일 런타임 인스턴스 내에서 순차적으로 테스트를 실행했다. 사용할 스레드 수를 지정하는 –jobs 플래그도 지원한다. 기본적으로 테스트는 계속해서 순차적으로 실행된다.  또 테스트를 위한 구성할 수 있는 권한, 문서 주석에 검사 코드 예제를 입력하는 --doc 플래그, 관련 테스트 케이스 재실행을 위해 파일 변경사항을 검토하는 --watch 플래그, 개선된 테스트 러너 출력 등도 제공된다. 다음번 릴리즈에서는 코드 예제를 정기적으로 테스트할 수 있는 기능을 추가할 예정이라고 개발팀은 덧붙였다.  이 밖에 디노 1.10의 새로운 기능 및 개선사항은 다음과 같다.  • 웹 작업자(Web Worker)가 구조화된 복제 알고리즘을 사용해 직렬화할 수 있는 모든 데이터를 허용하도록 변경됐다(웹 작업자를 사용하면 별도의 실행 환경에서 여러 비트의 자바스크립트, 타입스크립트, 웹 어셈블리를 동시에 실행할 수 있다. 작업자와 메인 스레드 간의 통신은 메시지를 전달해 수행된다). • localStorage 및 sessionStorage로 구성된 웹 스토리지 API(Web Storage API) 지원이 추가됐다. 직접 파일 액세스 없이 소량의 데이터를 지속적으로 저장하는 데 사용할 수 있다.  • 웹 어셈블리의 원자 및 공유 메모...

디노 노드.js 자바스크립트 타입스크립트 런타임 프로그래밍 언어 개발 언어 소프트웨어 개발

2021.05.14

노드.js(Node.js) 대체재로 개발된 자바스크립트/타입스크립트 런타임의 최신 버전이 출시됐다. 이번 릴리즈에서는 테스트 모듈을 격리해 실행할 수 있는 기능을 비롯해 여러 테스트 관련 개선사항이 도입됐다.    디노(Deno) 버전 1.10이 지난 5월 11일(현지 시각) 공개됐다. 기본 테스트 러너가 대대적으로 개편됐으며 이 밖에 웹 스토리지 API 추가, 원격 가져오기 맵 지원 등을 제공한다고 개발팀은 밝혔다.  개발팀에 따르면 이제 deno test 테스트 러너는 검색된 테스트 모듈을 각 모듈의 새로운 런타임 인스턴스를 사용해 격리된 상태로 실행할 수 있다. 이전에는 단일 런타임 인스턴스 내에서 순차적으로 테스트를 실행했다. 사용할 스레드 수를 지정하는 –jobs 플래그도 지원한다. 기본적으로 테스트는 계속해서 순차적으로 실행된다.  또 테스트를 위한 구성할 수 있는 권한, 문서 주석에 검사 코드 예제를 입력하는 --doc 플래그, 관련 테스트 케이스 재실행을 위해 파일 변경사항을 검토하는 --watch 플래그, 개선된 테스트 러너 출력 등도 제공된다. 다음번 릴리즈에서는 코드 예제를 정기적으로 테스트할 수 있는 기능을 추가할 예정이라고 개발팀은 덧붙였다.  이 밖에 디노 1.10의 새로운 기능 및 개선사항은 다음과 같다.  • 웹 작업자(Web Worker)가 구조화된 복제 알고리즘을 사용해 직렬화할 수 있는 모든 데이터를 허용하도록 변경됐다(웹 작업자를 사용하면 별도의 실행 환경에서 여러 비트의 자바스크립트, 타입스크립트, 웹 어셈블리를 동시에 실행할 수 있다. 작업자와 메인 스레드 간의 통신은 메시지를 전달해 수행된다). • localStorage 및 sessionStorage로 구성된 웹 스토리지 API(Web Storage API) 지원이 추가됐다. 직접 파일 액세스 없이 소량의 데이터를 지속적으로 저장하는 데 사용할 수 있다.  • 웹 어셈블리의 원자 및 공유 메모...

2021.05.14

“2~5배 더 빠르게”··· 귀도 반 로섬, 파이썬 속도 개선한다

파이썬(Python) 창시자 귀도 반 로섬이 파이콘 2021(Pycon 2021)에서 진행된 파이썬 랭귀지 서밋(Python Language Summit)에서 파이썬 속도를 2배에서 5배까지 더 빠르게 만들기 위한 단기 및 장기 계획을 발표했다.    파이썬에는 이미 파이파이(PyPy)와 같은 대체 런타임부터 C/C++로 작성된 랩핑 모듈까지 더 빠르게 실행할 수 있는 여러 방법이 있다. 하지만 C로 작성된 파이썬 참조 구현체이자 가장 널리 사용되는 언어 버전인 C파이썬(CPython) 자체의 속도를 높이는 방법은 거의 없다는 게 반 로섬의 설명이다.  그에 따르면 단기적으로는 현재 알파 단계 프로젝트로 개발 중인 파이썬 버전 3.11에서 최소한 1가지 이상의 주요 성능 개선 기능을 추가할 예정이다. 파이썬 3.11은 오는 2022년 출시될 계획이다.  또한 반 로섬은 파이썬 속도를 높이려는 현재 계획이 몇 가지 제약 조건 하에서 진행되고 있다고 설명했다. 이를테면 C파이썬의 어떤 변경사항도 런타임의 ABI(Application Binary Interface)를 손상시켜서는 안 된다. 그래야 C로 작성된 파이썬 확장 프로그램이 있는 그대로 계속 작동한다. 유지보수 용이성 및 간단하고 이해하기 쉬운 코드베이스를 유지하려는 C파이썬의 목표에 따라 변경사항은 점진적으로 이뤄져야 하고 관리할 수 있어야 한다. 그리고 모든 수정은 오픈소스여야 한다고 그는 전했다.  이러한 제약 조건 속에서 반 로섬과 그의 동료들은 자유롭게 변경할 수 있는 몇 가지 부분도 식별했다고 밝혔다. 예를 들면 파이썬의 바이트코드 시스템, 컴파일러, 인터프리터 등은 버전 간에 변경될 수 있기 때문에 모두 변경 대상으로 지정됐다. 특히 바이트코드는 주요 버전 간의 호환성을 보장하지 않으므로 필요한 경우 크게 변경할 수 있다고 반 로섬은 덧붙였다.  파이썬 3.11을 타깃으로 하는 첫 번째 제안에는 PEP 659에 설명된 ‘적응형 특정...

귀도 반 로섬 파이썬 프로그래밍 언어 개발 언어 C파이썬 파이파이 오픈소스

2021.05.14

파이썬(Python) 창시자 귀도 반 로섬이 파이콘 2021(Pycon 2021)에서 진행된 파이썬 랭귀지 서밋(Python Language Summit)에서 파이썬 속도를 2배에서 5배까지 더 빠르게 만들기 위한 단기 및 장기 계획을 발표했다.    파이썬에는 이미 파이파이(PyPy)와 같은 대체 런타임부터 C/C++로 작성된 랩핑 모듈까지 더 빠르게 실행할 수 있는 여러 방법이 있다. 하지만 C로 작성된 파이썬 참조 구현체이자 가장 널리 사용되는 언어 버전인 C파이썬(CPython) 자체의 속도를 높이는 방법은 거의 없다는 게 반 로섬의 설명이다.  그에 따르면 단기적으로는 현재 알파 단계 프로젝트로 개발 중인 파이썬 버전 3.11에서 최소한 1가지 이상의 주요 성능 개선 기능을 추가할 예정이다. 파이썬 3.11은 오는 2022년 출시될 계획이다.  또한 반 로섬은 파이썬 속도를 높이려는 현재 계획이 몇 가지 제약 조건 하에서 진행되고 있다고 설명했다. 이를테면 C파이썬의 어떤 변경사항도 런타임의 ABI(Application Binary Interface)를 손상시켜서는 안 된다. 그래야 C로 작성된 파이썬 확장 프로그램이 있는 그대로 계속 작동한다. 유지보수 용이성 및 간단하고 이해하기 쉬운 코드베이스를 유지하려는 C파이썬의 목표에 따라 변경사항은 점진적으로 이뤄져야 하고 관리할 수 있어야 한다. 그리고 모든 수정은 오픈소스여야 한다고 그는 전했다.  이러한 제약 조건 속에서 반 로섬과 그의 동료들은 자유롭게 변경할 수 있는 몇 가지 부분도 식별했다고 밝혔다. 예를 들면 파이썬의 바이트코드 시스템, 컴파일러, 인터프리터 등은 버전 간에 변경될 수 있기 때문에 모두 변경 대상으로 지정됐다. 특히 바이트코드는 주요 버전 간의 호환성을 보장하지 않으므로 필요한 경우 크게 변경할 수 있다고 반 로섬은 덧붙였다.  파이썬 3.11을 타깃으로 하는 첫 번째 제안에는 PEP 659에 설명된 ‘적응형 특정...

2021.05.14

“JVM 레코드, 실드 인터페이스 안정화”··· 코틀린 1.5.0 정식 출시

젯브레인(JetBrains)에서 개발한 정적 타입 언어의 최신 버전 ‘코틀린 1.5.0’이 프로덕션 릴리즈로 출시됐다. 이번 릴리즈에서는 JVM 레코드(JVM records), 실드 인터페이스(sealed interfaces) 등이 안정적으로 지원된다.    회사에 따르면 코틀린 1.5.0에서는 JVM 레코드 지원을 통해 최신 자바 기능인 레코드 클래스와의 상호 운용성을 유지한다. 레코드는 불변 데이터를 투명하게 전달하는 클래스이며, 이때 레코드는 명목상의 튜플(nominal tuples) 역할을 한다. 또한 실드 인터페이스를 지원하기 위해 코틀린 1.5.0은 실드 모디파이어(sealed modifier)를 도입했다. 이는 클래스에서 작동하는 방식과 동일하게 인터페이스에서 작동하며, 실드 인터페이스의 모든 구현은 컴파일 시 인식된다고 젯브레인은 전했다.  코틀린 1.5.0은 이곳(kotlinlang.org)에서 다운로드할 수 있다. 이 밖의 새로운 기능 및 개선사항은 다음과 같다.  • 컴파일 유닛 및 패키지가 동일하다면 실드 클래스의 하위 클래스가 어느 파일이든 위치할 수 있다. 이전에는 모든 하위 클래스가 실드 클래스와 동일한 파일에 있어야 했다.  • 인라인 클래스는 값만 포함하는 값 기반 클래스의 하위 집합이다. 이를 메모리 할당 사용으로 인한 추가 오버헤드 없이 특정 유형의 값에 래퍼로 사용할 수 있다.  • 부호 없는 정수 유형, 부호 없는 정수 유형의 범위 및 형변환, 부호 없는 정수 유형으로 작동하는 함수가 안정화된 API(Stable API)로 제공된다.  • 코틀린 1.4.0에서 발표됐던 새로운 JVM IR 컴파일러(JVM IR compiler)가 안정화됐으며, 디폴트로 설정됐다.  • java.nio.file.Path용 확장 기능을 통해 자바의 최신 비차단 I/O를 코틀린 관용구 스타일로 사용할 수 있다. • 문자열 및 문자의 대소문자를 변경하기 위해 ...

코틀린 자바 개발 언어 프로그래밍 언어 소프트웨어 개발

2021.05.10

젯브레인(JetBrains)에서 개발한 정적 타입 언어의 최신 버전 ‘코틀린 1.5.0’이 프로덕션 릴리즈로 출시됐다. 이번 릴리즈에서는 JVM 레코드(JVM records), 실드 인터페이스(sealed interfaces) 등이 안정적으로 지원된다.    회사에 따르면 코틀린 1.5.0에서는 JVM 레코드 지원을 통해 최신 자바 기능인 레코드 클래스와의 상호 운용성을 유지한다. 레코드는 불변 데이터를 투명하게 전달하는 클래스이며, 이때 레코드는 명목상의 튜플(nominal tuples) 역할을 한다. 또한 실드 인터페이스를 지원하기 위해 코틀린 1.5.0은 실드 모디파이어(sealed modifier)를 도입했다. 이는 클래스에서 작동하는 방식과 동일하게 인터페이스에서 작동하며, 실드 인터페이스의 모든 구현은 컴파일 시 인식된다고 젯브레인은 전했다.  코틀린 1.5.0은 이곳(kotlinlang.org)에서 다운로드할 수 있다. 이 밖의 새로운 기능 및 개선사항은 다음과 같다.  • 컴파일 유닛 및 패키지가 동일하다면 실드 클래스의 하위 클래스가 어느 파일이든 위치할 수 있다. 이전에는 모든 하위 클래스가 실드 클래스와 동일한 파일에 있어야 했다.  • 인라인 클래스는 값만 포함하는 값 기반 클래스의 하위 집합이다. 이를 메모리 할당 사용으로 인한 추가 오버헤드 없이 특정 유형의 값에 래퍼로 사용할 수 있다.  • 부호 없는 정수 유형, 부호 없는 정수 유형의 범위 및 형변환, 부호 없는 정수 유형으로 작동하는 함수가 안정화된 API(Stable API)로 제공된다.  • 코틀린 1.4.0에서 발표됐던 새로운 JVM IR 컴파일러(JVM IR compiler)가 안정화됐으며, 디폴트로 설정됐다.  • java.nio.file.Path용 확장 기능을 통해 자바의 최신 비차단 I/O를 코틀린 관용구 스타일로 사용할 수 있다. • 문자열 및 문자의 대소문자를 변경하기 위해 ...

2021.05.10

피스톤 2.2 출시··· “기본 파이썬보다 30% 더 빠르게 실행”

피스톤(Pyston) 버전 2.2가 지난 5월 5일(현지 시각) 릴리즈됐다. 피스톤은 JIT 컴파일 등을 사용해 실행 속도를 높이는 파이썬 런타임 대체 구현이다.  이번 릴리즈에서 주목해야 할 새로운 특징이 있다. 바로 파이썬의 오리지널 라이선스 하에서 전체 소스 코드를 오픈소스 프로젝트로 사용할 수 있게 됐다는 점이다.    개발팀에 따르면 피스톤 프로젝트의 목표는 2가지다. 첫째, 추가 작업 없이 기존 파이썬 배포 속도를 높일 수 있는 표준 파이썬 런타임 대체 구현(drop-in replacement)을 제공하는 것. 둘째, 피스톤에서의 개선사항이 파이썬 자체로 업스트림 될 수 있도록 하는 것이다.  피스톤 2.2는 파이썬 3.8 버전을 기반으로 한다. 개발팀은 자체 웹 서버 벤치마크에서 피스톤 2.2가 기본 파이썬보다 약 30% 더 빠르게 실행됐다고 밝혔다. 경우에 따라 약 50% 더 빠르게 실행되기도 했다고 개발팀은 덧붙였다.  한편 피스톤은 LLVM JIT 프레임워크를 사용해 파이썬 애플리케이션 속도를 높이고자 하는 야심 찬 프로젝트로 드롭박스(Dropbox)에서 시작됐지만, 지난 2017년 드롭박스의 지원 철회로 개발이 중단됐었다.  --> “파이썬 속도 향상”··· 피스톤(Pyston), 개발 재개 기존 개발자 일부를 포함해 새롭게 구성된 피스톤 개발팀에서 제공하는 최신 버전의 피스톤은 다른 접근방식을 사용한다. 기본 C파이썬 코드로 시작하며, 이전 버전과의 호환성을 깨지 않고 성능을 향상시키는 데 도움을 주는 C파이썬을 변경한다.  이러한 맥락에서 피스톤은 파이썬 런타임을 대체하는 또 다른 구현체인 파이파이(PyPy)와 다르다. 파이파이는 JIT 컴파일을 사용해 상당한 수준의 성능 개선을 지원한다. 하지만 파이파이는 파이썬, 특히 C로 작성된 파이썬 확장 프로그램과 완전한 호환성을 유지하는 데 오랫동안 어려움을 겪고 있다. 피스톤은 C파이썬 코드베이스에서 ...

피스톤 파이썬 C파이썬 프로그래밍 언어 개발 언어 소프트웨어 개발 오픈소스 파이파이 JIT 컴파일

2021.05.07

피스톤(Pyston) 버전 2.2가 지난 5월 5일(현지 시각) 릴리즈됐다. 피스톤은 JIT 컴파일 등을 사용해 실행 속도를 높이는 파이썬 런타임 대체 구현이다.  이번 릴리즈에서 주목해야 할 새로운 특징이 있다. 바로 파이썬의 오리지널 라이선스 하에서 전체 소스 코드를 오픈소스 프로젝트로 사용할 수 있게 됐다는 점이다.    개발팀에 따르면 피스톤 프로젝트의 목표는 2가지다. 첫째, 추가 작업 없이 기존 파이썬 배포 속도를 높일 수 있는 표준 파이썬 런타임 대체 구현(drop-in replacement)을 제공하는 것. 둘째, 피스톤에서의 개선사항이 파이썬 자체로 업스트림 될 수 있도록 하는 것이다.  피스톤 2.2는 파이썬 3.8 버전을 기반으로 한다. 개발팀은 자체 웹 서버 벤치마크에서 피스톤 2.2가 기본 파이썬보다 약 30% 더 빠르게 실행됐다고 밝혔다. 경우에 따라 약 50% 더 빠르게 실행되기도 했다고 개발팀은 덧붙였다.  한편 피스톤은 LLVM JIT 프레임워크를 사용해 파이썬 애플리케이션 속도를 높이고자 하는 야심 찬 프로젝트로 드롭박스(Dropbox)에서 시작됐지만, 지난 2017년 드롭박스의 지원 철회로 개발이 중단됐었다.  --> “파이썬 속도 향상”··· 피스톤(Pyston), 개발 재개 기존 개발자 일부를 포함해 새롭게 구성된 피스톤 개발팀에서 제공하는 최신 버전의 피스톤은 다른 접근방식을 사용한다. 기본 C파이썬 코드로 시작하며, 이전 버전과의 호환성을 깨지 않고 성능을 향상시키는 데 도움을 주는 C파이썬을 변경한다.  이러한 맥락에서 피스톤은 파이썬 런타임을 대체하는 또 다른 구현체인 파이파이(PyPy)와 다르다. 파이파이는 JIT 컴파일을 사용해 상당한 수준의 성능 개선을 지원한다. 하지만 파이파이는 파이썬, 특히 C로 작성된 파이썬 확장 프로그램과 완전한 호환성을 유지하는 데 오랫동안 어려움을 겪고 있다. 피스톤은 C파이썬 코드베이스에서 ...

2021.05.07

코틀린 1.5.0 RC 버전 출시··· “부호없는 정수 유형 안정화”

‘코틀린(Kotlin)’의 최신 버전 1.5.0이 릴리즈 캔디데이트(RC)로 이동했다. 부호없는 정수 유형과 향상된 테스트 라이브러리를 주요 특징으로 한다.  코틀린 1.5.0에서는 버전 1.3부터 베타로 제공됐던 ‘부호없는 정수 유형’이 안정 상태(Stable)로 분류됐다. 이에 따라 시험 사용을 옵트-인(opt-in)하지 않고 쓸 수 있고 실제 프로젝트에서도 안전하게 사용할 수 있게 됐다.    부호없는 정수 유형에는 UInt, ULong, UByte, UShort 및 관련 함수가 포함된다. 표준 라이브러리의 부호없는 정수 API는 음이 아닌 정수 연산을 처리하는 데 유용하다. 안정 상태로 진입한 API에는 ▲부호없는 정수 유형, ▲부호없는 정수 유형의 범위 및 형변환, ▲부호없는 정수 유형으로 작동하는 함수가 포함된다. 부호없는 정수 배열은 아직 베타 상태다.  지난 4월 13일 출시된 RC 버전의 설치 지침은 이곳(kotlinlang.org)에서 확인할 수 있다. 이 밖에 코틀린 1.5.0 릴리즈 캔디데이트 버전의 개선 사항은 다음과 같다.   • 이제 코틀린에서 java.nio.file.Path용 확장 기능을 통해 자바의 최신 비차단 I/O를 코틀린 관용구 스타일로 사용할 수 있다. 이 확장 기능은 옵트-인 없이 쓸 수 있다.  • 문자열 및 문자의 대소문자를 변경하기 위해 로케일에 얽매이지 않는 API가 제공된다.  • 문자와 정수 코드 및 숫자 값 사이의 명확한 변환을 위한 새로운 함수 세트가 제공된다.  • 테스트 라이브러리에서는 멀티플랫폼 프로젝트에 단일 kotlin-test 종속성이 제공된다. 또 개발자는 코틀린/JVM 소스 세트에서 테스트 프레임워크를 자동 선택할 수 있다. 어설션 기능도 업데이트됐다.  • 코틀린 개발팀은 멀티플랫폼 프로젝트 공통 코드에 모든 기능을 제공하고자 표준 라이브러리의 멀티플랫폼 부분을 계속해서 확장하고 있다. 이제 모...

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

2021.04.19

‘코틀린(Kotlin)’의 최신 버전 1.5.0이 릴리즈 캔디데이트(RC)로 이동했다. 부호없는 정수 유형과 향상된 테스트 라이브러리를 주요 특징으로 한다.  코틀린 1.5.0에서는 버전 1.3부터 베타로 제공됐던 ‘부호없는 정수 유형’이 안정 상태(Stable)로 분류됐다. 이에 따라 시험 사용을 옵트-인(opt-in)하지 않고 쓸 수 있고 실제 프로젝트에서도 안전하게 사용할 수 있게 됐다.    부호없는 정수 유형에는 UInt, ULong, UByte, UShort 및 관련 함수가 포함된다. 표준 라이브러리의 부호없는 정수 API는 음이 아닌 정수 연산을 처리하는 데 유용하다. 안정 상태로 진입한 API에는 ▲부호없는 정수 유형, ▲부호없는 정수 유형의 범위 및 형변환, ▲부호없는 정수 유형으로 작동하는 함수가 포함된다. 부호없는 정수 배열은 아직 베타 상태다.  지난 4월 13일 출시된 RC 버전의 설치 지침은 이곳(kotlinlang.org)에서 확인할 수 있다. 이 밖에 코틀린 1.5.0 릴리즈 캔디데이트 버전의 개선 사항은 다음과 같다.   • 이제 코틀린에서 java.nio.file.Path용 확장 기능을 통해 자바의 최신 비차단 I/O를 코틀린 관용구 스타일로 사용할 수 있다. 이 확장 기능은 옵트-인 없이 쓸 수 있다.  • 문자열 및 문자의 대소문자를 변경하기 위해 로케일에 얽매이지 않는 API가 제공된다.  • 문자와 정수 코드 및 숫자 값 사이의 명확한 변환을 위한 새로운 함수 세트가 제공된다.  • 테스트 라이브러리에서는 멀티플랫폼 프로젝트에 단일 kotlin-test 종속성이 제공된다. 또 개발자는 코틀린/JVM 소스 세트에서 테스트 프레임워크를 자동 선택할 수 있다. 어설션 기능도 업데이트됐다.  • 코틀린 개발팀은 멀티플랫폼 프로젝트 공통 코드에 모든 기능을 제공하고자 표준 라이브러리의 멀티플랫폼 부분을 계속해서 확장하고 있다. 이제 모...

2021.04.19

칼럼ㅣ'10년 자바전쟁' 종지부··· 개발자여 승리의 함성 질러라

물론 API가 무엇인지 또는 무엇을 하는지 제대로 이해한 대법관은 거의 없어 보였지만 美 연방대법원의 최종 판결은 오픈소스 개발자를 포함하여 모든 소프트웨어 개발자에게 ‘승리의 외침’이었다.  美 연방대법원이 구글과 오라클 간의 ‘10년 자바 저작권 전쟁’에서 내린 최종 판결을 100% 이해하지 못해도 괜찮다. ‘구글이 승리했다’ 또는 스티븐 브라이어 대법관이 판결문에서 밝힌 것처럼 ‘구글이 (자바 API를) 복제한 행위는 저작권법 위반이 아니다’라는 것만 알면 된다. 이것이 사실이기도 하고 전부이기도 하다.    앞서 구글은 두 가지 주장을 내세우며 법정에 섰다. 첫째, API는 저작권으로 보호할 수 있는 대상이 아니라는 것 그리고 둘째, API의 저작권을 인정한다고 하더라도 구글이 안드로이드 개발을 위해 자바 API를 사용한 것은 공정 사용의 범위에 포함된다는 것이다.  대법원은 (두 가지 중에서 더 중요한) 첫 번째 주장에 관한 언급은 하지 않으면서, “기술, 경제, 비즈니스 환경이 급변하는 상황을 감안할 때 당사자 양측의 분쟁을 해결하는 것 이상으로 답변할 필요는 없다”라고 전했다.  그래도 대법원이 오라클의 손을 들어주었을 때보다는 훨씬 나으며, 만약 그런 일이 벌어졌다면 마이크로소프트가 법정 의견서에서 말한 대로 혁신에 마치 재앙 같은 결과가 닥칠 수도 있었을 것이다.  하지만 여전히 이 업계에서는 API가 저작권법으로 보호되는 대상인지 아닌지 명확하지 않다. 그나마 위안이 되는 것은 대법원에서 API와 상호운용성과 관련된 공정 사용에 대해 관대한 입장을 취했다는 점이다. 이를 통해 개발자는 공정 사용 원칙의 중심에 있게 됐다.  API를 저작권법으로 보호하는 세상... 지난해 <인포월드(InfoWorld)> 소속 기자 한누 발토넨은 API가 저작권을 가질 수 있다고 간주되는 경우 문제가 생길 수 있는 모든 것을 정리한 기사를 보도했다. 이를 간단히 요약해보자면, ...

구글 오라클 자바 자바전쟁 API 저작권 소프트웨어 개발자 오픈소스 안드로이드 프로그래밍 언어 개발 언어

2021.04.14

물론 API가 무엇인지 또는 무엇을 하는지 제대로 이해한 대법관은 거의 없어 보였지만 美 연방대법원의 최종 판결은 오픈소스 개발자를 포함하여 모든 소프트웨어 개발자에게 ‘승리의 외침’이었다.  美 연방대법원이 구글과 오라클 간의 ‘10년 자바 저작권 전쟁’에서 내린 최종 판결을 100% 이해하지 못해도 괜찮다. ‘구글이 승리했다’ 또는 스티븐 브라이어 대법관이 판결문에서 밝힌 것처럼 ‘구글이 (자바 API를) 복제한 행위는 저작권법 위반이 아니다’라는 것만 알면 된다. 이것이 사실이기도 하고 전부이기도 하다.    앞서 구글은 두 가지 주장을 내세우며 법정에 섰다. 첫째, API는 저작권으로 보호할 수 있는 대상이 아니라는 것 그리고 둘째, API의 저작권을 인정한다고 하더라도 구글이 안드로이드 개발을 위해 자바 API를 사용한 것은 공정 사용의 범위에 포함된다는 것이다.  대법원은 (두 가지 중에서 더 중요한) 첫 번째 주장에 관한 언급은 하지 않으면서, “기술, 경제, 비즈니스 환경이 급변하는 상황을 감안할 때 당사자 양측의 분쟁을 해결하는 것 이상으로 답변할 필요는 없다”라고 전했다.  그래도 대법원이 오라클의 손을 들어주었을 때보다는 훨씬 나으며, 만약 그런 일이 벌어졌다면 마이크로소프트가 법정 의견서에서 말한 대로 혁신에 마치 재앙 같은 결과가 닥칠 수도 있었을 것이다.  하지만 여전히 이 업계에서는 API가 저작권법으로 보호되는 대상인지 아닌지 명확하지 않다. 그나마 위안이 되는 것은 대법원에서 API와 상호운용성과 관련된 공정 사용에 대해 관대한 입장을 취했다는 점이다. 이를 통해 개발자는 공정 사용 원칙의 중심에 있게 됐다.  API를 저작권법으로 보호하는 세상... 지난해 <인포월드(InfoWorld)> 소속 기자 한누 발토넨은 API가 저작권을 가질 수 있다고 간주되는 경우 문제가 생길 수 있는 모든 것을 정리한 기사를 보도했다. 이를 간단히 요약해보자면, ...

2021.04.14

타입스크립트 4.3 베타 공개··· “속성에서 읽기 및 쓰기 유형 지정한다” 

타입스크립트(TypeScript)의 버전 4.3이 베타 릴리즈로 공개됐다. 이번 업데이트에서는 오버라이드 키워드 추가, 템플릿 문자열 유형 개선 등을 지원한다. 타입스크립트는 자바스크립트(JavaScript)에 타입(types)을 도입한 마이크로소프트의 인기 있는 오픈소스 프로그래밍 언어다.    회사에 따르면 타입스크립트 4.3에서는 속성에 대한 읽기 및 쓰기 유형을 지정할 수 있다. 이 개선사항은 타입스크립트에서 값을 변환하는 API를 모델링할 때 ‘정확’과 ‘허용’ 중에 하나를 선택해야 했던 문제를 해결한다. ‘정확’을 선택하면 읽기 값은 더 쉽게 만들 수 있지만 쓰기가 어려워지고, ‘허용’을 선택하면 쓰기 값을 더 쉽게 만들 수 있지만 읽기가 어려워졌기 때문이다.  타입스크립트 4.3 베타 릴리즈는 지난 4월 1일 출시됐다. 릴리즈 캔디데이트는 오는 5월 11일에, 정식 버전은 5월 25일에 공개될 예정이다.  이 밖에 타입스크립트 4.3에서 계획된 다른 개선사항 및 기능은 다음과 같다.  • override 키워드가 추가됐다. 자바스크립트에서 클래스를 확장할 때 이 언어는 메소드를 쉽게 오버라이드할 수 있지만 몇 가지 실수(예: 이름 변경 누락 등)가 발생할 수 있다. 이제 메소드가 override 키워드로 표시되면 타입스크립트에서는 동일한 이름의 메소드가 기본 클래스에 있는지 항시 확인한다. 또 noImplicitOverride 플래그를 사용하면 명시적으로 override 키워드를 사용하지 않는 한 슈퍼클래스의 메소드를 오버라이드하는 것을 오류로 만든다.  • 서로 다른 템플릿 문자열 유형 간 추론 향상을 비롯해 템플릿 문자열 유형이 개선됐다. 이제 타입스크립트에서 템플릿 문자열의 각 부분이 성공적으로 일치하는지 증명하는 작업을 수행할 수 있다.  • 더 많은 클래스 요소를 #private#names으로 지정하여 런타임에서 비공개로 만들 수 있다. 이제 속성 외에도 메소드 및...

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

2021.04.08

타입스크립트(TypeScript)의 버전 4.3이 베타 릴리즈로 공개됐다. 이번 업데이트에서는 오버라이드 키워드 추가, 템플릿 문자열 유형 개선 등을 지원한다. 타입스크립트는 자바스크립트(JavaScript)에 타입(types)을 도입한 마이크로소프트의 인기 있는 오픈소스 프로그래밍 언어다.    회사에 따르면 타입스크립트 4.3에서는 속성에 대한 읽기 및 쓰기 유형을 지정할 수 있다. 이 개선사항은 타입스크립트에서 값을 변환하는 API를 모델링할 때 ‘정확’과 ‘허용’ 중에 하나를 선택해야 했던 문제를 해결한다. ‘정확’을 선택하면 읽기 값은 더 쉽게 만들 수 있지만 쓰기가 어려워지고, ‘허용’을 선택하면 쓰기 값을 더 쉽게 만들 수 있지만 읽기가 어려워졌기 때문이다.  타입스크립트 4.3 베타 릴리즈는 지난 4월 1일 출시됐다. 릴리즈 캔디데이트는 오는 5월 11일에, 정식 버전은 5월 25일에 공개될 예정이다.  이 밖에 타입스크립트 4.3에서 계획된 다른 개선사항 및 기능은 다음과 같다.  • override 키워드가 추가됐다. 자바스크립트에서 클래스를 확장할 때 이 언어는 메소드를 쉽게 오버라이드할 수 있지만 몇 가지 실수(예: 이름 변경 누락 등)가 발생할 수 있다. 이제 메소드가 override 키워드로 표시되면 타입스크립트에서는 동일한 이름의 메소드가 기본 클래스에 있는지 항시 확인한다. 또 noImplicitOverride 플래그를 사용하면 명시적으로 override 키워드를 사용하지 않는 한 슈퍼클래스의 메소드를 오버라이드하는 것을 오류로 만든다.  • 서로 다른 템플릿 문자열 유형 간 추론 향상을 비롯해 템플릿 문자열 유형이 개선됐다. 이제 타입스크립트에서 템플릿 문자열의 각 부분이 성공적으로 일치하는지 증명하는 작업을 수행할 수 있다.  • 더 많은 클래스 요소를 #private#names으로 지정하여 런타임에서 비공개로 만들 수 있다. 이제 속성 외에도 메소드 및...

2021.04.08

맥 못추는 ‘오브젝티브-C’, 4월 티오베 지수에서 20위권 밖으로

오랫동안 애플 플랫폼용 소프트웨어 개발의 필수 요소였던 ‘오브젝티브-C’가 이번 달 티오베 프로그래밍 언어 인기 순위에서 상위 20위권 밖으로 떨어졌다. 2009년 말 이후 처음이다.    오브젝티브-C가 2021년 4월 티오베 인덱스에서 23위(0.67%)를 차지했다. 이 프로그래밍 언어는 지난 2009년 10월 티오베 인덱스 상위 20위권에 진입했으며, 2011년과 2012년에는 올해의 언어상(Tiobe’s Programming Language of the Year Award)을 수상하기도 했다. 지난달에는 0.91%로 20위를 기록한 바 있다.  티오베는 오브젝티브-C가 예상보다 늦게 상위 20위권 밖으로 밀려났다고 말하면서, 성장세가 꺾인 이유로 2014년 4월 애플에서 출시한 새로운 맥OS 및 iOS 개발용 프로그래밍 언어 스위프트(Swift)의 부상을 꼽았다.  2021년 4월 티오베 인덱스 톱 10은 다음과 같다.  1. C 언어(14.32%) 2. 자바(11.23%) 3. 파이썬(11.03%) 4. C++(7.14%) 5. C#(4.91%) 6. 비주얼 베이직(4.55%) 7. 자바스크립트(2.44%) 8. 어셈블리(2.32%) 9. PHP(1.84%) 10. SQL(1.83%) 한편 구글에서 특정 프로그래밍 언어 튜토리얼이 얼마나 많이 검색됐는지를 기준으로 하는 PYPL(Popularity of Programming Language) 인덱스에서 이번 달 오브젝티브-C는 8위(2.77%)를 차지했다. 스위프트는 10위(1.85%)를 기록했다. 2021년 4월 PYPL 인덱스 톱 10은 아래와 같다. 1. 파이썬 (29.5%) 2. 자바 (17.51%) 3. 자바스크립트 (8.19%) 4. C# (7.05%) 5. C 언어/C++ (6.73%) 6. PHP (6.23%) 7. R 언어 (3.86) 8. 오브젝티브-C (2.77%) 9. 타입스크립트 (1.87%) 10. 스위프트 (1.85%)...

오브젝티브-C 프로그래밍 언어 개발 언어 티오베 인덱스 애플 맥OS iOS 소프트웨어 개발 스위프트 구글 PYPL

2021.04.07

오랫동안 애플 플랫폼용 소프트웨어 개발의 필수 요소였던 ‘오브젝티브-C’가 이번 달 티오베 프로그래밍 언어 인기 순위에서 상위 20위권 밖으로 떨어졌다. 2009년 말 이후 처음이다.    오브젝티브-C가 2021년 4월 티오베 인덱스에서 23위(0.67%)를 차지했다. 이 프로그래밍 언어는 지난 2009년 10월 티오베 인덱스 상위 20위권에 진입했으며, 2011년과 2012년에는 올해의 언어상(Tiobe’s Programming Language of the Year Award)을 수상하기도 했다. 지난달에는 0.91%로 20위를 기록한 바 있다.  티오베는 오브젝티브-C가 예상보다 늦게 상위 20위권 밖으로 밀려났다고 말하면서, 성장세가 꺾인 이유로 2014년 4월 애플에서 출시한 새로운 맥OS 및 iOS 개발용 프로그래밍 언어 스위프트(Swift)의 부상을 꼽았다.  2021년 4월 티오베 인덱스 톱 10은 다음과 같다.  1. C 언어(14.32%) 2. 자바(11.23%) 3. 파이썬(11.03%) 4. C++(7.14%) 5. C#(4.91%) 6. 비주얼 베이직(4.55%) 7. 자바스크립트(2.44%) 8. 어셈블리(2.32%) 9. PHP(1.84%) 10. SQL(1.83%) 한편 구글에서 특정 프로그래밍 언어 튜토리얼이 얼마나 많이 검색됐는지를 기준으로 하는 PYPL(Popularity of Programming Language) 인덱스에서 이번 달 오브젝티브-C는 8위(2.77%)를 차지했다. 스위프트는 10위(1.85%)를 기록했다. 2021년 4월 PYPL 인덱스 톱 10은 아래와 같다. 1. 파이썬 (29.5%) 2. 자바 (17.51%) 3. 자바스크립트 (8.19%) 4. C# (7.05%) 5. C 언어/C++ (6.73%) 6. PHP (6.23%) 7. R 언어 (3.86) 8. 오브젝티브-C (2.77%) 9. 타입스크립트 (1.87%) 10. 스위프트 (1.85%)...

2021.04.07

“구글 고(Go) 언어, 업무 현장서 사용 확대됐다”

‘고 디벨로퍼 서베이 2020(Go Developer Survey 2020)’에 따르면 고 언어 개발자 대부분이 업무 현장에서 고(Go)를 사용하며, 주로 기술 회사에서 일하는 것으로 나타났다.  보고서는 업무 현장에서의 고(Go) 언어 사용이 확대되고 있다고 밝혔다. 그리고 2019년 설문조사 결과와 마찬가지로 올해에도 고 언어 개발자들은 주로 기술 산업에서 일하고 있는 것으로 드러났다고 전했다.    ‘고 디벨로퍼 서베이 2020’이 지난 3월 9일 공개됐다. 전체 응답자의 76%가 업무 현장에서 고 언어를 사용하고 있다고 말했다. 2019년 설문조사 결과(73%)와 비교하면 증가한 수치다.  고 언어가 소속 기업의 성공에 중요한 역할을 하고 있다고 밝힌 응답자도 2019년 59%에서 올해 66%로 늘어났다. 한편 응답자의 46%가 기술 부문에서 일하고 있었으며(2019년에는 43%), 이어서 금융 서비스(12%)가 뒤를 이었다.  올해에는 처음으로 고 언어에 관한 전반적인 만족도를 조사했다. 전체 응답자의 92%는 지난 1년 동안 고 언어 사용에 매우 만족 또는 다소 만족한다고 밝혔다. 고 모듈은 거의 보편적으로 채택됐다. 96%가 고 패키지 관리에 고 모듈을 정기적으로 사용하고 있다고 답했다.  26%는 고 언어에 필요한 기능이 없다고 지적했는데, 이 가운데 88%가 누락된 기능으로 제네릭(Generic)을 꼽았다. 이어서 향상된 오류 처리(58%), 널 안정성(44%)이 뒤를 이었다(제네릭은 올해 말 도입될 예정이다. 이 기능에 대한 공식적인 제안은 지난 1월 발표됐다). 올해 설문조사에는 총 9,648명이 참여했으며, 여기에는 전체 설문을 완료하지 않은 응답자도 포함돼 있다. 이밖에 다른 설문조사 결과는 다음과 같다. • 업무 현장에서 다른 언어를 사용한다고 밝힌 응답자는 2018년 63%, 2019년 54%에서 감소한 53%로 조사됐다.  • 고 언어가 주로 사용되는 분...

구글 고 언어 고랭 프로그래밍 프로그래밍 언어 개발 개발 언어 개발자 고 모듈 제네릭 널 안정성 리눅스

2021.03.22

‘고 디벨로퍼 서베이 2020(Go Developer Survey 2020)’에 따르면 고 언어 개발자 대부분이 업무 현장에서 고(Go)를 사용하며, 주로 기술 회사에서 일하는 것으로 나타났다.  보고서는 업무 현장에서의 고(Go) 언어 사용이 확대되고 있다고 밝혔다. 그리고 2019년 설문조사 결과와 마찬가지로 올해에도 고 언어 개발자들은 주로 기술 산업에서 일하고 있는 것으로 드러났다고 전했다.    ‘고 디벨로퍼 서베이 2020’이 지난 3월 9일 공개됐다. 전체 응답자의 76%가 업무 현장에서 고 언어를 사용하고 있다고 말했다. 2019년 설문조사 결과(73%)와 비교하면 증가한 수치다.  고 언어가 소속 기업의 성공에 중요한 역할을 하고 있다고 밝힌 응답자도 2019년 59%에서 올해 66%로 늘어났다. 한편 응답자의 46%가 기술 부문에서 일하고 있었으며(2019년에는 43%), 이어서 금융 서비스(12%)가 뒤를 이었다.  올해에는 처음으로 고 언어에 관한 전반적인 만족도를 조사했다. 전체 응답자의 92%는 지난 1년 동안 고 언어 사용에 매우 만족 또는 다소 만족한다고 밝혔다. 고 모듈은 거의 보편적으로 채택됐다. 96%가 고 패키지 관리에 고 모듈을 정기적으로 사용하고 있다고 답했다.  26%는 고 언어에 필요한 기능이 없다고 지적했는데, 이 가운데 88%가 누락된 기능으로 제네릭(Generic)을 꼽았다. 이어서 향상된 오류 처리(58%), 널 안정성(44%)이 뒤를 이었다(제네릭은 올해 말 도입될 예정이다. 이 기능에 대한 공식적인 제안은 지난 1월 발표됐다). 올해 설문조사에는 총 9,648명이 참여했으며, 여기에는 전체 설문을 완료하지 않은 응답자도 포함돼 있다. 이밖에 다른 설문조사 결과는 다음과 같다. • 업무 현장에서 다른 언어를 사용한다고 밝힌 응답자는 2018년 63%, 2019년 54%에서 감소한 53%로 조사됐다.  • 고 언어가 주로 사용되는 분...

2021.03.22

회사명:한국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.6